LuAITools.com
Submit
⚡AI
FP16 para la velocidad, FP32 donde importa

Entrenamiento en precisión mixta

El entrenamiento en precisión mixta hace la mayor parte del cálculo en FP16 de media precisión por velocidad y ahorro de memoria, y deja las partes críticas en FP32: más rápido, más barato y casi sin pérdida de precisión.

¿Qué es el entrenamiento en precisión mixta?

Tradicionalmente, los pesos de una red neuronal y sus cálculos van en coma flotante de 32 bits (FP32): preciso, pero lento y hambriento de memoria. El entrenamiento en precisión mixta usa un enfoque de «precisión donde importa, ligereza en el resto»: la mayor parte del cálculo pasa a coma flotante de 16 bits (FP16) por velocidad y menor memoria, mientras que unos pocos puntos sensibles a la precisión recurren a FP32.

¿Por qué FP16 es más rápido?

Calcula más rápido
En las GPUs modernas, el álgebra de matrices en FP16 va varias veces más rápido que en FP32, y el hardware pensado para media precisión (como los Tensor Cores) multiplica el rendimiento.
Ahorra memoria y ancho de banda
La mitad de bits significa pesos y resultados intermedios más pequeños, así que caben modelos o batches más grandes.

¿Por qué no usar FP16 en todo?

La precisión puede desbordarse o desvanecerse
FP16 tiene rango y precisión limitados: los números grandes se desbordan a infinito, los gradientes diminutos se anulan a cero, y el entrenamiento se vuelve inestable o no converge.
Por eso se «mezcla»
Las partes delicadas — actualizaciones de gradientes, ciertas sumas — van en FP32, y el resto en FP16: velocidad y estabilidad a la vez.

Un par de trucos clave

Escalado de pérdida (loss scaling)
¿Gradientes demasiado pequeños para sobrevivir en FP16? Multiplica la pérdida por un factor antes de la retropropagación y deshazlo después, para que los gradientes pequeños no desaparezcan.
Pesos maestros en FP32
Guarda los pesos en FP32, calcula en FP16 y vuelve a FP32 para actualizar: lo mejor de ambos mundos.

¿Merece la pena?

Hoy la precisión mixta es casi la configuración por defecto para entrenar modelos grandes: el doble de velocidad, la mitad de memoria y una pérdida de precisión despreciable. Combinada con trucos como el checkpointing de gradientes, a menudo hace ejecutable un modelo que antes no cabía.

En resumen: el entrenamiento en precisión mixta hace la mayor parte del cálculo en FP16 por velocidad y deja los puntos críticos en FP32 por precisión — rápido, barato y sin venirse abajo.

Comentarios