Precisión mixta (BF16, FP8)
Leerlo en el Capítulo 4 · checkpoint +50 XP →
Haz las cuentas en formatos de 16 u 8 bits en los tensor cores y guarda una copia maestra en FP32 para actualizaciones estables.
El entrenamiento en precisión mixta ejecuta el forward y el backward en un formato de baja precisión y mantiene pesos maestros en FP32 para la actualización del optimizador:
- BF16 conserva el rango de exponente de FP32, así que rara vez necesita loss scaling. Es lo predeterminado en A100/H100.
- FP16 necesita loss scaling dinámico para que los gradientes pequeños no se vuelvan cero.
- FP8 (H100 en adelante) vuelve a duplicar aproximadamente el rendimiento de las matmul. Bibliotecas como Transformer Engine gestionan el escalado por tensor.
Por qué es tan importante: los tensor cores entregan ~15× más FLOP/s en BF16 que en FP32 simple en una H100. Entrenar en FP32 deja casi toda la GPU ociosa.
Memoria: pesos y gradientes en 2 bytes, más 12 bytes de estado del optimizador en FP32 (maestro, m y v de Adam), da la regla de "16 bytes por parámetro" que se usa en todo LazyLab.
Úsalo en una misión
Relacionado
Fuentes y lecturas adicionales
Escrito para LazyLab con nuestras propias palabras; las fuentes se citan para profundizar y verificar.