Cuantización
Técnica de optimización que representa los pesos y activaciones del modelo en menor precisión de bits (por ejemplo, INT8) para acelerar la inferencia y reducir el uso de memoria.
La cuantización convierte los parámetros y cálculos de redes neuronales de punto flotante de 32 bits (FP32) a representaciones de menor ancho de bits como INT8 o FP16. Esto comprime el tamaño del modelo hasta 4 veces y mejora la velocidad de inferencia entre 2 y 4 veces, siendo esencial para el procesamiento de imágenes en tiempo real en dispositivos edge.
Convertir pesos FP32 a INT8 reduce la memoria por parámetro de 4 bytes a 1 byte. ResNet-50 (aproximadamente 100 MB) se reduce a unos 25 MB tras la cuantización INT8, ajustándose a las restricciones de memoria de smartphones mientras mantiene una precisión práctica.
- Cuantización post-entrenamiento (PTQ): Determina la escala y el punto cero usando un pequeño conjunto de calibración (unos cientos de imágenes). No requiere reentrenamiento pero puede incurrir en pérdida de precisión notable
- Entrenamiento consciente de cuantización (QAT): Simula la cuantización durante el entrenamiento para que los parámetros se adapten a la ejecución cuantizada. Mayor precisión que PTQ con coste de entrenamiento adicional
- Precisión mixta: Mantiene las capas sensibles (primera y última) en FP16 mientras cuantiza las demás a INT8, proporcionando un control fino entre precisión y velocidad
TensorFlow Lite ofrece cuantización automática mediante tf.lite.Optimize.DEFAULT, y ONNX Runtime soporta INT8 de forma nativa. Los modelos cuantizados se ejecutan en WebAssembly para procesamiento en el navegador. La pérdida de precisión típicamente se mantiene dentro del 1-2%, aceptable para la mayoría de usos en producción.