Phase 17 - Lesson 05
Decodificación Especulativa EAGLE-3 en Producción
La decodificación especulativa empareja un modelo de borrador (draft model) rápido con el modelo objetivo (target model). El modelo de borrador propone K tokens; el modelo objetivo los verifica en una sola pasada forward; los tokens aceptados salen "gratis". En 2026, EAGLE-3 es la variante de grado de producción: entrena un cabezal de borrador (draft head) en los estados ocultos (hidden states) del modelo objetivo en lugar de tokens brutos, elevando la tasa de aceptación alpha al rango de 0.6 a 0.8 en conversaciones generales. La pregunta correcta no es "¿qué tan rápido es el borrador?", sino "¿cuál es el valor de alpha en mi tráfico?". Si alpha cae por debajo de ~0.55, la decodificación especulativa se vuelve neta negativa bajo alta concurrencia, porque cada borrador rechazado cuesta una segunda pasada forward en el modelo objetivo. Esta lección te enseña a medir alpha primero y activar la flag después.
Tipo: Aprender Lenguajes: Python (stdlib, simulador simplificado de tasa de aceptación) Requisitos previos: Phase 17 · 04 (vLLM Serving Internals), Phase 10 · 18 (Multi-Token Prediction) Tiempo: ~60 minutos
Objetivos de Aprendizaje
- Nombrar las tres generaciones de decodificación especulativa y explicar qué cambia EAGLE-3 con respecto a EAGLE-2 y a un modelo de borrador clásico.
- Definir la tasa de aceptación alpha, calcular el aumento de velocidad esperado a partir de alpha y K (longitud del borrador), e identificar el alpha de equilibrio (break-even) para tu concurrencia objetivo.
- Explicar por qué la decodificación especulativa es opcional (opt-in, no predeterminada) en vLLM 2026 y por qué activarla sin medir alpha es un antipatrón de producción.
- Escribir un plan de medición: qué benchmark usar, qué distribución de prompts, qué punto de concurrencia y sobre qué métrica decidir.
O Problema
La decodificación (decode) está limitada por memoria (memory-bound). En una H100 que ejecuta Llama 3.3 70B FP8, cada token decodificado lee ~140 GB/s de pesos y emite un solo token. El cómputo de la GPU está casi inactivo durante la decodificación; el cuello de botella es el ancho de banda de HBM, no el rendimiento de multiplicaciones de matrices (matmuls).
La decodificación especulativa aprovecha esta brecha. Genera K tokens candidatos con un modelo de borrador económico, luego solicita al modelo objetivo que verifique los K en una sola pasada forward. Cada token verificado sale efectivamente gratis (amortizado en una pasada forward de lote de tamaño K que el modelo objetivo habría tenido que hacer de todos modos).
El enfoque clásico de modelo de borrador utiliza un modelo más pequeño de la misma familia (Llama 3.2 1B sirviendo de borrador para Llama 3.3 70B). Funciona, pero la tasa de aceptación es mediocre: la distribución del modelo más pequeño se desvía del objetivo. EAGLE, luego EAGLE-2 y posteriormente EAGLE-3 entrenan un cabezal de borrador ligero directamente en los estados ocultos internos del modelo objetivo, por lo que la distribución del borrador sigue al objetivo de manera mucho más cercana. Por eso alpha pasa de 0.4 con modelo de borrador clásico a 0.6-0.8 con EAGLE-3.
El detalle: EAGLE-3 es opcional (opt-in) en vLLM 2026. speculative_config debe definirse explícitamente. Sin flag, no hay aceleración. Los equipos que lo activan sin medir alpha en su tráfico real a menudo ven que la latencia de cola empeora en lugar de mejorar.
El Concepto
Lo que la decodificación especulativa realmente compra
Sin decodificación especulativa, el costo por token es de una pasada forward del objetivo. Con decodificación especulativa con longitud de borrador K y aceptación alpha, el número esperado de tokens por pasada forward del objetivo es 1 + K * alpha. La aceleración es (1 + K * alpha) / (1 + epsilon), donde epsilon es la sobrecarga (overhead) de borrador más verificación. Para K=5, alpha=0.7: (1 + 5*0.7) / (1 + 0.1) = 4.5 / 1.1 = 4.1x. Los números reales se agrupan alrededor de 2-3x porque alpha rara vez es tan alto en el tráfico de producción y epsilon grows a tamaños de lote altos.
Por qué alpha es la única métrica que importa
Los tokens rechazados no desaparecen: obligan a una segunda pasada forward del objetivo para el primer token rechazado. En una carga de trabajo donde alpha cae a 0.4, pagas la sobrecarga del borrador, más la verificación, más la nueva generación (re-roll). Con alta concurrencia (digamos 256 solicitudes simultáneas), el lote de decodificación ya es lo suficientemente grande como para que la brecha de ancho de banda de memoria entre "solo objetivo" y "objetivo con verificación" se reduzca. Por debajo de un alpha de 0.55 en la mayoría del hardware de 2026, la decodificación especulativa es neta negativa.
Alpha varía según la carga de trabajo. En conversaciones generales estilo ShareGPT, EAGLE-3 entrenado en ShareGPT alcanza de 0.6 a 0.8. En tráfico especializado (código, medicina, leyes), el cabezal de borrador entrenado en datos generales cae a 0.4-0.6. Entrenar un cabezal de borrador para un dominio específico recupera el alpha; se trata de un entrenamiento ligero y rápido en comparación con el ajuste fino del objetivo.
Las generaciones de EAGLE de un vistazo
- Modelo de borrador clásico: modelo pequeño de la misma familia. Alpha 0.3-0.5. Infraestructura simple: dos modelos cargados, el borrador ejecuta K pasadas forward por pasada del objetivo.
- EAGLE-1 (2024): cabezal de borrador único entrenado en los estados ocultos del objetivo (última capa). Alpha ~0.5-0.6. Pequeña sobrecarga de parámetros sobre el objetivo.
- EAGLE-2 (2025): longitud de borrador adaptativa y borradores basados en árboles (verifica múltiples ramas en una sola pasada en el objetivo). Alpha ~0.6-0.7. Agendador de borrador más complejo.
- EAGLE-3 (2025-2026): cabezal de borrador entrenado en múltiples capas del objetivo (no solo la última), mejor alineación. Alpha ~0.6-0.8 en chat general.
La receta de producción para 2026
- Implementa el modelo objetivo de forma sencilla. Mide el TTFT de línea base, ITL y rendimiento en la concurrencia objetivo.
- Activa el borrador EAGLE-3 mediante
speculative_configde vLLM. Vuelve a ejecutar el benchmark. - Monitorea la tasa de aceptación alpha. vLLM V1 informa esto como
spec_decode_metrics.accepted_tokens_per_request. Divide por la longitud del borrador solicitada para obtener alpha. - Si alpha < 0.55 en la distribución del tráfico de producción, desactiva la decodificación especulativa o entrena un borrador EAGLE-3 específico para el dominio.
- En la concurrencia de producción, vuelve a ejecutar. Confirma que el ITL P99 no haya empeorado.
La trampa de producción: latencia P99
El ITL promedio disminuye con la decodificación especulativa. El P99 puede empeorar si no realizas ajustes. Los borradores rechazados activan una secuencia de dos pasadas (borrador + fallo de verificación + nueva generación). Bajo lote completo, esas dos pasadas se serializan. Monitorea el ITL P99, no el P50.
Dónde está desplegado EAGLE-3
Google implementó la decodificación especulativa en AI Overviews en 2025 (misma calidad, respuesta más rápida). vLLM V1 proporciona speculative_config como la interfaz documentada; la decodificación especulativa por N-gram en la GPU en V1 es la variante compatible con chunked prefill. SGLang admite EAGLE-3 como la ruta de borrador recomendada para cargas de trabajo con uso intensivo de prefijos.
La matemática de equilibrio en una línea
Aceleración esperada: S(alpha, K) = (1 + K*alpha) / (1 + verify_overhead). Definir S = 1 resuelve para alpha: alpha_breakeven = verify_overhead / K. Para una sobrecarga de verificación típica de ~0.15 y K=5: alpha_breakeven = 0.03. Pero esa es la matemática pura de decodificación. En alta concurrencia, la sobrecarga de verificación aumenta y el lote de decodificación ya amortiza las lecturas de memoria entre las secuencias, por lo que el alpha_breakeven real sube a ~0.45-0.55 en la práctica.
Cuándo no usar decodificación especulativa
- Generación offline con lote de tamaño 1 (Batch-1), donde la latencia no importa. Usa el modelo objetivo simple.
- Salidas muy cortas (menos de 50 tokens). La sobrecarga del borrador y el costo de verificación dominan.
- Dominios especializados sin un cabezal de borrador entrenado para ese dominio. El valor de alpha es demasiado bajo.
- vLLM v0.18.0 más decodificación especulativa con modelo de borrador más
--enable-chunked-prefill. Esta combinación no compila. La excepción documentada es la decodificación especulativa basada en N-gram en la GPU en la versión V1.
Use It
El archivo code/main.py simula un loop de decodificación con y sin decodificación especulativa en un rango de valores de alpha y longitudes de borrador K. Imprime el alpha de equilibrio, la aceleración medida y el comportamiento de cola. Ejecútalo en varias combinaciones de (alpha, K) para ver exactamente dónde deja de convenir la decodificación especulativa.
Ship It
Esta lección produce outputs/skill-eagle3-rollout.md. Dado un modelo objetivo, la descripción de la distribución de tráfico y la concurrencia objetivo, genera un plan de implementación en etapas de EAGLE-3: medir línea base, activar configuración, medir alpha, restringir para alpha >= 0.55, monitorear el ITL P99.
Exercises
- Ejecuta
code/main.py. Con K=5, ¿qué alpha necesitas para una aceleración de 2x? ¿Para 3x? ¿Qué tan sensible es eso alverify_overhead? - Imagina que el tráfico de producción se divide en 70% chat general y 30% código. El chat general alcanza un alpha de 0.7 con EAGLE-3 entrenado en ShareGPT; el código alcanza un alpha de 0.4. ¿Cuál es el alpha combinado y es la decodificación especulativa neta positiva?
- Lee la documentación de
speculative_configde vLLM. Nombra los tres modos (modelo de borrador, EAGLE, N-gram) y cuál es compatible con chunked prefill. - Ves que el ITL promedio cae un 25% después de activar EAGLE-3, pero el ITL P99 aumentó un 15%. Diagnostica y propone una mitigación.
- Calcula el costo de memoria del cabezal de borrador EAGLE-3 para Llama 3.3 70B. ¿Cómo se compara con ejecutar Llama 3.2 1B como un borrador clásico?
Key Terms
| Term | What people say | What it actually means |
|---|---|---|
| Decodificación especulativa | "borrador más verificación" | Propone K tokens con un modelo económico, verifica los K en una sola pasada forward en el objetivo |
| Tasa de aceptación alpha | "tasa de aceptación especulativa" | Fracción de tokens de borrador aceptada por el objetivo; la única métrica que importa |
| Longitud de borrador K | "k especulativo" | Cuántos tokens propone el borrador por pasada forward en el objetivo; típicamente de 4 a 8 |
| Sobrecarga de verificación epsilon | "sobrecarga especulativa" | Costo extra para verificar y generar de nuevo frente a una pasada simple en el objetivo; crece con el lote |
| EAGLE-3 | "último EAGLE" | Variante de 2025-2026; entrena el cabezal de borrador en múltiples capas del objetivo; alpha de 0.6-0.8 en chat general |
speculative_config |
"config especulativa de vLLM" | Configuración opcional explícita en vLLM V1; sin valor predeterminado significa que no hay aceleración |
| N-gram spec decode | "borrador N-gram" | Borrador en la GPU que utiliza búsquedas de N-gram en el prompt; compatible con chunked prefill |
| Alpha de equilibrio | "alpha de no-op" | Valor de alpha en el cual la decodificación especulativa resulta en aceleración cero; monitorea esto en la concurrencia de producción |
| Borrador rechazado en dos pasadas | "costo de nueva generación" | Dos pasadas forward en el objetivo cuando se rechaza el borrador; afecta a la cola del P99 |
Further Reading
- vLLM — Speculative Decoding docs — fuente de referencia sobre
speculative_configy compatibilidad de chunked-prefill en V1. - vLLM Speculative Config API — el conjunto exacto de campos.
- EAGLE paper (arXiv:2401.15077) — formulación original del cabezal de borrador de EAGLE.
- EAGLE-2 paper (arXiv:2406.16858) — borradores adaptativos y árboles de decisión.
- UC Berkeley EECS-2025-224 — sistema de LLM eficiente con decodificación especulativa.
- BentoML — Speculative Decoding — checklist de despliegue en producción.