ES

Idioma

Nuestras ediciones

Escritas para cada público, no traducidas palabra por palabra.

Qué es la cuantización de un LLM y qué significan Q4_K_M y Q8_0

ExplicaciónPor Lucas Matías García TorresActualizado el (publicado el )Datos comprobados el 6 min de lectura

Revisado por Lucas Matías García Torres el . Cómo trabajamos.

Read in English

Retícula 3D de finas líneas de acero y nodos con algunos caminos iluminados en naranja, como una red neuronal

Respuesta corta

La cuantización guarda los pesos de un modelo con menos bits. Con Llama 3.1 8B, la tabla de llama.cpp da 4,58 GiB en Q4_K_M frente a unos 14,96 GiB con 16 bits, un 69 % menos. En las mediciones originales de las k-quants con LLaMA 7B, la perplejidad subió un 0,24 % en Q5_K_M, un 0,91 % en Q4_K_M y un 14,7 % en Q2_K. El nombre Q4_K_M se lee como 4 bits, familia k-quants y mezcla media de precisiones por tensor. Empieza con Q4_K_M, sube si te sobra memoria y baja de Q4 solo si el modelo no cabe.

Los precios y límites cambian a menudo: compruébalos en la web del proveedor antes de pagar. Cómo nos financiamos.

¿Qué es la cuantización? Es guardar los pesos de un modelo con menos bits, de modo que el modelo ocupe mucha menos memoria y espacio en disco a cambio de perder algo de precisión. Por eso un modelo de 8.000 millones de parámetros que necesita unos 15 GiB con 16 bits cabe en unos 4,6 GiB como Q4_K_M, y por eso puedes ejecutarlo en una tarjeta gráfica de 8 GB. La documentación de llama.cpp dice que la cuantización puede introducir cierta pérdida de precisión, que se suele medir con la perplejidad o la divergencia KL. Esta guía explica qué significan los nombres Q4_K_M, Q8_0 y MXFP4, cuánta memoria ahorra y cuánta calidad cuesta cada nivel y cómo elegir, con la documentación de llama.cpp y de Hugging Face y las mediciones originales del autor de las k-quants, todo comprobado el 6 de octubre de 2026.

¿Qué es la cuantización?

Un modelo de lenguaje es sobre todo un conjunto enorme de números, sus pesos. Los modelos entrenados suelen guardarlos como números en coma flotante de 16 o de 32 bits. La cuantización guarda cada peso con menos bits, por ejemplo 4 u 8, más una pequeña cantidad de datos adicionales que permiten reconstruir valores aproximados. La documentación de cuantización de llama.cpp la describe como reducir la precisión de los pesos del modelo, por ejemplo de números de 32 bits en coma flotante a enteros de 4 bits, lo que reduce el tamaño del modelo y puede acelerar la inferencia.

El ahorro es grande. Con Llama 3.1 8B, la tabla de llama.cpp da estos tamaños, con el de 16 bits calculado por nosotros:

Tabla: tamaño de Llama 3.1 8B según la cuantización (mediciones de llama.cpp, 6 de octubre de 2026)

Formato Bits por peso Tamaño Más pequeño que el de 16 bits en
F16 (sin cuantizar, cálculo nuestro) 16 14,96 GiB nada
Q8_0 8,5008 7,95 GiB 47 %
Q6_K 6,5633 6,14 GiB 59 %
Q5_K_M 5,7036 5,33 GiB 64 %
Q4_K_M 4,8944 4,58 GiB 69 %
Q3_K_M 3,9960 3,74 GiB 75 %

Los bits por peso son más que los 4, 5 u 8 nominales porque cada bloque de pesos guarda además factores de escala. Para ver qué significa un tamaño en tu tarjeta gráfica, usa nuestra calculadora de VRAM o la guía de la mejor GPU para modelos en local.

¿Qué significan Q4_K_M, Q8_0 y los demás nombres?

