
Cuantizacion para movil: Q4, Q5 y Q8 en dispositivos reales
Una guia practica de niveles de cuantizacion GGUF para despliegue movil. Como Q4, Q5 y Q8 afectan el tamano del modelo, velocidad, calidad y uso de memoria en iPhones y dispositivos Android.
La cuantizacion es lo que hace que los LLMs quepan en telefonos. Un modelo de 3B parametros a precision completa (FP16) ocupa 6GB. Cuantizado a Q4, ocupa 1.7GB. El modelo es aproximadamente el mismo, solo almacenado mas eficientemente.
Pero "aproximadamente el mismo" esconde matices importantes. Diferentes niveles de cuantizacion intercambian tamano y velocidad por calidad. Elegir el nivel correcto para tu app movil requiere entender estas compensaciones en hardware real.
Que hace la cuantizacion
Los pesos del LLM se almacenan como numeros. La precision completa usa 16 bits por peso (FP16). La cuantizacion reduce los bits por peso, encogiendo el modelo:
| Formato | Bits por peso | Tamano modelo 3B | Calidad relativa |
|---|---|---|---|
| FP16 | 16 | ~6GB | 100% (linea base) |
| Q8_0 | 8 | ~3.2GB | ~99.5% |
| Q6_K | 6 | ~2.5GB | ~99% |
| Q5_K_M | 5 | ~2.1GB | ~98.5% |
| Q4_K_M | 4 | ~1.7GB | ~97.5% |
| Q4_0 | 4 | ~1.6GB | ~96% |
| Q3_K_M | 3 | ~1.4GB | ~93% |
| Q2_K | 2 | ~1.1GB | ~85% |
El sufijo "_K_M" indica k-quant con calidad media, un metodo de cuantizacion en llama.cpp que aplica diferentes anchos de bits a diferentes capas segun su importancia. Esto preserva la calidad mejor que la cuantizacion uniforme.
El punto optimo: Q4_K_M
Para despliegue movil, Q4_K_M es la eleccion estandar. Aqui esta por que:
Tamano: Aproximadamente 4x mas pequeno que FP16. Un modelo 3B cabe en 1.7GB, bien dentro del presupuesto de almacenamiento para una app movil.
Calidad: Al ~97.5% de la calidad de FP16, la degradacion es apenas medible en la mayoria de tareas. Para tareas especificas de dominio donde el modelo esta fine-tuned, los datos de fine-tuning compensan cualquier perdida por cuantizacion.
Velocidad: Pesos mas pequenos significan menos ancho de banda de memoria usado durante la inferencia. Los modelos Q4 frecuentemente se ejecutan mas rapido que versiones de mayor precision porque el cuello de botella de memoria se reduce.
Compatibilidad: Cabe en dispositivos de 4GB+ RAM (1B) o 6GB+ RAM (3B). Cubre la gran mayoria de smartphones activos.
Niveles de cuantizacion comparados en dispositivos reales
Modelo 3B, iPhone 15 Pro (A17 Pro, 8GB RAM)
| Cuantizacion | Tamano | Tokens/seg | Uso de memoria | Calidad (perplejidad) |
|---|---|---|---|---|
| Q8_0 | 3.2GB | 14-18 | 4.0GB | 8.12 |
| Q6_K | 2.5GB | 16-20 | 3.2GB | 8.18 |
| Q5_K_M | 2.1GB | 17-22 | 2.7GB | 8.25 |
| Q4_K_M | 1.7GB | 18-25 | 2.2GB | 8.38 |
| Q4_0 | 1.6GB | 19-26 | 2.1GB | 8.52 |
| Q3_K_M | 1.4GB | 20-27 | 1.9GB | 9.05 |
| Q2_K | 1.1GB | 22-29 | 1.5GB | 11.4 |
Menor perplejidad es mejor. De Q4_K_M a Q8_0 abarca un rango de calidad estrecho (8.12-8.38). Por debajo de Q4, la calidad cae notablemente. Por debajo de Q3, se degrada significativamente.
Modelo 3B, Galaxy S24 (Snapdragon 8 Gen 3, 8GB RAM)
| Cuantizacion | Tamano | Tokens/seg (Vulkan) | Uso de memoria |
|---|---|---|---|
| Q8_0 | 3.2GB | 16-20 | 4.0GB |
| Q5_K_M | 2.1GB | 20-25 | 2.7GB |
| Q4_K_M | 1.7GB | 22-28 | 2.2GB |
| Q3_K_M | 1.4GB | 24-30 | 1.9GB |
Modelo 1B, iPhone 14 (A15, 6GB RAM)
| Cuantizacion | Tamano | Tokens/seg | Uso de memoria |
|---|---|---|---|
| Q8_0 | 1.1GB | 20-26 | 1.4GB |
| Q5_K_M | 750MB | 23-30 | 1.0GB |
| Q4_K_M | 600MB | 25-32 | 800MB |
| Q3_K_M | 500MB | 27-34 | 700MB |
Cuando usar cada nivel
Q4_K_M (Eleccion por defecto)
Usa este a menos que tengas una razon especifica para no hacerlo. Mejor balance general de tamano, velocidad y calidad. El estandar para despliegue movil.
- Ideal para: Todas las apps moviles enviando modelos GGUF
- Requisito de dispositivo: 4GB+ (1B) o 6GB+ (3B)
Q5_K_M (Prioridad en calidad)
Usa cuando la calidad es critica y tus dispositivos objetivo tienen espacio para el archivo mas grande. La mejora de calidad sobre Q4_K_M es pequena pero medible en tareas que requieren precision de palabras.
- Ideal para: Apps medicas, legales o financieras donde la precision a nivel de palabra importa
- Requisito de dispositivo: 6GB+ (1B) o 8GB+ (3B)
- Aumento de tamano: ~25% sobre Q4_K_M
Q8_0 (Maxima calidad)
Usa solo en dispositivos flagship con amplia RAM. La calidad es casi identica a FP16. La velocidad es menor y el uso de memoria es mayor.
- Ideal para: Pruebas y benchmarking, no despliegue tipico de produccion
- Requisito de dispositivo: 8GB+ (1B) o 12GB+ (3B)
- Aumento de tamano: ~90% sobre Q4_K_M
Q3_K_M (Prioridad en tamano)
Usa cuando necesites ajustar un modelo en dispositivos limitados. La calidad cae notablemente, pero para tareas simples (clasificacion, si/no, respuestas cortas), puede ser aceptable.
- Ideal para: Dispositivos economicos, o ajustar un modelo 3B donde normalmente solo cabria un 1B Q4
- Riesgo de calidad: Degradacion notable en tareas matizadas
- Ahorro de tamano: ~18% sobre Q4_K_M
Q2_K (No recomendado)
Degradacion severa de calidad. El modelo frecuentemente genera salida incoherente o incorrecta. No apto para produccion.
Fine-tuning y cuantizacion
El fine-tuning ocurre a precision completa (FP16 o BF16). La cuantizacion se aplica despues del entrenamiento como paso de exportacion. El flujo de trabajo:
- Fine-tunea el modelo con LoRA en tus datos de entrenamiento (precision completa)
- Fusiona el adaptador LoRA en el modelo base
- Cuantiza a GGUF en tu nivel objetivo (Q4_K_M para la mayoria de casos)
- Prueba el modelo cuantizado en tu conjunto de evaluacion
Plataformas como Ertas manejan este pipeline de principio a fin. Subes datos de entrenamiento, seleccionas tu modelo base, entrenas y exportas directamente a GGUF en tu nivel de cuantizacion elegido.
La cuantizacion perjudica mas a los modelos fine-tuned?
Ligeramente. Los modelos fine-tuned tienen mas informacion empaquetada en sus pesos (conocimiento especifico de dominio). La cuantizacion agresiva (Q3 e inferior) puede perder algo de este conocimiento especifico.
En la practica, Q4_K_M preserva bien la precision del fine-tuning. La diferencia de calidad entre Q4_K_M y FP16 en benchmarks especificos de dominio es tipicamente menor a 2 puntos porcentuales. Q3_K_M puede mostrar 3-5 puntos de degradacion.
Recomendaciones practicas
- Por defecto usa Q4_K_M. Es el estandar por una razon. Prueba con este primero.
- Fine-tunea antes de optimizar la cuantizacion. Un modelo Q4 fine-tuned supera a un modelo Q8 sin fine-tuning en tareas de dominio.
- Prueba en tu tarea, no en benchmarks generales. La perplejidad es un proxy. Lo que importa es la precision de tu modelo en tu conjunto de evaluacion especifico en tu nivel de cuantizacion elegido.
- Ofrece un nivel de cuantizacion por tamano de modelo. No hagas que los usuarios elijan entre Q4 y Q5. Envia Q4_K_M para amplia compatibilidad. Si soportas tanto 1B como 3B, eso es suficiente opcionalidad.
- Mide el rendimiento del mundo real. Ejecuta tu suite de evaluacion en el modelo cuantizado. Si la precision esta dentro del 2% de FP16, envialo.
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Keep reading

Can LLMs Actually Run on iPhones? Benchmarks and Real-World Performance
Real benchmark data for running LLMs on iPhones via llama.cpp. Token generation speeds, memory usage, and thermal behavior across iPhone models from the iPhone 12 to iPhone 16 Pro.

On-Device AI Model Size Guide: 1B vs 3B vs 7B for Mobile
How to choose the right model size for your mobile app. Capability breakdown, device requirements, quality benchmarks, and the fine-tuning factor that changes the math.

Llama 3.2 for Mobile Apps: Fine-Tuning and On-Device Deployment
A complete guide to using Meta's Llama 3.2 1B and 3B models in mobile apps. Fine-tuning with LoRA, exporting to GGUF, and deploying on iOS and Android via llama.cpp.