English · Español
Lab 03 — Survey de la familia de speculative decoding + veredicto del tutor de gramática¶
Objetivo: leer un paper o blog de cada una de la familia de speculative decoding (vainilla, Medusa, EAGLE, Lookahead). Escribir una comparación de una página + veredicto para el tutor de gramática.
Tiempo estimado: 2–3 horas.
Prerrequisito:
theory/04-speculative-and-reasoning.mdleído. Fase 21 (sampling) entendida — speculative decoding modifica el sampling, así que la baseline debe ser sólida.
Lo que produces¶
Un directorio experiments/36-speculative-survey/ que contenga:
summary.md— matriz de comparación de una página de vainilla / Medusa / EAGLE / Lookahead.decision-tree.md— pequeño flowchart mermaid: "si tu cuello de botella es X, usa Y".grammar-tutor-verdict.md— informe corto: cuál (si alguno) de estos ayudaría al tutor de gramática a la escala de serving de la Fase 33.
TODOs¶
Bloque A — leer las referencias¶
Skim, no lectura profunda. Cada una de las cuatro referencias debería llevar ~30 min:
- Speculative decoding vainilla — Leviathan et al., "Fast Inference from Transformers via Speculative Decoding" (2023). Céntrate en el Algoritmo 1 (la regla de aceptar/rechazar).
- Medusa — Cai et al., "Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads" (2024). Céntrate en la arquitectura multi-head.
- EAGLE / EAGLE-2 — Li et al. (2024). Céntrate en cómo usa los hidden states del modelo target para informar al draft.
- Lookahead decoding — Fu et al., "Break the Sequential Dependency of LLM Inference Using Lookahead Decoding" (2024). Céntrate en el mecanismo del pool de n-grams.
Captura los SHAs / fechas / autores de cada cita en summary.md.
Bloque B — la matriz de comparación¶
En summary.md, rellena esta tabla:
| Familia | Quién hace el draft | Quién verifica | Tasa de aceptación (típica) | Complejidad de implementación | Mejor cuando... |
|---|---|---|---|---|---|
| Vainilla | Modelo draft pequeño separado | Modelo target | Speedup 2-5× | Media | El draft está cerca de la distribución del target |
| Medusa | Múltiples draft heads sobre el target | El propio target | Speedup 2-3× | Media-alta (entrenamiento) | Margen de cómputo limitado, sin draft separado |
| EAGLE | Draft informado por hidden states | Target | Speedup 3-4× | Alta | Target de máxima ganancia |
| Lookahead | N-gram de la propia historia | Target | Speedup 1.5-2× | Baja | Sin draft separado, retrofit fácil |
(Los números son típicos publicados; verifica contra las referencias.)
Luego escribe 2-3 frases por familia explicando el mecanismo en lenguaje llano (no "su algoritmo X hace Y" — el mecanismo real).
Bloque C — el árbol de decisión¶
decision-tree.md — un flowchart mermaid para elegir una estrategia de speculative decoding:
flowchart TD
start[I want faster decode]
start --> q1{Do I have a smaller model<br/>close to the target?}
q1 -->|yes| vanilla[Vanilla speculative decoding]
q1 -->|no| q2{Can I afford to retrain<br/>or fine-tune the target?}
q2 -->|yes| q3{Medusa or EAGLE?}
q3 -->|low overhead| medusa[Medusa]
q3 -->|max gain| eagle[EAGLE]
q2 -->|no| lookahead[Lookahead decoding]
Luego añade una rama "para el tutor de gramática":
flowchart TD
gt[Grammar tutor decoding]
gt --> q1{Is decode the bottleneck?}
q1 -->|no, batch=1 CPU is fast enough| nochange[No change needed]
q1 -->|yes, hypothetically| q2{What's the draft model?}
q2 -->|n-gram from Phase 14| vanilla_gt[Vanilla spec. dec. with n-gram draft]
vanilla_gt -.but.-> noop[Cost / benefit at single-user low-batch:<br/>likely net-negative.]
Bloque D — el veredicto del tutor de gramática¶
grammar-tutor-verdict.md (~200 palabras):
- ¿Es la latencia de decode un cuello de botella para el tutor de gramática en modo mono-usuario? (Respuesta: 3 ms por token en CPU, ~12 tokens de salida para una corrección típica = 36 ms en total. Por debajo del umbral de retraso perceptible para humanos.)
- ¿Podría cualquier variante de speculative decoding ayudar a la escala de serving de la Fase 33 (batching continuo, multiusuario)? (Respuesta: marginal — el modelo target es tan pequeño que el batching domina las ganancias; spec. dec. compondría pero no es necesario.)
- De los cuatro, ¿cuál es el más fácil de retrofitear sobre el tutor de gramática existente sin reentrenamiento? (Respuesta: Lookahead. Sin draft model, sin reentrenamiento.)
- ¿Cuál sería la recomendación honesta? (Respuesta: no añadas speculative decoding. El tutor de gramática no lo necesita. Si la latencia de decode alguna vez se vuelve un problema real, Lookahead primero; vainilla con draft n-gram como backup.)
Termina con la meta-lección: "speculative decoding es una técnica real con ganancias reales a la escala apropiada. El tutor de gramática está por debajo de esa escala. Aplazar".
Restricciones¶
- Sin implementación. Pura lectura + análisis. El objetivo es interiorizar la familia, no construirla.
- Cita explícitamente. Cada afirmación en
summary.mdcita una sección o tabla de uno de los cuatro papers / blogs. - Veredictos honestos. Si te encuentras queriendo añadir speculative decoding para "parecer moderno", caza el impulso. El veredicto para el tutor de gramática a la escala actual es "aplazar".
Condiciones de parada¶
Has terminado cuando:
experiments/36-speculative-survey/{summary.md, decision-tree.md, grammar-tutor-verdict.md}existen todos.- La matriz de comparación en
summary.mdestá rellena con números citados. - El árbol de decisión mermaid renderiza.
- El veredicto del tutor de gramática responde a las cuatro preguntas.
- Puedes recitar, de memoria, "speculative decoding funciona porque el decode es memory-bound; obtener varios tokens por forward mejora la intensidad aritmética".
Pista de último recurso¶
Si encuentras la notación de los papers impenetrable (cada uno usa símbolos distintos para las mismas cosas), usa una notación unificadora en tu summary.md. Define \(p_T\) (probabilidad del target), \(p_D\) (probabilidad del draft), \(k\) (longitud propuesta por ronda), \(\alpha\) (tasa de aceptación). Convierte la notación de cada paper a la tuya.
Si no consigues decidir entre EAGLE y Medusa para la rama de "max-gain": ojea la tabla de comparación del paper de EAGLE-2 — hacen benchmark directamente contra Medusa con el mismo modelo target.
Cuándo consultar solutions/¶
Tras commitear. La solución vive en solutions/03-speculative-ref.md — escrita al abrir la fase. La referencia incluye los rangos de números publicados para la matriz de comparación y el veredicto "aplazar" para el tutor de gramática con el mismo razonamiento.
Siguiente fase: docs/phase-37-security-safety/.