GGUF vs AWQ vs GPTQ vs FP8 vs NF4: opciones de cuantización de LLM
Traducción automática
Este artículo se tradujo automáticamente a partir de la versión original en inglés.
Elige la cuantización de LLM según el runtime, el hardware y la tarea que necesitas ejecutar. GGUF empaqueta tensores del modelo y metadatos. AWQ y GPTQ reducen la precisión de los pesos después del entrenamiento. FP8 utiliza valores de coma flotante de ocho bits. NF4 almacena los pesos en cuatro bits y suele utilizarse al entrenar adaptadores QLoRA. Estos nombres describen distintas partes del proceso de carga y ejecución del modelo.
Elige primero el runtime y el hardware. Después, selecciona una representación compatible con el runtime fijado para esa arquitectura concreta. Haz benchmarks de calidad en las tareas, memoria, tiempo hasta el primer token, rendimiento y concurrencia antes de aceptar los archivos de modelo más pequeños.
Comprueba la compatibilidad antes de comparar el tamaño de los archivos o el número de bits.
Tabla de decisión
| Objetivo | Punto de partida | Comprobar antes de usar |
|---|---|---|
| Inferencia local en CPU, Metal o llama.cpp portátil | GGUF con una cuantización documentada | Compatibilidad de la arquitectura, plantilla de chat, comportamiento con el contexto, configuración de cuantización y revisión del origen. |
| Inferencia en GPU con cuantización calibrada de pesos | AWQ o GPTQ | El motor de serving, la GPU, el número de bits, el tamaño de grupo, los kernels y la arquitectura del modelo. |
| Serving en una GPU de centro de datos compatible | FP8 | Capacidad del hardware, implementación del runtime, modo de calibración y calidad de extremo a extremo. |
| Entrenamiento eficiente en parámetros con pesos congelados de 4 bits | NF4 mediante bitsandbytes | Precisión aritmética, memoria necesaria para el entrenamiento y si el despliegue utiliza un adaptador o pesos fusionados. |
| Prototipo sencillo con Transformers | bitsandbytes de 8 o 4 bits | Compatibilidad del backend y si el flujo del prototipo coincide con el servidor de producción. |
GGUF no especifica una única cuantización
Una extensión .gguf indica cómo se empaquetan los tensores y los metadatos, no la precisión de cada tensor. Nombres como Q4_K_M identifican recetas de cuantización de llama.cpp, y esas recetas pueden tratar de forma diferente distintos grupos de tensores. Registra el checkpoint original, la versión del conversor, el comando de cuantización y los hashes de los archivos. La calibración utiliza entradas representativas para elegir los parámetros de cuantización. Si la conversión utilizó esas entradas, registra también el dataset.
AWQ y GPTQ necesitan una vía de serving compatible
Los archivos de modelo AWQ y GPTQ suelen usar Safetensors junto con ajustes que describen el método de cuantización. Un modelo puede descargarse correctamente y, aun así, recurrir a un kernel lento o fallar con una arquitectura no compatible. Consulta la matriz de compatibilidad actual de Transformers, vLLM o de la versión concreta del servidor antes de seleccionar los archivos del modelo.
FP8 y NF4 resuelven problemas distintos
FP8 resulta atractivo cuando el acelerador y el stack de serving lo implementan de forma eficiente. NF4 se utiliza principalmente para almacenar pesos congelados del modelo mientras se entrenan adaptadores pequeños mediante flujos de trabajo de tipo QLoRA. En bitsandbytes, el dtype de cómputo establece la precisión utilizada en la aritmética; puede diferir de los pesos almacenados en cuatro bits. La cuantización anidada opcional también comprime las constantes utilizadas para representar esos pesos. Ninguna de estas etiquetas garantiza la misma calidad, velocidad o uso de memoria en todos los modelos y tipos de hardware.
Lista de comprobación para la evaluación
Almacenar los pesos en cuatro bits no significa que todo el proceso utilice cuatro bits por parámetro. Los metadatos de cuantización, los tensores de mayor precisión, los búferes temporales y la caché de atención requieren más memoria. Prueba la longitud de los prompts y las solicitudes concurrentes que prevés atender.
- compara el mismo checkpoint de origen y el mismo conjunto de prompts
- incluye solicitudes con contexto largo y solicitudes concurrentes
- mide la corrección de los esquemas y de los tool calls junto con la perplejidad
- registra el pico de memoria del dispositivo y del host
- verifica el tiempo hasta el primer token y la tasa de generación de tokens
- inspecciona los segmentos de calidad poco frecuentes o de alto coste
- conserva la licencia, la revisión del origen, el conversor, la receta y el hash junto con los archivos del modelo
Lecturas recomendadas
- Guía de ingeniería de LLM: cuantización sitúa estas opciones junto al uso de memoria, los kernels de serving y la selección de GPU.
- Guía de cuantización de modelos cubre algoritmos, calibración, kernels y compromisos del despliegue.
- Variantes de LLMs con pesos abiertos distingue entre el papel del checkpoint, la arquitectura, el contenedor, la cuantización, el runtime y el hardware.
- LLMs locales en macOS aplica estas decisiones a Apple Silicon.