Zubnet AIAprenderWiki › Entrenamiento con precisión mixta
Entrenamiento

Entrenamiento con precisión mixta

También conocido como: FP16, BF16, Media precisión
Entrenar redes neuronales usando formatos numéricos de menor precisión (16 bits en lugar de 32 bits) para la mayoría de los cálculos, manteniendo las operaciones críticas en precisión completa. Esto duplica la capacidad de memoria efectiva y la velocidad de cálculo de las GPUs con un impacto mínimo en la calidad del modelo. BF16 (bfloat16) es el estándar para el entrenamiento de LLMs; FP16 se usa para la inferencia.

Por qué importa

La precisión mixta es la razón por la que podemos entrenar modelos tan grandes como los actuales. Un modelo de 70B parámetros en FP32 necesitaría 280 GB solo para los pesos — imposible en cualquier GPU individual. En BF16, necesita 140 GB, lo que cabe en unas pocas GPUs. La precisión mixta efectivamente duplicó la capacidad de cómputo de la industria de IA gratis, solo usando un formato numérico más inteligente.

En profundidad

La idea clave: la mayoría de los cálculos de redes neuronales no necesitan 32 bits de precisión. Los pesos, activaciones y gradientes pueden representarse en 16 bits sin pérdida significativa de calidad. Pero algunas operaciones (cálculo de pérdida, actualización de pesos) necesitan mayor precisión para evitar inestabilidad numérica. La precisión mixta mantiene una copia maestra de los pesos en FP32 para las actualizaciones, mientras usa FP16/BF16 para los pases hacia adelante y hacia atrás.

BF16 vs. FP16

FP16 (IEEE media precisión) tiene 5 bits de exponente y 10 bits de mantisa. BF16 (Brain Float 16) tiene 8 bits de exponente y 7 bits de mantisa. El rango de exponente más amplio de BF16 significa que puede representar el mismo rango de valores que FP32 (evitando desbordamiento), mientras que el rango más estrecho de FP16 requiere escalado de pérdida para evitar que los gradientes se desborden a cero. Para entrenamiento, BF16 es más simple y más estable. Para inferencia, FP16 a veces ofrece una precisión ligeramente mejor por el mismo costo de memoria.

FP8 y más allá

Las GPUs más recientes (NVIDIA H100, H200) soportan FP8 (punto flotante de 8 bits) para un cálculo aún más rápido. FP8 reduce a la mitad la memoria y duplica el rendimiento en comparación con FP16, pero requiere un manejo cuidadoso para evitar la degradación de calidad. La práctica actual: entrenar en BF16, servir en FP16 o FP8, y cuantizar a INT4/INT8 para despliegue en el borde. Cada paso hacia abajo en precisión intercambia una pequeña cantidad de calidad por ganancias significativas en velocidad y memoria.

Conceptos relacionados

ESC