Quantization
Cuantización
En una frase
Quantization: reducir la precisión numérica de los pesos (y a veces activaciones) de un modelo para que ocupe menos memoria y se ejecute más rápido.
¿Demasiado técnico? Ver explicación sencilla¿Quieres profundizar? Ver explicación técnica
Explícamelo fácil
Los pesos de un modelo suelen guardarse con números de 16 bits. Cuantizar es representarlos con menos bits —8 o incluso 4—, como redondear 3.14159265 a 3.14. Se pierde un poco de precisión, pero el modelo ocupa entre 2 y 4 veces menos memoria.
Gracias a esto, modelos que necesitarían un servidor pueden correr en una laptop o incluso en un teléfono.
Ejemplo
Memoria para los pesos de un modelo de 70B parámetros
Estimación solo de los pesos; la inferencia requiere memoria adicional para activaciones y KV Cache.
FP16 / BF16 16 bits → ~140 GB
INT8 8 bits → ~70 GB
INT4 4 bits → ~35 GBNivel técnico
Profundizando
Se mapea un rango de valores reales a un conjunto discreto usando una escala (y a veces un punto cero): q = round(x / s). La cuantización puede ser post-entrenamiento (PTQ; métodos como GPTQ o AWQ usan datos de calibración para minimizar el error) o durante el entrenamiento (QAT). La granularidad de las escalas (por tensor, por canal, por grupo de pesos) afecta la calidad.
En LLMs, la cuantización de solo pesos a 4 bits suele conservar bien la calidad en muchos modelos, aunque la degradación varía con la tarea y el tamaño. Además de memoria, reduce el ancho de banda necesario, que es el cuello de botella de la fase de decodificación; formatos como FP8 aprovechan soporte nativo en GPUs recientes.
Error común
¿Por qué importa?
Es la técnica más directa para reducir el costo de ejecutar modelos y para llevarlos a hardware modesto.
¿Dónde se utiliza?
- Ejecutar LLMs en local
- Reducir costos de servidores
- IA en dispositivos móviles
- QLoRA
Antes de aprender esto
Continúa aprendiendo
- Inference OptimizationEl conjunto de técnicas para ejecutar modelos más rápido, con menos memoria y a menor costo sin perder calidad.
- QLoRAUna variante de LoRA que carga el modelo base cuantizado a 4 bits para poder hacer fine-tuning con mucha menos memoria.
- PruningEliminar pesos, neuronas o capas poco importantes de un modelo para hacerlo más pequeño y rápido.