Cada número de un modelo se guarda con cierta precisión, como una regla graduada en milímetros o en centímetros. Durante años los modelos usaron 16 o 32 bits por número. Resulta que a menudo les bastan 8, 4 o incluso menos de 2.
Prometedoractualizado el
I
La idea, en sencillo
Los pesos de un modelo son números. Guardarlos con menos bits es como redondear: se pierde algo de detalle, pero cada número ocupa menos, se lee más rápido y se multiplica con circuitos más pequeños.
La verdadera ganancia está menos en el cálculo que en el movimiento: como muestra la figura de la energía en la página principal, leer un número de la memoria cuesta cientos de veces más que calcular con él. Dividir los bits entre dos divide esa factura entre dos.
II
Cómo funciona
El truco es la escala por bloques: los números se agrupan en pequeños paquetes que comparten una escala común, de modo que unos pocos bits bastan para describir cada uno respecto a sus vecinos. Las partes más sensibles (primeras y últimas capas, sumas) siguen en mayor precisión.
Hay dos vías: comprimir después del entrenamiento (rápido, pero la calidad cae en precisión muy baja) o entrenar directamente en baja precisión, para que el modelo aprenda a convivir con el redondeo desde el principio.
Memoria necesaria para guardar 1000 millones de pesos
32 bits4 GB
16 bits2 GB
8 bits1 GB
4 bits0,5 GB
1,58 bits≈ 0,2 GB
Con tres valores, la multiplicación desaparece:
+1sumar el número0ignorarlo−1restarlo
Esquema ilustrativo: muestra la idea, no mediciones.
Cada vez que se divide la precisión entre dos, se divide entre dos la memoria que hay que leer, y por tanto la energía gastada en moverla. Con solo −1, 0 o +1, una multiplicación se convierte en una suma, una resta o nada.III
Tres escalones hacia abajo
Establecido
8 bits: DeepSeek-V3 (2024)
Primera validación del entrenamiento en 8 bits en un modelo gigante: la mayoría de los cálculos matriciales de DeepSeek-V3 se hacen en FP8, con un escalado fino. El error de entrenamiento queda a menos del 0,25 % de la referencia en 16 bits. Es una de las razones de su bajo coste de entrenamiento.
NVIDIA entrenó un modelo de 12 000 millones de parámetros con 10 billones de palabras en 4 bits, el entrenamiento más largo de este tipo publicado. En MMLU-Pro: 62,58 % frente a 62,62 % en 8 bits. En chips recientes, el 4 bits calcula de 2 a 3 veces más rápido que el 8 bits con la mitad de memoria. Alrededor del 16 % de las capas siguen en mayor precisión, y el código sale algo peor.
Cada peso vale −1, 0 o +1. Desde 3000 millones de parámetros, iguala a un modelo de 16 bits entrenado con los mismos datos, siendo 2,71 veces más rápido y usando 3,55 veces menos memoria; con 70 000 millones, 4,1 veces más rápido. Energía de cálculo estimada para los productos de matrices: 71 veces menos.
No hay atajo para los modelos existentes: los pesos ternarios deben aprenderse desde el principio; redondear tanto un modelo existente lo rompe. El hardware va con retraso: las ganancias de BitNet solo son plenamente reales en chips diseñados para él. Tareas frágiles: el código y el cálculo preciso sufren primero. Y cuantos más datos ha visto un modelo, más detalles finos llevan sus pesos, lo que deja menos margen para redondear.
V
Lo que cambia para nuestras hipótesis
Tercer factor de H6: los bits por peso. El paralelismo con nuestro cuaderno es llamativo: un modelo ternario solo conserva el sentido de cada conexión (a favor, en contra, neutro), como si los detalles finos no tuvieran sitio en los pesos. Es justo el reparto que proponemos: los grandes principios en el modelo, los detalles precisos en una memoria externa.
Tomar un mismo modelo abierto en 16, 8 y 4 bits y hacer a las tres versiones las mismas preguntas sobre artículos de OrigoTech. Nuestra apuesta: los hechos (fechas, cifras) se degradan antes que el razonamiento. Si es así, es un argumento para guardar los hechos fuera de los pesos.