Los nombres vienen de llama.cpp y del formato de archivo GGUF, que Hugging Face describe como un formato binario optimizado para cargar y guardar modelos con rapidez. Léelos de izquierda a derecha:

  • El número es la anchura de bits nominal: Q4 son 4 bits, Q8 son 8 bits.
  • K marca las «k-quants», una familia añadida a llama.cpp en junio de 2023, que guarda los pesos en superbloques formados por bloques más pequeños con sus propias escalas. La tabla de Hugging Face da Q4_K a 4,5 bits por peso y Q6_K a 6,5625.
  • La última letra (S, M, L) es una «mezcla de cuantización», como explica la propuesta de cambios de las k-quants: decide qué tensores reciben más bits. Q4_K_S usa Q4_K en todos los tensores, mientras que Q4_K_M usa el Q6_K, de mayor precisión, en la mitad de los tensores attention.wv y feed_forward.w2 y Q4_K en el resto; Q3_K_L usa Q5_K en esos tensores y Q3_K en los demás.
  • Q8_0 y los demás tipos _0 y _1 son formatos más antiguos y sencillos. Hugging Face los lista como métodos heredados que hoy no se usan mucho, aunque llama.cpp sigue ofreciendo Q8_0 y es la opción de 8 bits de nuestras tablas de memoria.
  • Los tipos IQ (IQ4_XS, IQ3_S y otros) usan una matriz de importancia para conservar los pesos más importantes con anchuras de bits bajas.
  • MXFP4 es un formato de coma flotante de bloques con microescala de 4 bits. OpenAI dice que sus modelos gpt-oss se postentrenaron con cuantización MXFP4 de los pesos de la mezcla de expertos, y así gpt-oss-20b funciona con 16 GB de memoria.

¿Cuánta calidad se pierde?

La prueba más directa es la medición original que se publicó con las k-quants en 2023, con el modelo LLaMA 7B: perplejidad (cuanto más baja, mejor) en el conjunto wikitext, frente al 5,9066 del modelo de 16 bits.

Tabla: calidad y tamaño de las k-quants en LLaMA 7B (mediciones originales, 2023)

Formato Perplejidad Cambio frente a 16 bits Tamaño del archivo
F16 5,9066 ninguno 13,0 GB
Q6_K 5,9110 +0,07 % 5,15 GB
Q5_K_M 5,9208 +0,24 % 4,45 GB
Q5_K_S 5,9419 +0,60 % 4,33 GB
Q4_K_M 5,9601 +0,91 % 3,80 GB
Q4_K_S 6,0215 +1,95 % 3,56 GB
Q3_K_M 6,1503 +4,13 % 3,06 GB
Q3_K_S 6,4571 +9,32 % 2,75 GB
Q2_K 6,7764 +14,73 % 2,67 GB

Lo que importa es la forma: de 16 bits a Q5_K_M la pérdida en esta prueba es de un cuarto de punto porcentual, alrededor de Q4_K_M es inferior al 1 % y por debajo de 4 bits crece rápido. El resumen del propio autor es que la perplejidad es una función bastante suave del tamaño del modelo, así que puedes elegir el mejor modelo que te permita tu memoria. Dos salvedades: estas cifras son de un modelo de 2023, así que muestran la tendencia y no predicen un modelo actual, y la perplejidad no es lo mismo que lo buenas que te parezcan las respuestas en tu tarea. llama.cpp dice que la pérdida se suele medir con la perplejidad y la divergencia KL. Si un modelo va justo, prueba el formato siguiente antes de comprar más memoria.

¿Cómo elegir una cuantización?

Una regla práctica, que es lectura nuestra de los datos de arriba:

  1. Empieza con Q4_K_M. En la prueba original mantiene la pérdida por debajo del 1 % con cerca del 29 % del tamaño de 16 bits, y es el principal formato de 4 bits de nuestras tablas de memoria.
  2. Sube a Q5_K_M, Q6_K o Q8_0 si te sobra memoria. La pérdida se reduce, pero el archivo crece, y tu ventana de contexto también necesita memoria.
  3. Baja a Q3 o menos solo si el modelo no cabe de otra forma. Un modelo mayor en Q3 suele ser mejor que uno menor en Q8, pero pruébalo con tus tareas.
  4. Comprueba que el modelo cabe. Con Ollama, ejecuta ollama ps y busca «100% GPU», como explica nuestra guía rápida de comandos de Ollama.

