Glosario

Precisión mixta

Aumente 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.

La precisión mixta es una técnica utilizada en el aprendizaje profundo para acelerar el entrenamiento del modelo y reducir el consumo de memoria. Consiste en utilizar una combinación de formatos numéricos de menor precisión, como punto flotante de 16 bits (FP16), y formatos de mayor precisión, como punto flotante de 32 bits (FP32), durante el cálculo. Al utilizar estratégicamente números de menor precisión para ciertas partes del modelo, como la multiplicación de pesos, y mantener los componentes críticos, como las actualizaciones de pesos, en precisión más alta, el entrenamiento de precisión mixta puede acelerar significativamente el rendimiento en las GPU modernas sin una pérdida sustancial en la precisión del modelo.

Cómo funciona la precisión mixta

La idea central de la precisión mixta es aprovechar la velocidad y la eficiencia de memoria de los tipos de datos de menor precisión. El hardware moderno, especialmente las GPU NVIDIA con Tensor Cores, puede realizar operaciones con números de 16 bits mucho más rápido que con números de 32 bits. El proceso suele implicar tres pasos clave:

  1. Conversión a baja precisión: La mayoría de las operaciones del modelo, en particular las multiplicaciones de matrices y las convoluciones, se realizan utilizando aritmética de media precisión (FP16). Esto reduce el espacio de memoria y acelera los cálculos.
  2. Mantener una copia maestra de los pesos: Para mantener la precisión y estabilidad del modelo, se mantiene una copia maestra de los pesos del modelo en el formato estándar de punto flotante de 32 bits (FP32). Esta copia maestra se utiliza para acumular gradientes y actualizar los pesos durante el proceso de entrenamiento.
  3. Escalado de pérdidas: Para evitar el subdesbordamiento numérico -donde los valores de gradiente pequeños se convierten en cero cuando se convierten a FP16- se utiliza una técnica llamada escalado de pérdidas. Consiste en multiplicar la pérdida por un factor de escala antes de la retropropagación para mantener los valores del gradiente dentro de un rango representable para FP16. Antes de actualizar los pesos, los gradientes se reducen.

Los marcos de aprendizaje profundo como PyTorch y TensorFlow tienen soporte integrado para la precisión mixta automática, lo que facilita su implementación.

Aplicaciones y ejemplos

La precisión mixta está muy extendida en el entrenamiento de modelos de aprendizaje automático (ML) a gran escala, donde la eficiencia es primordial.

Conceptos relacionados

La precisión mixta es una de las diversas técnicas de optimización utilizadas para hacer más eficientes los modelos de aprendizaje profundo. Es importante distinguirla de otros conceptos relacionados:

  • Cuantización de modelos: La cuantización reduce el tamaño del modelo y el coste computacional convirtiendo los números de coma flotante (como FP32 o FP16) en formatos enteros de bits más bajos, como INT8. Mientras que la precisión mixta utiliza diferentes formatos de coma flotante durante el entrenamiento, la cuantización se aplica normalmente después del entrenamiento(cuantización post-entrenamiento) o durante el mismo(entrenamiento consciente de la cuantización) para optimizar la inferencia, especialmente en dispositivos de borde.
  • Poda de modelos: La poda es una técnica que consiste en eliminar las conexiones (pesos) redundantes o sin importancia de una red neuronal. A diferencia de la precisión mixta, que cambia el formato numérico de los pesos, la poda altera la propia arquitectura del modelo para reducir su tamaño y complejidad. Estas técnicas pueden emplearse conjuntamente para obtener un mayor rendimiento.

Únase a la comunidad Ultralytics

Únase al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo.

Únete ahora
Enlace copiado en el portapapeles