Cuantización y decodificación especulativa
Para modelos autoalojados: cuantización int8/int4 para ahorrar memoria y decodificación especulativa para aumentar el rendimiento.
Cuantización y decodificación especulativa es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Optimizaciones de modelos autoalojados
Para modelos abiertos autoalojados, hay dos grandes mejoras de velocidad y coste:
- Cuantización: pesos más pequeños, menos RAM/VRAM e inferencia más rápida
- Decodificación especulativa: generar varios tokens por paso
Fundamentos de la cuantización
Normalmente, los modelos se almacenan como FP16 (16 bits por peso). La cuantización reduce el número de bits:
- FP16: línea base
- INT8: 2 veces más pequeño, con una pérdida de calidad prácticamente insignificante
- INT4 / Q4_K_M: 4 veces más pequeño, con una pequeña pérdida de calidad
- INT2 / 1.58-bit: más de 8 veces más pequeño, con una pérdida de calidad apreciable
GGUF y niveles de cuantización
GGUF es el formato que utiliza llama.cpp. Niveles habituales:
- Q4_K_M: el mejor equilibrio entre calidad y tamaño
- Q5_K_M: ligeramente más grande y ligeramente mejor
- Q8_0: calidad cercana a FP16 y compresión 2 veces mayor
Quantise With llama.cpp
./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M
# Or download pre-quantised from TheBloke / unsloth on HuggingFaceImpacto en el hardware
Un modelo 8B FP16 necesita aproximadamente 16 GB de VRAM. El mismo modelo en Q4 cabe en aproximadamente 5 GB de VRAM y funciona en una GPU mucho más barata.
Decodificación especulativa
El truco consiste en usar un modelo pequeño «draft» para proponer tokens y verificarlos después con el modelo grande «target» en una sola pasada hacia delante. A menudo se obtiene una aceleración de 2 a 3 veces.
from transformers import AutoModelForCausalLM
target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')
outputs = target.generate(
input_ids,
assistant_model=draft, # speculative decoding
max_new_tokens=200
)Por qué funciona
El modelo draft propone K tokens. El modelo target los procesa todos en PARALELO (en una sola pasada hacia delante). Cada token aceptado es «gratis». Si se rechaza alguno, se revierte el estado; normalmente se aceptan la mayoría.
Otras mejoras de velocidad de decodificación
- Decodificación lookahead: varios borradores por paso
- Medusa: varios cabezales de decodificación entrenados conjuntamente
- EAGLE: especulación rápida basada en árboles
Herramientas que implementan estas técnicas
- vLLM: ofrece tanto cuantización (AWQ, GPTQ, FP8) como decodificación especulativa
- llama.cpp: cuantización y especulación mediante --draft-model
- TensorRT-LLM: servidor de producción de NVIDIA
- SGLang: servidor rápido y optimizado para lotes, con batching continuo
Batching continuo
La función estrella de vLLM: procesa múltiples solicitudes de longitudes diferentes en la misma pasada hacia delante. Supone una enorme mejora del rendimiento para servidores de producción.
Elección del nivel de cuantización
Pruebe cada nivel candidato en SU evaluación. Q4_K_M es el punto de partida habitual; elija un nivel superior si la calidad cae por debajo del umbral.
Latencia por token frente a rendimiento
Distintas optimizaciones mejoran métricas diferentes:
- Latencia de una sola solicitud: decodificación especulativa
- Rendimiento para varios usuarios: batching continuo
- Coste de memoria: cuantización
Efecto de la cuantización
¿Cuál es el efecto principal de la cuantización int4?
Resumen
Cuantice a Q4 para reducir la memoria y aumentar la velocidad. Use decodificación especulativa para mejorar la latencia. Use batching continuo para aumentar el rendimiento. vLLM y llama.cpp implementan las tres técnicas.
Preguntas frecuentes
¿La lección «Cuantización y decodificación especulativa» es gratis?
Sí — el texto completo de «Cuantización y decodificación especulativa» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Cuantización y decodificación especulativa»?
Para modelos autoalojados: cuantización int8/int4 para ahorrar memoria y decodificación especulativa para aumentar el rendimiento. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Cuantización y decodificación especulativa»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Presupuestos de tokens por paso
- Enrutamiento de modelos (barato -> caro)
- Almacenamiento en caché de prompts y resultados (Anthropic, Vertex)
- Cuantización y decodificación especulativa