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 de aprendizaje automático 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 los recursos computacionales necesarios para la inferencia, ya que las operaciones con números de menor precisión (especialmente los enteros) suelen ser más rápidas y energéticamente más eficientes en el hardware moderno como GPUs, CPUs y aceleradores especializados como TPUs o NPUs. El objetivo es conseguir estas ganancias de eficiencia con un impacto mínimo en el rendimiento predictivo del modelo.
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: Los tipos de datos de menor precisión requieren menos espacio de almacenamiento, lo que hace que los modelos sean más fáciles de almacenar y distribuir, especialmente para su despliegue en el dispositivo.
- Mayor velocidad de inferencia: Los cálculos con números de menor precisión (especialmente enteros) se ejecutan más rápido en hardware compatible, reduciendo la latencia de inferencia. Esto es fundamental para las aplicaciones en tiempo real.
- Eficiencia energética mejorada: Los cálculos más rápidos y el menor acceso a la memoria reducen el consumo de energía, prolongando la duración de la batería en dispositivos móviles y de vanguardia.
- Compatibilidad de hardware mejorada: Muchos aceleradores de hardware especializados(TPUs Edge, NPUs en procesadores ARM) están optimizados para la aritmética de enteros de baja precisión, lo que permite aumentar significativamente el rendimiento de los modelos cuantizados.
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 reentrenamiento ni acceso a los datos de entrenamiento originales. Sin embargo, a veces puede provocar un descenso notable en la precisión del modelo. Herramientas como el Kit de herramientas de optimización de modelosTensorFlow proporcionan capacidades PTQ.
- Entrenamiento Consciente de la Cuantización (QAT): Esta técnica simula los efectos de la cuantización durante el proceso de entrenamiento del modelo. Al hacer que el modelo sea "consciente" de la próxima reducción de precisión, el QAT a menudo consigue una mayor precisión en comparación con el PTQ, especialmente para los modelos sensibles a la cuantización, aunque requiere modificaciones en el flujo de trabajo de entrenamiento y acceso a los datos de entrenamiento. PyTorch ofrece soporte para QAT.
Aplicaciones en el mundo real
La cuantización de modelos se utiliza ampliamente en diversos ámbitos:
- Aplicaciones de visión móvil: Permitir tareas sofisticadas de visión por ordenador como la detección de objetos en tiempo real (por ejemplo, utilizando un modeloYOLO cuantificado Ultralytics ) o la segmentación de imágenes directamente en teléfonos inteligentes para aplicaciones como la realidad aumentada, la edición de fotos o la búsqueda visual. La cuantización hace que estos exigentes modelos sean viables en el hardware móvil.
- Vehículos autónomos y robótica: Despliegue de modelos de percepción (para detectar peatones, vehículos, obstáculos) en coches o drones, donde la baja latencia y la eficiencia energética son primordiales para la seguridad y la resistencia operativa. Los modelos cuantificados ayudan a cumplir estos estrictos requisitos de procesamiento en tiempo real.
- Dispositivos Edge AI: Ejecutar modelos de IA para tareas como la detección de defectos industriales, la automatización del hogar inteligente o la supervisión de la salud de los usuarios en microcontroladores de bajo consumo o procesadores de borde especializados.
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 explica 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: Eliminación de conexiones (pesos) redundantes o sin importancia en la red neuronal.
- Precisión mixta: Utilizar una combinación de diferentes precisiones numéricas (por ejemplo, FP16 y FP32) durante el entrenamiento o la inferencia.
- Destilación de conocimientos: Entrenamiento de un modelo "alumno" más pequeño para que imite el comportamiento de un modelo "maestro" más grande y previamente entrenado.
Ultralytics admite la exportación de modelos a varios formatos que facilitan la cuantificación y el despliegue, entre ellos ONNX, OpenVINO (optimizado para hardwareIntel ), TensorRT (para GPUNVIDIA ), CoreML (para dispositivos Apple) y TFLite, lo que permite un despliegue eficaz de los modelos en diversas plataformas de hardware. Puedes gestionar y desplegar tus modelos, incluidas las versiones cuantizadas, utilizando herramientas como Ultralytics HUB. Integraciones como Neural Magic también aprovechan la cuantización para optimizar CPU .