Cuando se realiza el ajuste fino de un modelo de lenguaje grande utilizando el formato de datos bf16 (bfloat16), los investigadores han observado un comportamiento inesperado: una gran mayoría de los pesos del modelo pueden permanecer completamente congelados. Esto ocurre cuando los pesos se almacenan en bf16 y el optimizador AdamW escribe las actualizaciones directamente en ellos sin una copia maestra subyacente en fp32 (float32). Debido a que bf16 tiene una mantisa mucho más pequeña que fp32, las brechas entre los números representables se ensanchan a medida que los valores mismos se vuelven más grandes. Específicamente, un número bf16 es esencialmente la primera mitad de un número fp32; sus brechas son 65,536 veces más anchas que las de fp32, lo que significa que un peso solo puede representar un cambio si ese cambio es de al menos ~1/512 del valor del propio peso.

Esto crea una 'máscara de pesos' donde la tasa de aprendizaje determina qué pesos tienen permitido moverse. Si la magnitud de un peso es grande, la actualización proporcionada por el optimizador a una tasa de aprendizaje pequeña (por ejemplo, 1e-6) puede ser inferior a la mitad de la brecha de bf16, lo que provoca que la actualización se redondee de nuevo al valor original y se pierda. En un modelo como Mistral-7B, esto puede dar lugar a un 'precipicio de precisión'. Para una tasa de aprendizaje de 1e-6, los pesos superiores a aproximadamente 4.88e-4 quedan efectivamente congelados. El análisis del modelo Quiet-STaR mostró que, aunque el proceso de entrenamiento parecía progresar, solo alrededor del 5.4% de los 7.24 mil millones de pesos cambiaron realmente, mientras que el 95% restante no fue tocado por el optimizador.

Curiosamente, este comportamiento de redondeo puede actuar como una 'característica' estabilizadora en lugar de un error. Cuando los investigadores intentaron ejecutar nuevamente la misma receta de entrenamiento utilizando una copia maestra en fp32 matemáticamente 'correcta', el modelo a menudo divergía o sufría picos de pérdida extremos. El redondeo de bf16 descarta efectivamente las actualizaciones ruidosas o inestables que, de otro modo, harían que el modelo colapsara a tasas de aprendizaje muy bajas. Aunque este comportamiento se ha observado en varios artículos revisados por pares, rara vez se documenta como el mecanismo subyacente. El resultado es un ajustador fino disperso que solo entrena los pesos de menor magnitud, una dinámica que puede ocultar inestabilidades en el entrenamiento mientras produce una actualización estable, aunque restringida, de los parámetros del modelo.