Piensa en una regla de medir. Una regla fina, de laboratorio, marca cada milímetro: puede decirte que un tornillo mide 12,473 mm. Otra regla, la del bolsillo, solo tiene marcas cada medio centímetro: con ella el mismo tornillo mide "como 12 y medio". Las dos miden el tornillo. Una es pesada y precisa; la otra cabe en la mano. Cuantizar un modelo de IA es cambiar de regla: dejar de guardar cada número con altísima precisión y empezar a redondearlo a marcas más gruesas.
Y aquí aparece la pregunta que da vértigo: un modelo grande son miles de millones de esos números. Si a cada uno le quitas precisión, ¿el modelo sigue pensando igual, o lo estás rompiendo poquito a poco sin notarlo?
01 · el peso del númeroQué se está apretando, exactamente
Un modelo de lenguaje es, por dentro, una montaña de números llamados parámetros o pesos. Cada uno describe qué tan fuerte tira una conexión de otra. No hay palabras guardadas ahí: hay coordenadas, millones de ellas, colocadas en un espacio inmenso. Cuando el modelo responde, lo que hace es multiplicar y sumar esas coordenadas una y otra vez.
Por defecto, cada uno de esos números se guarda en 16 o 32 bits: formatos de punto flotante que reservan mucho espacio para decimales finísimos. Es la regla de laboratorio. Un modelo de 7.000 millones de parámetros en 16 bits ocupa unos 14 gigabytes solo para existir en memoria. Tu laptop no tiene esa RAM libre. Ese es el muro.
No estamos apretando texto ni conocimiento. Estamos apretando la regla con la que se mide cada coordenada.
Cuantizar es reescribir cada número con menos bits: pasar de 16 a 8, a 4, a veces menos. Ocho bits dan 256 marcas posibles; cuatro bits, solo 16. Cada número se empuja a la marca más cercana. El modelo pesa la mitad, un cuarto, un octavo. Y ahí empieza el arte: cuánto puedes engrosar las marcas antes de que el tornillo deje de medirse.
02 · el error que se acumulaPor qué a veces se rompe y a veces no
Redondear un número parece inofensivo. El problema es que un modelo no usa un número: encadena millones. Cada multiplicación arrastra el pequeño error de redondeo del paso anterior, y los errores pueden sumarse o cancelarse a lo largo de decenas de capas. La pregunta no es "¿cuánto me equivoco en un número?" sino "¿a dónde llega el error después de atravesar todo el modelo?".
La geometría ayuda a verlo. Los parámetros no están repartidos parejo: la enorme mayoría son valores pequeños, apiñados cerca del cero, y unos pocos son valores atípicos, muy grandes, que viven lejos. Si estiras una sola regla uniforme para cubrir desde el más chico hasta el más gigante, las marcas quedan tan separadas que los millones de valores del centro se aplastan todos contra las mismas pocas marcas. Ahí es donde el modelo se rompe.
Ese fue el hallazgo clave de Tim Dettmers y su equipo en 2022: en los modelos grandes, unos pocos valores atípicos concentran casi todo el daño. Su método, LLM.int8(), hace algo elegante: guarda la inmensa mayoría de los pesos en 8 bits y aparta los poquísimos atípicos para tratarlos con precisión completa. Así logra correr modelos enormes en 8 bits sin perder calidad medible [1]. La lección geométrica: no todos los números merecen la misma regla.
La cuantización no elimina parámetros ni recorta el modelo: conserva los mismos millones de coordenadas, solo que descritas con menos decimales. Por eso un modelo cuantizado sigue "sabiendo" lo mismo a grandes rasgos. Recortar de verdad (quitar conexiones enteras) es otra técnica, la poda, y responde a otra pregunta. Aquí solo estamos cambiando la regla, no el mapa.
03 · dónde se corta la gangaCuánto se puede apretar en la práctica
La compresión no sale gratis, pero durante un buen tramo casi lo parece. Bajar de 16 a 8 bits suele ser prácticamente indoloro: el modelo pesa la mitad y responde casi idéntico. Bajar a 4 bits ya se nota poco pero se nota: el modelo pesa un cuarto y, en la mayoría de tareas cotidianas, la diferencia es difícil de percibir. Por debajo de 4 bits la cosa se vuelve terreno de expertos: el error de redondeo empieza a asomar en respuestas más largas o más difíciles.
La primera mitad del apriete casi no cuesta. El precio real vive en el último tramo.
Por eso 4 bits se volvió el punto dulce para correr modelos en casa. Métodos como GPTQ y NF4 (este último parte del trabajo de QLoRA) logran esa compresión ajustando con cuidado dónde poner las marcas de la regla para cada bloque de pesos, en vez de usar una sola regla para todo [2]. La tabla resume el canje.
| Precisión | Marcas por número | Tamaño aprox. en memoria | Calidad típica |
|---|---|---|---|
| 16 bits (original) | ~65.000 | ~14 GB | referencia |
| 8 bits | 256 | ~7 GB | casi idéntica |
| 4 bits | 16 | ~3,5 GB | diferencia leve |
| 3 bits o menos | ≤8 | ~2,6 GB o menos | degradación visible |
Lo que hace que esto importe fuera del laboratorio es directo: la cuantización es lo que permite que un modelo que nació en un centro de datos con GPUs gigantes corra en tu laptop, en un teléfono o en un servidor modesto. Es la diferencia entre "solo por la nube" y "en tu propia máquina". Un modelo de 4 bits que entra en la memoria de video de una GPU de consumo puede responderte sin enviar tu texto a ningún lado.
Hay un matiz honesto que conviene decir sin rodeos: apretar demasiado no falla de forma escandalosa, falla de forma sutil. Un modelo sobrecuantizado no empieza a escribir en símbolos raros; sigue sonando fluido, pero se vuelve un poco menos preciso en lo difícil, se equivoca más seguido en cadenas largas de razonamiento, olvida un detalle aquí y allá. Es un desgaste silencioso, y por eso la elección de cuántos bits usar merece medirse en tu tarea concreta, no aceptarse a ciegas.
Al final, cuantizar es un ejercicio de geometría práctica: elegir dónde poner las marcas de la regla para que millones de coordenadas quepan en menos espacio sin desplazarse de su sitio. Cuando se hace bien, el modelo se encoge y sigue midiendo el mismo tornillo. Cuando se aprieta de más, la regla se vuelve tan gruesa que ya no distingue 12,4 de 12,6. El truco, como casi todo en estos sistemas, está en saber exactamente hasta dónde.
Fuentes
- Dettmers, T., Lewis, M., Belkada, Y. & Zettlemoyer, L. (2022). LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale. Advances in Neural Information Processing Systems (NeurIPS) 35. Preprint: arXiv:2208.07339.
- Dettmers, T., Pagnoni, A., Holtzman, A. & Zettlemoyer, L. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. Advances in Neural Information Processing Systems (NeurIPS) 36. Preprint: arXiv:2305.14314. (Introduce el tipo de dato NF4 de 4 bits.)
- Frantar, E., Ashkboos, S., Hoefler, T. & Alistarh, D. (2023). GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers. International Conference on Learning Representations (ICLR). Preprint: arXiv:2210.17323.