Introducción
El concepto de Inteligencia Artificial hasta ahora se ha definido por una regla simple, aunque costosa: más grande siempre es mejor. A medida que los modelos de lenguajes grandes (LLM, por sus siglas en inglés) escalan hasta billones de parámetros, muestran capacidades de razonamiento que eran inimaginables hace apenas unos años, y siguen mejorando.
Sin embargo, este crecimiento se ha visto afectado por una realidad física. La energía y el hardware necesarios para hacer funcionar estos modelos se están volviendo insostenibles, hasta el punto de que empresas como Google y Meta están explorando soluciones de energía nuclear, sólo para satisfacer sus futuras demandas energéticas (The Guardian)2.
Más grande NO siempre es mejor
Para combatir este problema, la industria ha recurrido a técnicas de compresión y cuantificación. En términos simples, esto implica tomar un modelo entrenado con alta precisión (16 bits) y redondear sus pesos a una precisión más baja (como 8 bits o 4 bits) para la inferencia (Frantar et al., 2022)3. Aunque este método funciona, sigue siendo una solución improvisada para un problema mayor, ya que, en primer lugar, el modelo nunca fue diseñado para ser pequeño.
Pero ¿qué pasa si la alta precisión no es realmente necesaria para un alto rendimiento?
En un artículo reciente titulado “La era de los LLM de 1 bit” (Ma et al., 2024)1, investigadores de Microsoft proponen una perspectiva completamente diferente sobre cómo se construyen los LLM. Introducen BitNet b1.58, que es una arquitectura que, en lugar de simplemente comprimir un modelo, restringe el entrenamiento del modelo en el modo extremadamente agresivo de baja precisión desde el principio. Obliga al modelo a operar utilizando solo tres valores posibles: {−1,0,1}. Este artículo explora cómo es posible una restricción tan severa, las innovaciones matemáticas detrás de este enfoque y si este método podría ser una alternativa viable a las costosas operaciones de punto flotante que son de facto en la IA moderna.
La arquitectura: diseño de un cerebro de 1 bit
Para comprender la innovación de BitNet b1.58, debemos observar el funcionamiento básico de una capa en una red neuronal estándar. En los LLM modernos, la capa nn.Linear almacena información en una matriz de ponderación de números de punto flotante de alta precisión (por ejemplo, FP16/FP32). BitNet reemplaza esto con una capa BitLinear especializada, que usa solo tres números enteros para almacenar la misma cantidad de información que cualquier capa NN normal.
1. Lograr pesos ternarios
La restricción principal de BitNet b1.58 es que cada parámetro en la matriz de peso de la red debe resolverse en uno de tres números enteros: {−1,0,1}. A diferencia de la cuantización posterior al entrenamiento, que comprime un modelo después de haber sido entrenado, BitNet impone esta restricción durante el proceso de entrenamiento.
Los autores utilizan una función de cuantificación Absmean para asignar valores continuos a este conjunto ternario. El proceso implica los siguientes dos pasos: escalado y redondeo.
Escalado: la matriz de peso se normaliza primero por su valor absoluto promedio (γ). Esto asegura que la distribución de pesos permanezca centrada y consistente. El factor de escala se puede calcular de la siguiente manera:
n,m: Número de filas y columnas de la matriz respectivamente.
Wij: Parámetro en la matriz en la i-ésima fila y la j-ésima columna.
Redondeo: los valores escalados se redondean al número entero más cercano y se recortan para garantizar que se encuentren estrictamente dentro del rango de [−1,1].
W: Matriz de pesos original.
ϵ: Pequeño valor añadido para evitar errores de división por cero.
3. La paradoja del entrenamiento: cómo diferenciar números enteros
El desafío más importante al que se enfrentaron los autores al diseñar la arquitectura de un bit fue el proceso de formación. Los algoritmos de optimización estándar, como Stochastic Gradient Descent (SGD) o Adam, se basan en el concepto de paisaje continuo y diferenciable. Calculan el gradiente de la función de pérdida y ajustan los pesos en una pequeña cantidad (por ejemplo, 0,001) en la dirección opuesta.
Esto crea una paradoja:
¿Cómo se “empuja” un número entero para incorporar los cambios sugeridos por los gradientes?
Por ejemplo: si un peso es 1 y el gradiente sugiere moverlo −0,001, el resultado es 0,999. Si aplicamos solo estados enteros, este valor vuelve a 1, el modelo nunca se actualiza y, por lo tanto, nunca aprende.
BitNet resuelve esto utilizando una arquitectura de peso latente (Bengio et al., 2013)5.
3.1 El mecanismo del peso latente
Diagrama de flujo que muestra cómo los autores desacoplan los pesos ternarios y maestros para permitir el entrenamiento del modelo.
El modelo mantiene dos versiones de todos sus parámetros durante el entrenamiento:
Pesos maestros (alta precisión): estos son números estándar FP16/FP32 que pueden capturar pequeñas actualizaciones. Pesos cuantificados (ternarios): estos son los valores discretos {−1,0,1} derivados de los pesos maestros, utilizados para la inferencia real/paso hacia adelante.
3.2 El pase hacia adelante
Durante el paso hacia adelante, los pesos maestros se convierten primero en pesos ternarios mediante las operaciones descritas anteriormente (escalado y redondeo). Luego, el modelo utiliza estos pesos ternarios para generar la salida. Esto garantiza que las predicciones del modelo sean siempre representativas del conjunto restringido de pesos que tiene, en lugar de los pesos maestros de precisión total.
3.3 El pase hacia atrás y la actualización
Durante la propagación hacia atrás, los gradientes fluyen hacia atrás, desde la función de pérdida. Estos gradientes luego se aplican a los pesos maestros, no a los pesos ternarios.
Esto permite que Master Weights acumule pequeños cambios a lo largo de muchos pasos de entrenamiento. Por ejemplo, considere un Peso Maestro cuyo valor es 0,4 (que corresponde a un 0 en el conjunto ternario). Después de varias actualizaciones, es posible que cambie a 0,45 y luego a 0,49. Todavía se redondea a 0, por lo que el comportamiento del modelo no cambia todavía. Sin embargo, una vez que cruza el umbral de redondeo (por ejemplo, alcanza 0,51), se redondeará a 1.
Este mecanismo permite que el modelo aprenda a través del descenso de gradiente estándar y al mismo tiempo garantiza que el modelo entrenado final consista exclusivamente en pesos ternarios eficientes.
2. Eliminación de la multiplicación de matrices
El beneficio más significativo e inmediato de forzar pesos en {−1,0,1} es la eliminación de la multiplicación de punto flotante, que es la operación más costosa en el hardware moderno de aprendizaje profundo.
La eliminación de los números de punto flotante de las matrices de peso elimina la necesidad de multiplicaciones de punto flotante, que es la operación más costosa e incesante para las GPU.
En un Transformer estándar (Vaswani et al., 2017)4, la GPU debe realizar miles de millones de operaciones de multiplicación-acumulación (MAC), donde un número de punto flotante se multiplica por otro número de punto flotante. Sin embargo, cuando una de las dos entradas se restringe al conjunto ternario, la multiplicación deja de existir:
La multiplicación por 1 es simplemente una suma (x). La multiplicación por −1 es simplemente una resta (−x). La multiplicación por 0 evita el cálculo por completo.
Este cambio arquitectónico transforma todos los cálculos, desde complejas operaciones de multiplicación de punto flotante a simples sumas. Esto reduce drásticamente la huella energética del modelo, ya que la suma de números enteros es mucho más barata de realizar que la multiplicación de punto flotante.
Resultados: la mejora de Pareto
El objetivo principal de la investigación de BitNet b1.58 no fue solo crear un modelo de menor tamaño, sino también demostrar que la cuantificación extrema no tiene por qué ser a expensas de la inteligencia. Los autores compararon su arquitectura con los modelos LLaMA del FP16 (Touvron et al., 2023)6 en varias tareas posteriores y observaron algunos hallazgos interesantes:
1. Paridad de rendimiento con modelos de máxima precisión
Quizás el hallazgo más importante es que el modelo BitNet b1.58 puede funcionar a la par con los modelos FP16 estándar. Cuando se evaluó la precisión del disparo cero en puntos de referencia como ARC-Challenge, Hellaswag y Winogrande, el modelo b1.58 demostró un rendimiento similar al de los modelos FP16 LLaMA.
Como se desprende del cuadro siguiente, esta paridad comienza a manifestarse con fuerza en la marca del parámetro de 3 mil millones. Si bien los modelos más pequeños tuvieron algunos problemas con las líneas base de LLaMA, BitNet b1.58 3B lo supera en precisión promedio de disparo cero. Esto da credibilidad a la hipótesis del autor de que la representación ternaria de matrices de pesos es suficiente para capturar los matices y complejidades del modelado del lenguaje sin la necesidad de pesos de punto flotante de alta precisión.
Para los modelos más pequeños (700M y 1.3B), BitNet todavía estaba por detrás de los modelos LLaMA estándar, pero para la variante 3B, el rendimiento de BitNet es prácticamente idéntico, si no superior, en algunos puntos de referencia.
2. Redefinición de la latencia y la huella de la memoria
Al reducir la precisión del peso de 16 bits a 1,58 bits, se esperaba, aunque drásticamente, que se redujera la huella de memoria del entrenamiento y la inferencia del modelo. Como se muestra a continuación, BitNet b1.58b requiere 3,55 veces menos memoria GPU que su contraparte LLaMA con un tamaño de parámetro de 3B. Esta reducción también alivia el cuello de botella del ancho de banda, que es una limitación principal durante la inferencia LLM.
Una menor huella de memoria también se traduce directamente en latencia. Los autores observaron una reducción de 2,71 veces en la latencia de inferencia para el tamaño del modelo 3B. Además, esta brecha en la latencia, entre FP16 LLaMA y BitNet b1.58b, aumenta a medida que ampliamos el modelo. Cuando ambos modelos se escalan a parámetros de 70B, la brecha de latencia aumenta a 4,10x. Esto indica una ley de escala muy prometedora, donde cuanto más grande sea el modelo, más podrá beneficiarse de la arquitectura BitNet.
Latencia y memoria, trazadas en función del tamaño del modelo. La brecha entre el estándar LLaMA y BitNet se amplía a medida que aumentamos el tamaño del modelo, lo que es una señal de una buena ley de escala.
3. Consumo de energía y eficiencia aritmética
Además de las ganancias de eficiencia al reducir la precisión, también obtenemos grandes ahorros de energía debido a la eliminación de las multiplicaciones de punto flotante. Al utilizar pesos ternarios, BitNet se basa en operaciones INT8 en lugar de FP16, lo que reduce los costos de energía aritmética.
Los autores aplicaron un modelo energético para estimar el coste de las operaciones en chips de 7 nm. Observaron que a medida que aumenta el tamaño del modelo, BitNet se vuelve cada vez más eficiente. Dado que las nn.capas lineales (donde se produce la mayoría de los ahorros) constituyen un porcentaje mayor del cálculo total en modelos más grandes, la brecha energética entre LLaMA estándar y BitNet crece con la escala. Para un modelo 70B, el costo energético de extremo a extremo es más de 41 veces menor, lo que aborda una de las preocupaciones ambientales más destacadas sobre el despliegue de modelos de IA a gran escala.
Gráfico de energía frente al tamaño del modelo. Los efectos combinados de ambos: eliminación de operaciones de punto flotante y cuantificación agresiva, producen enormes ahorros de energía.
4. Maximización del rendimiento
En entornos de producción del mundo real, el rendimiento (tokens generados por segundo) suele ser una métrica más importante que la latencia de un solo flujo. Debido a la menor sobrecarga de memoria de BitNet, nos permite trabajar con tamaños de lotes mucho más grandes mientras utilizamos las mismas GPU.
En dos GPU A100 de 80 GB, los autores descubrieron que podían ejecutar un modelo BitNet b1.58 70B con un tamaño de lote 11 veces mayor de lo que era posible con FP16 LLaMA 70B. Esto resultó en un aumento de 8,9 veces en el rendimiento general. Este hallazgo es importante para los entornos de producción con infraestructura de servicio, lo que implica que los LLM de 1 bit podrían atender a casi nueve veces más usuarios que los modelos actuales que utilizan el mismo hardware. Esto tiene una gran cantidad de casos de uso, como traducción en tiempo real, conducción autónoma de automóviles, generación instantánea de código y muchos más.
BitNet b1.58b acelera el entrenamiento al permitir 11 veces el tamaño del lote original y acelera la velocidad de generación de tokens en casi 9 veces.
👉Si te gustó este artículo, comparto reseñas más breves y actualizadas en Substack.
👉Y si desea apoyar la redacción de investigaciones independientes, BuyMeACoffee le ayuda a seguir adelante.
Conclusión
Por muy impresionantes que sean estos resultados, todavía representan la menor de las arquitecturas de 1 bit, no la mejor. Es importante tener en cuenta que las pruebas comparativas y las mejoras de rendimiento analizadas anteriormente se ejecutaron en hardware (NVIDIA A100) diseñado para la multiplicación de punto flotante. Esto significa que actualmente estamos ejecutando BitNet b1.58 en chips que no están optimizados para ejecutar adiciones INT8, sobre las cuales se encuentra toda la arquitectura.
Esto implica que todavía existen algunas mejoras de eficiencia que no se han explorado. Si BitNet puede lograr una aceleración de 8 a 9 veces en hardware que no es óptimo, entonces las ganancias potenciales en hardware diseñado específicamente para la suma de enteros, como las LPU de Groq, podrían ser aún más sustanciales.
Esta arquitectura también nos ofrece un camino realista hacia la implementación de grandes modelos de parámetros de más de 70 mil millones, directamente en dispositivos locales como teléfonos móviles y computadoras portátiles, sin comprometer la inteligencia.
Referencias
[1]Ma, Shuming y col. "La era de los LLM de 1 bit: todos los modelos de lenguajes grandes están en 1,58 bits". arXiv.org, 27 de febrero de 2024, arxiv.org/abs/2402.17764.
[2]El guardián. “Meta firma un acuerdo con una planta nuclear para alimentar la IA y los centros de datos durante 20 años”, 4 de junio de 2025, www.theguardian.com/technology/2025/jun/03/meta-nuclear-power-ai.
[3]Frantar, Elías, et al. "GPTQ: Cuantización precisa posterior al entrenamiento para transformadores generativos preentrenados". arXiv.org, 31 de octubre de 2022, arxiv.org/abs/2210.17323.
[4]Vaswani, Ashish y otros. "Atención es todo lo que necesitas". arXiv.org, 12 de junio de 2017, arxiv.org/abs/1706.03762.
[5]Bengio, Yoshua, et al. "Estimación o propagación de gradientes a través de neuronas estocásticas para computación condicional". arXiv.org, 15 de agosto de 2013, arxiv.org/abs/1308.3432.
[6]Touvron, Hugo y otros. "Llama 2: base abierta y modelos de chat optimizados". arXiv.org, 18 de julio de 2023, arxiv.org/abs/2307.09288.