Ollama no cuantiza los modelos GGUF al importarlos: su documentación dice que hay que prepararlos y cuantizarlos antes con una herramienta GGUF como llama-quantize de llama.cpp. Las páginas de la biblioteca de Ollama muestran el tamaño de descarga de cada etiqueta de modelo, que es la memoria que necesitarán los pesos.

¿También se puede cuantizar la caché?

Sí. La caché de claves y valores que guarda la conversación se puede almacenar con menos bits. OLLAMA_KV_CACHE_TYPE de Ollama admite f16 (por defecto), q8_0, que usa más o menos la mitad de memoria, y q4_0, que usa más o menos una cuarta parte; requiere Flash Attention. No cambia los pesos, solo la memoria que usan los contextos largos.

Cuantización y API en la nube

La cuantización es sobre todo un tema de los modelos que ejecutas tú. Cuando usas una API en la nube, el proveedor decide cómo se sirve el modelo y tú pagas por token, como en precios de las API de modelos comparados. Un modelo cuantizado en local no tiene precio por token, solo el coste de la máquina; mira cómo instalar Ollama para los pasos.

Qué hemos comprobado

  • llama.cpp: la cuantización reduce la precisión de los pesos del modelo (por ejemplo de números de 32 bits en coma flotante a enteros de 4 bits), lo que reduce el tamaño del modelo y puede acelerar la inferencia; puede introducir cierta pérdida de precisión, que se suele medir en perplejidad y/o divergencia KL; con Llama 3.1 8B, los bits por peso y los tamaños son Q3_K_M 3,9960 y 3,74 GiB, Q4_K_S 4,6672 y 4,36 GiB, Q4_K_M 4,8944 y 4,58 GiB, Q5_K_M 5,7036 y 5,33 GiB, Q6_K 6,5633 y 6,14 GiB, Q8_0 8,5008 y 7,95 GiB. (ggml-org / llama.cpp, )
  • Hugging Face: GGUF es un formato binario optimizado para cargar y guardar modelos con rapidez, desarrollado por el autor de llama.cpp; su tabla de cuantización lista Q6_K a 6,5625, Q5_K a 5,5, Q4_K a 4,5, Q3_K a 3,4375 y Q2_K a 2,625 bits por peso, los tipos IQ con matriz de importancia, MXFP4 como coma flotante de bloques con microescala de 4 bits, y Q8_0, Q5_0, Q4_0 y similares como métodos heredados que hoy no se usan mucho. (Hugging Face, )
  • La propuesta de cambios de las k-quants (fusionada el 5 de junio de 2023) añade métodos de cuantización de 2 a 6 bits y mezclas de cuantización: Q4_K_S usa Q4_K en todos los tensores, Q4_K_M usa Q6_K en la mitad de los tensores attention.wv y feed_forward.w2 y Q4_K en los demás, Q3_K_L usa Q5_K en attention.wv, attention.wo y feed_forward.w2 y Q3_K en los demás; la perplejidad es una función bastante suave del tamaño del modelo cuantizado; con LLaMA 7B, la perplejidad (wikitext) y el tamaño del archivo son F16 5,9066 y 13,0G, Q6_K 5,9110 y 5,15G, Q5_K_M 5,9208 y 4,45G, Q5_K_S 5,9419 y 4,33G, Q4_K_M 5,9601 y 3,80G, Q4_K_S 6,0215 y 3,56G, Q3_K_M 6,1503 y 3,06G, Q3_K_S 6,4571 y 2,75G, Q2_K 6,7764 y 2,67G. (ggml-org / llama.cpp, )
  • Los modelos gpt-oss de OpenAI se postentrenaron con cuantización MXFP4 de los pesos de la mezcla de expertos, de modo que gpt-oss-20b funciona con 16 GB de memoria. (OpenAI (Hugging Face), )
  • Ollama no cuantiza los modelos GGUF al importarlos; hay que prepararlos y cuantizarlos antes con una herramienta GGUF como llama-quantize de llama.cpp. (Ollama, )
  • OLLAMA_KV_CACHE_TYPE admite f16 (por defecto), q8_0 (más o menos la mitad de memoria) y q4_0 (más o menos una cuarta parte) y requiere Flash Attention; ollama ps muestra 100% GPU cuando un modelo cabe. (Ollama, )

