Glosario

Precisión mixta

¡Aumenta la eficiencia del aprendizaje profundo con el entrenamiento de precisión mixta! Consigue mayor velocidad, menor uso de memoria y ahorro de energía sin sacrificar la precisión.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

El entrenamiento de precisión mixta es una técnica utilizada en el aprendizaje profundo para acelerar el cálculo y reducir los requisitos de memoria sin comprometer significativamente el rendimiento del modelo. Lo consigue utilizando estratégicamente diferentes formatos de precisión numérica -principalmente coma flotante de 16 bits (FP16 o media precisión) y coma flotante de 32 bits (FP32 o precisión única)- para diferentes partes del modelo durante el entrenamiento y la inferencia. Este enfoque equilibra la velocidad y la eficiencia de memoria de la precisión más baja con la estabilidad numérica y la precisión que ofrece la precisión más alta.

Comprender la precisión numérica

Los modelos de aprendizaje profundo se basan tradicionalmente en el formato estándar IEEE 754 de coma flotante de precisión única (FP32 ) para almacenar pesos, activaciones y gradientes. FP32 ofrece un amplio rango dinámico y precisión, lo que lo hace robusto para cálculos complejos. Sin embargo, las operaciones en FP32 requieren una potencia de cálculo y un ancho de banda de memoria considerables. Los formatos de menor precisión, como FP16, utilizan sólo 16 bits, lo que reduce a la mitad el espacio de memoria y a menudo permite cálculos mucho más rápidos en hardware compatible, como las modernas GPU equipadas con NVIDIA Tensor Cores.

Cómo funciona la Precisión Mixta

El entrenamiento de precisión mixta combina inteligentemente FP16 y FP32. La idea central es realizar operaciones computacionalmente intensivas, como convoluciones y multiplicaciones de matrices dentro de las capas del modelo, utilizando el formato más rápido FP16. Sin embargo, algunas operaciones son sensibles al reducido alcance y precisión del FP16. Para mantener la estabilidad y precisión del modelo, las partes críticas del proceso de entrenamiento, como el cálculo de pérdidas y las actualizaciones del gradiente, suelen mantenerse en el formato FP32, más robusto. Se emplean técnicas como el escalado dinámico de pérdidas para evitar problemas de desbordamiento o subdesbordamiento numérico cuando los gradientes son demasiado pequeños o demasiado grandes para la representación FP16. Frameworks como PyTorch (a través de Automatic Mixed Precision - AMP) y TensorFlow (a través de tf.keras.mixed_precision API) proporcionan soporte automatizado para implementar el entrenamiento de precisión mixta.

Ventajas de la precisión mixta

Aplicar la precisión mixta ofrece varias ventajas clave:

  • Entrenamiento más rápido: Las operaciones FP16 pueden ser significativamente más rápidas en el hardware compatible, lo que reduce los tiempos de entrenamiento.
  • Menor uso de memoria: Almacenar los pesos y activaciones del modelo en FP16 reduce a la mitad el requisito de memoria, lo que permite modelos más grandes o aumentar el tamaño de los lotes, lo que puede mejorar la dinámica del entrenamiento.
  • Eficiencia energética: Un cálculo más rápido y un menor movimiento de datos conllevan un menor consumo de energía durante el entrenamiento y la inferencia.
  • Precisión mantenida: Cuando se aplica correctamente con técnicas como el escalado de pérdidas, la precisión mixta suele alcanzar una exactitud comparable a la del entrenamiento FP32 completo. Para más detalles sobre la optimización del entrenamiento, consulta estos consejos para el entrenamiento de modelos.

Aplicaciones en el mundo real

La precisión mixta se utiliza ampliamente en diversos ámbitos de la IA:

  1. Visión por ordenador: Modelos de detección de objetos de última generación, incluyendo Ultralytics YOLO como YOLOv8 y YOLO11suelen aprovechar la precisión mixta durante el entrenamiento. Esto les permite entrenarse más rápido y manejar conjuntos de datos más grandes como COCO u Objects365, permitiendo en última instancia una implantación eficiente en plataformas que van desde servidores en la nube a dispositivos de borde como el NVIDIA Jetson.
  2. Procesamiento del Lenguaje Natural (PLN): El entrenamiento de grandes modelos lingüísticos (LLM ) masivos, como GPT-3 y BERT, es intensivo desde el punto de vista computacional. El entrenamiento de precisión mixta es crucial para gestionar los requisitos de memoria y computación, haciendo factible el entrenamiento de estos modelos para tareas como la generación de textos, la traducción automática y el análisis de sentimientos.

Consideraciones y conceptos relacionados

Aunque es muy beneficiosa, la aplicación con éxito de la precisión mixta requiere:

  • Soporte de hardware: Un aumento óptimo de la velocidad requiere un hardware específicamente diseñado para el cálculo FP16 acelerado (por ejemplo, NVIDIA Volta, Turing, Ampere o GPUs más recientes).
  • Estabilidad numérica: Es necesario un manejo cuidadoso, a menudo mediante herramientas de marco automatizado y escalado de pérdidas, para evitar problemas relacionados con el alcance limitado de la FP16.
  • Integración de marcos: Aprovechando el soporte integrado en marcos de aprendizaje profundo como PyTorch o TensorFlow simplifica la implementación.

Es importante distinguir el entrenamiento de precisión mixta de la cuantización de modelos. Aunque ambos implican el uso de una precisión más baja, la cuantización suele convertir los modelos a formatos de bits aún más bajos (como INT8) principalmente para optimizar la velocidad de inferencia y reducir el tamaño del modelo para su despliegue en dispositivos con recursos limitados, a menudo después del entrenamiento inicial. La precisión mixta se centra en acelerar el propio proceso de entrenamiento combinando FP16 y FP32.

La precisión mixta se ha convertido en una técnica estándar en el conjunto de herramientas del aprendizaje profundo, que permite desarrollar y entrenar modelos más grandes y complejos de forma más rápida y eficaz.

Leer todo