Cuantización de modelos de IA
Qué cubre este artículo sobre cuantización
- Qué significa cuantización.
- Cómo difieren formatos como Q4, Q8 y F16.
- Cómo usar cuantización en Ollama y otras herramientas.
- Qué compromisos surgen entre velocidad y calidad.
Introducción: cuantización de modelos de IA
Los modelos de lenguaje son enormes. Un modelo sin cuantizar con miles de millones de parámetros puede ocupar fácilmente varios gigabytes. No todos tienen suficiente RAM, VRAM o almacenamiento rápido para cargar modelos en formato completo. La cuantización hace que los modelos sean más pequeños al guardar sus pesos usando menos bits. Esto permite que modelos más grandes se ejecuten en hardware menos potente.
La cuantización es uno de los factores clave para la IA local. Quien la entienda puede elegir el formato adecuado para su hardware y necesidades.
¿Por qué necesito cuantización?
Sin cuantización, muchos modelos simplemente no se pueden ejecutar localmente. Incluso si hubiera suficiente memoria, la velocidad suele ser insuficiente. La cuantización reduce el uso de memoria e incrementa la velocidad de inferencia. Esto es especialmente importante para servidores caseros, laptops y mini-PCs.
Cuantización explicada brevemente
Un modelo consta de muchos números, llamados pesos. Normalmente se almacenan con 32 o 16 bits por valor. La cuantización reduce la precisión de estos números, por ejemplo a 8 o 4 bits. Esto hace el modelo más pequeño pero ligeramente menos preciso. Las designaciones comunes son:
- Q4: 4 bits por peso, muy pequeño, rápido, pérdida de calidad notable.
- Q5 y Q6: Compromisos entre tamaño y calidad.
- Q8: 8 bits, significativamente más grande, pero frecuentemente apenas perceptiblemente peor que F16.
- F16 o FP16: 16 bits, alta calidad, requiere el doble de memoria.
- GGUF: Formato contenedor para modelos cuantizados, popular en llama.cpp y Ollama.
¿Para quién es la cuantización?
- Para usuarios que quieren ejecutar modelos grandes en hardware limitado.
- Para principiantes que desean comparar diferentes versiones de modelos.
- Para desarrolladores que necesitan mantener el equilibrio entre rendimiento y calidad.
- Para cualquiera que quiera entender por qué un modelo tiene tantas variantes.
Términos importantes sobre cuantización
- Bits por peso: Cuántos bits se utilizan para almacenar un único número.
- GGUF: Formato de archivo para modelos de lenguaje cuantizados.
- llama.cpp: Entorno de ejecución que ejecuta eficientemente modelos cuantizados.
- K_V Cache: Buffer intermedio para generación de texto más rápida.
- ExQuant: Técnica donde los pesos más importantes reciben más bits.
- Perplexity: Medida de la calidad de un modelo cuantizado.
Ejemplos prácticos de cuantización
Modelo pequeño en un laptop
Un modelo de 7B en formato Q4 cabe en un laptop con 8 GB de RAM. Las respuestas son algo más cortas y menos matizadas, pero funcionales.
Servidor con más memoria
En un servidor con 32 GB de RAM, un modelo de 13B en formato Q8 funciona bien. La calidad es alta y la pérdida de velocidad es mínima.
Muchos usuarios simultáneos
Un chatbot atiende a varios usuarios al mismo tiempo. Q4 permite mantener más instancias en memoria y procesar solicitudes más rápidamente.
Obstáculos típicos en la cuantización
- Q4 para todo: Una cuantización demasiado agresiva produce malos resultados en preguntas complejas.
- Enfocarse solo en tamaño de archivo: RAM, VRAM y caché también deben ser suficientes.
- Formato incorrecto: No todas las herramientas comprenden todos los formatos. Ollama usa formatos propios y a veces espera etiquetas específicas.
- Subestimar la calidad: Para textos que se publicarán, es mejor usar al menos Q6 o Q8.
Enlaces adicionales e información sobre cuantización
FAQ: cuantización de modelos de IA
¿Pierdo mucha calidad con Q4? En textos simples, Q4 suele ser suficiente. En preguntas complejas, matizadas o técnicas de programación, notarás diferencias respecto a Q8 o F16.
¿Debo siempre elegir el modelo más pequeño? No. Elige el modelo más pequeño que aún produce resultados aceptables para tu tarea. De lo contrario, desperdiciarás tiempo con respuestas malas.
¿Cómo cuantizo un modelo yo mismo? Con herramientas como llama.cpp, AutoGPTQ o AWQ. Para empezar, es suficiente descargar variantes cuantizadas preeelaboradas.
¿Qué es mejor: Q4_K_M o Q4_0? Q4_K_M generalmente tiene mejor calidad que Q4_0, ya que los pesos más importantes se almacenan con más bits.
¿Puedo entrenar modelos cuantizados? El entrenamiento normalmente ocurre con precisión más alta. El ajuste fino o entrenamiento en formato muy cuantizado es difícil y rara vez produce buenos resultados.
Fuentes y lecturas adicionales
- llama.cpp: https://github.com/ggerganov/llama.cpp
- Ollama: https://ollama.com/
- TheBloke Hugging Face: https://huggingface.co/TheBloke
Resumen: cuantización de modelos de IA
La cuantización reduce modelos de IA al almacenar pesos con menos bits. Q4 es pequeño y rápido, Q8 suele ofrecer significativamente mejor calidad. Quien conoce sus propias necesidades puede seleccionar variantes de modelos adecuadas para su hardware sin tener que ejecutar cada tarea en formato de precisión completa.


