Contenido
- 1. Por qué los archivos cuantizados confunden
- 2. La regla clave: el formato lo define el motor de ejecución
- 3. Descifrar los nombres GGUF (Q4_K_M)
- 4. Los 4 formatos comparados (GGUF/GPTQ/AWQ/EXL2)
- 5. Qué archivo / profundidad de bits elegir
- 6. Encontrar archivos en Hugging Face y Ollama
- Resumen
- Preguntas frecuentes
Abres Hugging Face para ejecutar un LLM local y el mismo modelo tiene un muro de archivos: Q4_K_M, Q5_K_S, GPTQ, AWQ, IQ3_M… y te quedas paralizado. Es el primer muro con el que choca casi todo el mundo. Este artículo responde, de forma práctica, a "¿qué archivo cuantizado descargo para que funcione?". Dejamos qué es la cuantización (el concepto) para otro artículo y aquí nos centramos en elegir el formato.
Veremos por qué el formato lo define el motor de ejecución, el esquema de nombres GGUF (Q4_K_M), los 4 formatos comparados, cómo elegir la profundidad de bits y cómo encontrar los archivos. Los puntos clave, de entrada. ① El formato lo decide sobre todo "en qué motor lo vas a ejecutar" (GGUF = llama.cpp/Ollama; GPTQ/AWQ = motores de GPU como vLLM). ② Q4_K_M significa "4 bits, K-quant, tamaño M": el punto dulce habitual en la mayoría de los casos. ③ Ante la duda, empieza con Q4_K_M; sube a Q5/Q6 si tienes VRAM de sobra.
El formato lo define el motor de ejecución
— decide primero el motor y la elección del archivo se estrecha rápido
GGUF
llama.cpp / Ollama / LM Studio = también CPU, Mac, GPU parcial (el único apto para CPU)
GPTQ
vLLM / TGI / ExLlama = GPU (necesita calibración)
AWQ
vLLM / TGI = GPU (protege los pesos relevantes mediante las activaciones)
EXL2
ExLlamaV2 = GPU (ancho de bits de grano fino)
Así que la primera pregunta es "¿en qué motor lo voy a ejecutar?". Local en CPU/Mac → GGUF. Servidor GPU para velocidad → GPTQ/AWQ.
1. Por qué los archivos cuantizados confunden
Cuantizar significa redondear los pesos de un modelo a menos bits para reducir su tamaño y su consumo de memoria (véase qué es la cuantización). El problema es que hay varios métodos (formatos) para ese redondeo, y cada uno tiene muchas variantes de profundidad de bits y granularidad. El resultado: más de 20 archivos bajo un solo modelo en Hugging Face.
Pero tranquilo: la elección se vuelve fácil en cuanto la divides en dos pasos: ① qué formato (= en qué motor lo vas a ejecutar) y luego ② qué archivo, según la profundidad de bits, dentro de él. Piénsalo en ese orden.
2. La regla clave: el formato lo define el motor de ejecución
El hecho más importante: un archivo cuantizado solo funciona en los motores que admiten su formato. Por eso, decide primero el motor y el formato queda casi automático.
| Formato | Motores principales | Hardware | Calibración |
|---|---|---|---|
| GGUF | llama.cpp / Ollama / LM Studio / KoboldCpp | CPU, Mac, GPU parcial (mixto) | Opcional (imatrix) |
| GPTQ | GPTQModel (antes AutoGPTQ) / vLLM / TGI / ExLlama | GPU | Obligatoria |
| AWQ | AutoAWQ / vLLM / TGI | GPU | Obligatoria |
| EXL2 / EXL3 | ExLlamaV2 / ExLlamaV3 | GPU | Obligatoria |
| bitsandbytes (NF4/INT8) | Transformers (cuantiza al cargar) | GPU | Ninguna (sin datos) |
Recuerda una cosa: GGUF es el único formato "todoterreno local" que funciona en CPU / Mac / GPU parcial; el resto (GPTQ/AWQ/EXL2) son básicamente solo GPU. Así que:
- Ejecutar en tu propio PC / Mac / CPU (Ollama o LM Studio) → GGUF, sin discusión.
- Alto rendimiento en un servidor GPU (vLLM/TGI atendiendo muchas peticiones) → GPTQ o AWQ.
- Ajustar el ancho de bits con precisión en una sola GPU → EXL2/EXL3.
- Prueba rápida en Transformers (sin archivo precuantizado) → bitsandbytes (NF4).
3. Descifrar los nombres GGUF (Q4_K_M)
GGUF, el que más te encontrarás para uso local, es inofensivo en cuanto sabes leer el "código" del nombre del archivo. Q4_K_M se compone de tres partes.
Q4_K_M
Así, Q4_K_M = "K-quant de 4 bits, tamaño M (algunos tensores mejorados para proteger la calidad)". Los bits efectivos quedan algo por encima de la etiqueta (p. ej. Q4_K ≈ 4,5 bpw).
Dos términos más para no perderte.
- La familia IQ (IQ2_XS, IQ3_M, etc.) = I-quants: una línea más reciente, basada en libro de códigos (codebook), que puede bajar aún más de tamaño con la misma profundidad de bits. Pero la inferencia es más pesada y en la práctica requieren el imatrix que se explica abajo. Un as en la manga para "de verdad necesito que esto entre en la VRAM".
- imatrix (matriz de importancia): pasa un texto de calibración por el modelo para medir qué pesos importan y luego protégelos primero con baja profundidad de bits. Opcional para los K-quants, prácticamente obligatorio para los I-quants. Los GGUF construidos con imatrix aguantan mejor a bits bajos.
4. Los 4 formatos comparados (GGUF/GPTQ/AWQ/EXL2)
Este es el carácter de cada formato principal, incluidos los de GPU.
El único formato que funciona en CPU/Mac/mixto. El estándar de llama.cpp. Flexible con K-quant/I-quant/imatrix. Primera opción para uso personal local.
El estándar de 4 bits en GPU. Minimiza el error capa por capa mediante calibración. Rápido en vLLM/TGI. Ahora sucedido por GPTQModel.
Protege los "pesos relevantes" fijándose en las activaciones (activation-aware). GPU, solo pesos a 4 bits. Muy usado en vLLM/TGI.
Fija el ancho de bits como fracción (p. ej. 4,5 bpw). Solo ExLlama, GPU. EXL3 es una línea más reciente basada en QTIP, aún madurando.
💡 GPTQ vs AWQ (en breve): GPTQ "minimiza el error de reconstrucción capa por capa", mientras que AWQ "observa la distribución de activaciones para proteger el ~1% de pesos importantes". Cuál gana depende del modelo, del ancho de bits y de la implementación, así que ninguno es mejor de forma universal. Simplemente elige el que admita el motor que hayas escogido.
5. Qué archivo / profundidad de bits elegir
Una vez fijado el formato, lo siguiente es la profundidad de bits. Tomando GGUF como ejemplo, esta es una escalera práctica del tipo "ante la duda, elige esto" (los números son aproximados y varían según el modelo y la compilación).
| Archivo | Función | Cuándo elegirlo |
|---|---|---|
| Q4_K_M | El punto dulce habitual (el predeterminado de Ollama para muchos modelos) | Ante la duda. Como norma, el mejor equilibrio tamaño/calidad |
| Q5_K_M / Q6_K | Más cerca de la calidad completa | Tienes VRAM de sobra y quieres subir otro escalón |
| Q8_0 | Casi sin pérdidas, pero no recomendado | Rara vez necesario (mucha más RAM/más lento por una ganancia de calidad mínima) |
| IQ2 / IQ3 (I-quant) | Encajarlo a bits muy bajos | Solo cuando tienes que meter un modelo grande en la VRAM |
Como regla general, se suele decir que alrededor de 4,5–5 bits por peso (Q4_K–Q5_K) es la banda "sabrosa" (una heurística). Por encima de Q6 las mejoras de calidad se frenan, y Q8_0 o FP16 cuestan mucho en memoria y velocidad para poca diferencia: ese es el consenso práctico. Empieza ejecutando Q4_K_M, sube a Q5/Q6 si se queda corto, baja a IQ si no cabe, y ajusta sobre la marcha. Para estimar la VRAM que necesitas, consulta los requisitos de hardware para LLM locales.
6. Encontrar archivos en Hugging Face y Ollama
En Hugging Face, filtra GGUF con library=gguf, o ve al repositorio de algún reempaquetador de cuantizaciones. Al momento de escribir esto, bartowski y mradermacher publican GGUF de forma activa (incluidas compilaciones con imatrix), pero la actividad de los reempaquetadores cambia, así que comprueba la fecha de subida más reciente. (Los repositorios de TheBloke, antaño el estándar, siguen existiendo, pero las nuevas subidas se han detenido en gran medida.) Para convertir los tuyos propios, funciona el Space oficial gguf-my-repo.
En Ollama, las etiquetas siguen el patrón model:size-variant-quant.
# Sin etiqueta = el predeterminado (Q4_K_M para muchos modelos)
ollama pull llama3.1
# Elegir la cuantización explícitamente
ollama pull llama3.1:8b-instruct-q5_K_M
ollama pull qwen2.5-coder:7b-instruct-q8_0
# Consulta las etiquetas disponibles en ollama.com/library/<model>/tags
Así que el flujo de trabajo real son tres movimientos: decide el motor → reduce a su formato → elige el archivo, según la profundidad de bits, que quepa en tu VRAM. Domina eso y el muro de 20 archivos deja de asustarte. Para ejecutar uno de verdad, consulta cómo ejecutar un LLM local y la guía de Ollama.
Resumen
Elegir un formato de cuantización son dos pasos. Primero ① en qué motor lo vas a ejecutar: local CPU/Mac → GGUF; servidor GPU para velocidad → GPTQ/AWQ; ancho de bits ajustado en una GPU → EXL2; prueba rápida en Transformers → bitsandbytes. La regla suprema: un formato solo funciona en los motores que lo admiten.
Luego ② la profundidad de bits. El Q4_K_M de GGUF significa "4 bits, K-quant, tamaño M": el predeterminado habitual. Ante la duda, Q4_K_M → (si tienes espacio) Q5/Q6 → (si no cabe) IQ. Ancla en la heurística de la banda "sabrosa" de ~4,5–5 bpw y ajusta mientras lo ejecutas. Las compilaciones con imatrix aguantan mejor a bits bajos. Relacionado: qué es la cuantización, cómo ejecutar un LLM local, requisitos de hardware, mejores modelos locales, guía de Ollama.
Preguntas frecuentes
P. Entonces, ¿qué archivo elijo?
R. Primero decide "en qué motor lo vas a ejecutar". Tu propio PC o Mac (Ollama/LM Studio) → GGUF; un servidor GPU (vLLM/TGI) → GPTQ o AWQ. Después, para la profundidad de bits, ante la duda, Q4_K_M (buen equilibrio tamaño/calidad, y el predeterminado de Ollama para muchos modelos). Con VRAM de sobra, Q5_K_M/Q6_K; solo cuando tengas que meter un modelo grande, considera IQ2/IQ3.
P. ¿Qué significa Q4_K_M?
R. Tres partes. Q4 = ~4 bits (número más alto = más calidad, archivo más grande), K = K-quant (cuantización inteligente sobre superbloques; sin sufijo o _0/_1 son heredados) y M = tamaño mediano (S/M/L es cuánto se mejoran a más bits algunos tensores importantes). Los bits efectivos quedan un pelín por encima de la etiqueta (Q4_K ≈ 4,5 bpw).
P. ¿En qué se diferencian GGUF y GPTQ/AWQ?
R. En el motor de ejecución (hardware) que admiten. GGUF es el único formato "todoterreno local" que funciona en CPU, Mac y GPU parcial, para llama.cpp/Ollama. GPTQ y AWQ son de GPU en primer lugar y encajan con alto rendimiento en vLLM/TGI. También difieren en el método (GPTQ minimiza el error capa por capa; AWQ protege los pesos relevantes mediante las activaciones), pero ninguno es mejor de forma universal. Simplemente elige el que admita tu motor.
P. ¿En qué se diferencia IQ (I-quant) de un Q4 normal?
R. Puede bajar aún más de tamaño con la misma profundidad de bits (un método más reciente, basado en libro de códigos). A cambio, la inferencia es algo más pesada y en la práctica requiere un imatrix para mantener la calidad. Su uso es un as en la manga para "tengo que meter un modelo grande en la VRAM". Si cabe con normalidad, un K-quant como Q4_K_M es más fácil de manejar.
P. ¿Q8_0 o FP16 no son de más calidad? ¿Por qué "no recomendados"?
R. En efecto son casi sin pérdidas, pero consumen mucha más memoria y van más lentos a cambio de una ganancia de calidad mínima frente a Q5/Q6. Ni siquiera la comunidad de llama.cpp los recomienda para uso normal. En la práctica, en torno a 4,5–5 bpw (Q4_K–Q5_K) es la banda "sabrosa", y a partir de ahí subes o bajas según haga falta (los números son aproximados y varían según el modelo/compilación).