La cuantización de modelos es una técnica crucial de optimización de modelos utilizada en el aprendizaje profundo (AD) para reducir los costes computacionales y de memoria de los modelos. Lo consigue convirtiendo la precisión numérica de los parámetros del modelo(pesos y activaciones) de representaciones de mayor precisión, normalmente números de coma flotante de 32 bits(FP32), a formatos de menor precisión, como coma flotante de 16 bits (FP16), enteros de 8 bits (INT8), o incluso representaciones de bits inferiores. Este proceso hace que los modelos sean más pequeños, más rápidos y más eficientes energéticamente, lo que es especialmente vital para desplegar modelos complejos en entornos con recursos limitados, como los dispositivos móviles o los sistemas de IA de borde.
Cómo funciona la cuantificación de modelos
En esencia, la cuantización del modelo consiste en asignar el rango de valores que se encuentran en los tensores de alta precisión (como los pesos y las activaciones en FP32) a un rango más pequeño representable por tipos de datos de menor precisión (como INT8). Esta conversión reduce significativamente la memoria necesaria para almacenar el modelo y la potencia de cálculo necesaria para la inferencia, ya que las operaciones con números de menor precisión (especialmente enteros) suelen ser más rápidas y energéticamente más eficientes en hardware moderno como GPUs y aceleradores especializados como TPUs.
Ventajas de la cuantización de modelos
Aplicar la cuantización a los modelos de aprendizaje profundo ofrece varias ventajas clave:
- Tamaño reducido del modelo: Una menor precisión requiere menos bits por parámetro, lo que reduce drásticamente la huella de almacenamiento del modelo. Esto es beneficioso para las actualizaciones por aire y los dispositivos con almacenamiento limitado.
- Mayor velocidad de inferencia: Los cálculos con números de menor precisión, en particular la aritmética de enteros, suelen ser más rápidos en hardware compatible, lo que se traduce en una menor latencia de inferencia.
- Menor consumo de energía: Un menor acceso a la memoria y unos cálculos más sencillos se traducen en un menor consumo de energía, algo crucial para los dispositivos de borde alimentados por batería.
- Despliegue mejorado: Permite el despliegue de modelos grandes y complejos como Ultralytics YOLO en hardware con recursos computacionales limitados, como microcontroladores o TPU de borde.
Técnicas de Cuantización
Hay dos enfoques principales para la cuantización de modelos:
- Cuantización Post-Entrenamiento (PTQ): Este método consiste en cuantificar un modelo que ya ha sido entrenado utilizando una precisión de coma flotante estándar. Es más sencillo de aplicar, ya que no requiere un reentrenamiento, pero a veces puede provocar una caída notable en la precisión del modelo. A menudo se utiliza la calibración con un conjunto de datos representativo para minimizar esta pérdida de precisión.
- Entrenamiento Consciente de la Cuantización (QAT): El QAT simula los efectos de la cuantización durante el propio proceso de entrenamiento. El modelo aprende a adaptarse a la menor precisión, lo que suele dar como resultado una mayor exactitud en comparación con el PTQ, aunque requiere acceso al proceso de entrenamiento y a los datos originales.
Aplicaciones en el mundo real
La cuantización de modelos se utiliza ampliamente en diversos ámbitos:
- Computación móvil: Permite funciones sofisticadas de IA como la detección de objetos en tiempo real para filtros de cámara, la clasificación de imágenes y el procesamiento del lenguaje natural directamente en los teléfonos inteligentes sin depender en gran medida de la computación en la nube. Los marcos como TensorFlow Lite utilizan mucho la cuantización.
- Vehículos autónomos: Los modelos cuantificados permiten un procesamiento más rápido de los datos de los sensores (cámara, LiDAR) para tareas como la detección de peatones, el mantenimiento del carril y el reconocimiento de señales de tráfico, cruciales para la toma de decisiones en tiempo real en los sistemas de conducción autónoma. Ultralytics ofrece varias opciones de despliegue de modelos adecuadas para este tipo de aplicaciones.
Consideraciones y conceptos relacionados
Aunque es muy beneficiosa, la cuantización puede afectar potencialmente a la precisión del modelo. Después de la cuantización, es esencial realizar una evaluación cuidadosa utilizando métricas de rendimiento relevantes. Técnicas como el uso de arquitecturas de modelo que faciliten la cuantización (por ejemplo, sustituir determinadas funciones de activación, como se ha visto en YOLO) pueden ayudar a mitigar la degradación de la precisión, como se ha comentado en el despliegue de modelos YOLOv8 cuantizados.
La cuantización de modelos es una de las diversas técnicas de optimización de modelos. Otras son:
- Poda del modelo: Eliminar pesos o conexiones menos importantes para reducir la complejidad del modelo.
- Precisión mixta: Utilizar una combinación de FP16 y FP32 durante el entrenamiento o la inferencia para conseguir un equilibrio entre velocidad/memoria y precisión.
- Destilación del conocimiento: Entrenar un modelo "alumno" más pequeño para que imite la salida de un modelo "maestro" más grande y preentrenado.
Ultralytics admite la exportación de modelos a varios formatos que facilitan la cuantización, entre ellos ONNX, OpenVINO, TensorRT, CoreMLy TFLite, lo que permite un despliegue eficaz en diversas plataformas de hardware. Puedes gestionar y desplegar tus modelos, incluidas las versiones cuantizadas, utilizando herramientas como Ultralytics HUB.