Qué puede cambiar

  • Aparecen formatos de cuantización nuevos a menudo, y las cifras de perplejidad son de un modelo de 2023: muestran la tendencia, no la pérdida exacta en un modelo actual.
  • El tamaño de 16 bits de Llama 3.1 8B es cálculo nuestro a partir de su número de parámetros; los demás tamaños son de llama.cpp.

Preguntas frecuentes

¿Qué es la cuantización de un LLM?

Guardar los pesos de un modelo con menos bits (por ejemplo 4 u 8 en lugar de 16) para que el modelo necesite mucha menos memoria y espacio en disco, a cambio de perder algo de precisión. La documentación de llama.cpp dice que puede introducir cierta pérdida de precisión, que se suele medir con la perplejidad o la divergencia KL.

¿Qué significa Q4_K_M?

Q4 significa 4 bits nominales por peso, K la familia de las k-quants y M una mezcla de cuantización media: según la propuesta de cambios de las k-quants, Q4_K_M usa el Q6_K, de mayor precisión, en la mitad de los tensores attention.wv y feed_forward.w2 y Q4_K en el resto. En la tabla de llama.cpp, Q4_K_M son 4,8944 bits por peso.

¿Es mejor Q4_K_M o Q8_0?

Q8_0 conserva más precisión y ocupa casi el doble de memoria: con Llama 3.1 8B, 7,95 GiB frente a 4,58 GiB. En las mediciones originales de las k-quants, Q4_K_M subió la perplejidad menos de un 1 %. Usa Q8_0 si tienes la memoria y quieres ir sobre seguro, y Q4_K_M si necesitas que el modelo quepa.

¿Cuánta calidad se pierde al cuantizar?

Depende del modelo y del formato. En las mediciones originales de 2023 con LLaMA 7B, la perplejidad subió un 0,07 % en Q6_K, un 0,24 % en Q5_K_M, un 0,91 % en Q4_K_M, un 4,13 % en Q3_K_M y un 14,73 % en Q2_K. La perplejidad es un indicador: prueba con tus propias tareas.

¿Qué es MXFP4?

Un formato de coma flotante de bloques con microescala de 4 bits. OpenAI dice que sus modelos gpt-oss se postentrenaron con cuantización MXFP4 de los pesos de la mezcla de expertos, y así gpt-oss-20b funciona con 16 GB de memoria.

¿Se puede cuantizar también la caché de contexto?

Sí. En Ollama, OLLAMA_KV_CACHE_TYPE admite f16 (por defecto), q8_0, que usa más o menos la mitad de memoria, y q4_0, que usa más o menos una cuarta parte. Requiere Flash Attention y no cambia los pesos.

Fuentes

  1. llama.cpp: quantize (bits per weight and sizes by quantization type), ggml-org / llama.cpp. Consultado el 6 de octubre de 2026.
  2. GGUF on the Hugging Face Hub: format description and quantization types, Hugging Face. Consultado el 6 de octubre de 2026.
  3. k-quants (llama.cpp pull request 1684): quantization types, mixes and perplexity measurements, merged June 2023, ggml-org / llama.cpp. Consultado el 6 de octubre de 2026.
  4. gpt-oss-20b model card and config.json, OpenAI (Hugging Face). Consultado el 6 de octubre de 2026.
  5. Importing a model into Ollama (GGUF and quantization), Ollama. Consultado el 6 de octubre de 2026.
  6. Ollama FAQ: context window, keep-alive, concurrency, Flash Attention, K/V cache quantization, multiple GPUs and GPU check, Ollama. Consultado el 10 de octubre de 2026.

¿Has visto un error o un dato desactualizado? Avísanos y lo corregimos.

Historial de cambios

  • : Redacción revisada; no cambia ninguna cifra, fecha ni fuente.
  • : Primera versión en español, adaptada de nuestra guía en inglés, a partir de la documentación de cuantización de llama.cpp, la de GGUF de Hugging Face y las mediciones originales de las k-quants.

Próxima revisión: .

Más guías de Modelos explicados.

Otros temas