GGUF, EXL2, GPTQ y AWQ: Una comparación exhaustiva para el servicio de LLM
Conozca las diferencias clave entre los formatos de cuantificación GGUF, EXL2, GPTQ y AWQ y cómo se utilizan en llama.cpp y vLLM para usuarios domésticos y empresariales.
Introducción
Los modelos de lenguaje grandes (LLM) modernos consumen mucha memoria. Un modelo de 70 mil millones de parámetros en precisión completa (FP16) requiere alrededor de 140 GB de VRAM, muy por encima incluso de las GPU de consumo más potentes. La cuantificación reduce la precisión de los pesos de 16 bits a 4 bits o menos, reduciendo drásticamente los requisitos de memoria. Pero no todos los formatos de cuantificación son iguales. La elección entre GGUF, EXL2, GPTQ y AWQ depende de su hardware, su motor de servicio y sus prioridades: portabilidad, velocidad o rendimiento multiusuario.
Resumen de los formatos de cuantificación
GGUF (GPT-Generated Unified Format) es el formato nativo de llama.cpp y el más versátil. Funciona en CPU, Apple Silicon, configuraciones mixtas CPU/GPU y admite una amplia gama de niveles de cuantificación (de 2 a 8 bits). Es el estándar para implementaciones locales, de un solo usuario y en el borde. GPTQ (Generalized Post-Training Quantization) fue el estándar de GPU durante mucho tiempo. Está optimizado para GPU NVIDIA y ofrece un buen equilibrio entre compresión y velocidad de inferencia, pero está siendo reemplazado cada vez más por formatos más nuevos como AWQ. AWQ (Activation-aware Weight Quantization) es el estándar industrial actual para la producción en GPU. Protege los pesos importantes basándose en patrones de activación, lo que mejora la precisión con el mismo ancho de bits. Está altamente optimizado para kernels modernos de GPU NVIDIA (Marlin) y es ideal para servicio de alto rendimiento. EXL2 es el formato del motor ExLlamaV2. Ofrece el control más fino sobre el ancho de bits (por ejemplo, 3.5, 4.25, 5.0 bits por peso) y permite ajustar con precisión un modelo en VRAM limitada. A menudo es el formato más rápido para la generación de un solo usuario en GPU NVIDIA de consumo.
Tabla comparativa de formatos
| Formato | Características clave | Mejor para | Motores compatibles |
|---|---|---|---|
| GGUF | Mayor portabilidad, muchos bits, mezcla CPU/GPU | Uso local, usuarios domésticos, dispositivos de borde, Apple Silicon | llama.cpp, Ollama, LM Studio, (experimental en vLLM) |
| GPTQ | Optimizado para GPU, maduro, buen equilibrio | Implementaciones GPU heredadas, inferencia basada en NVIDIA | vLLM, ExLlamaV1, AutoGPTQ |
| AWQ | Cuantificación consciente de activación, alta precisión, kernel Marlin | Servicio de producción, alto rendimiento, GPU NVIDIA modernas | vLLM, TGI, AWQ Engine |
| EXL2 | Control de bits más fino, mayor velocidad para un solo usuario | Un solo usuario, baja latencia, GPU NVIDIA de consumo | ExLlamaV2 |
Uso en llama.cpp
llama.cpp está construido alrededor del formato GGUF. Es el motor principal para usuarios que no tienen una GPU NVIDIA dedicada de alta gama, necesitan ejecutar modelos en CPU o Apple Silicon, o requieren una solución única que sea fácil de configurar. Con llama.cpp, puede descargar partes de un modelo a la GPU mientras mantiene el resto en la RAM del sistema (descarga CPU+GPU). Esto permite ejecutar modelos grandes incluso en dispositivos con VRAM limitada. Herramientas como Ollama y LM Studio usan llama.cpp internamente, lo que convierte a GGUF en la opción más fácil para principiantes. Para aplicaciones de chat local, generación de texto en una computadora portátil o dispositivos de borde, GGUF es el campeón indiscutible.
Uso en vLLM
vLLM está diseñado para entornos de producción de alto rendimiento. Implementa PagedAttention y procesamiento por lotes continuo para atender a muchos usuarios simultáneamente. De forma nativa, vLLM admite AWQ y GPTQ. Estos son los formatos que debe usar al implementar vLLM en producción. AWQ es preferido debido a su precisión y velocidad superiores (especialmente con el kernel Marlin). GPTQ todavía es compatible, pero para proyectos nuevos se recomienda AWQ. GGUF solo es compatible experimentalmente en vLLM y no es adecuado para producción (a menudo es más lento y menos optimizado). EXL2 no es compatible con vLLM; es exclusivo del motor ExLlamaV2, optimizado para baja latencia de un solo usuario.
Elegir el formato correcto
Para usuarios domésticos o desarrollo local: Use GGUF con llama.cpp (o herramientas como Ollama). Es el más compatible, funciona en casi cualquier hardware y es fácil de administrar. Para empresas o servicio de alto rendimiento: Use AWQ con vLLM en GPU NVIDIA. Proporciona el mejor equilibrio de velocidad, precisión y escalabilidad para atender a múltiples usuarios concurrentes. Para usuarios avanzados (velocidad de un solo usuario): Si tiene una GPU NVIDIA y desea la velocidad de generación más rápida para un solo usuario, use EXL2 con el motor ExLlamaV2. Siempre verifique que su motor de servicio admita el formato elegido antes de cuantificar un modelo.
Conclusión
La elección del formato de cuantificación es una decisión estratégica basada en su caso de uso. GGUF domina el espacio local, AWQ lidera en producción, EXL2 reina en el nicho de alta velocidad y GPTQ sigue siendo una opción sólida pero más antigua. Al comprender estas diferencias, puede optimizar su servicio de LLM tanto para necesidades domésticas como empresariales.
Trabajemos juntos
¿Necesitas más información, ayuda con tu proyecto o desarrollar una idea?
Ya sea una pregunta sencilla, una duda rápida o una charla de 5 minutos, envíame un mensaje—no cuesta nada y siempre estoy listo para ayudar. Me gusta escuchar para entender el problema, ser creativo en las soluciones y centrarme en ideas simples, confiables y fáciles de implementar rápidamente.
Contáctame →