Speculative decoding
Speculative Decoding e Aceleração de Inferência
O Problema: Autoregressive é Lento
LLMs geram 1 token por passo. O gargalo é a latência de memória (KV cache), não compute.
*olução:*Gerar múltiplos tokens candidatos com um modelo pequeno (rascunho) → verificar todos de uma vez com o modelo grande (verificador) → aceitar tokens corretos em paralelo.
*anho:*2–6× speedup sem modificar o modelo grande; qualidade idêntica.
Speculative Decoding Original
- *rXiv:*2211.17192 | ICML 2023
- *utores:*Leviathan et al. (Google)
- *ecanismo:*Draft model pequeno gera K tokens → target model verifica em 1 forward pass → aceita prefixo correto
- *ondição:*Draft e target devem ter a mesma distribuição de saída (target decodifica sem bias)
- *anho típico:*2–3× em latência
Speculative Sampling (DeepMind)
- *rXiv:*2302.01318
- *lternativa:*Mesma ideia, amostragem probabilística exata para manter a distribuição
Medusa — Múltiplas Cabeças de Predição
- *rXiv:*2401.10774
- *ecanismo:*Adiciona N cabeças de decodificação extras ao modelo (sem modelo separado)
- *redição:*Cada cabeça prediz o token em posição t+1, t+2, ..., t+N
- *erificação:*Tree attention verifica múltiplos caminhos em paralelo
- *anho:*2–3× speedup; requer fine-tuning para adicionar as cabeças
- *antagem:*Sem modelo draft separado; deploy simples
EAGLE — Speculative Decoding com Feature-Level Draft
EAGLE-1
- *rXiv:*2401.15077 | ICML 2024
- *novação:*O modelo draft prediz features do próximo token (embedding level), não tokens diretamente
- *anho:*3–4× speedup vs autoregressive
- *étodo:*Auto-regressão sobre features + cabeça LM do modelo original
EAGLE-2
- *rXiv:*2406.16858
- *novação:*Adaptive draft tree — ajusta o número de candidatos dinamicamente baseado na confiança do draft
- *anho:*3.5–5× speedup; melhor uso do compute
EAGLE-3
- *rXiv:*2503.xxxxx | 2025
- *novação:*Multi-layer feature aggregation — usa features de múltiplas camadas do target model
- *anho:*4–6× speedup; estado da arte (março 2025)
- *elhoria:*Melhor draft quality em tarefas de raciocínio longo (CoT)
P-EAGLE (Parallel EAGLE)
- *rXiv:*2504.xxxxx | 2025
- *novação:*Múltiplas instâncias do draft model em paralelo + pipeline
- *anho:*Até 6× speedup em hardware multi-GPU
- *rade-off:*Mais memória (múltiplas instâncias do draft)
Hydra — Multi-Head com Treinamento Melhorado
- *rXiv:*2402.05109
- *aseado em:*Medusa
- *elhoria:*Cabeças especializadas por posição; treinamento com rejection sampling
- *anho:*Ligeiramente superior ao Medusa original
Lookahead Decoding
- *rXiv:*2402.02057 (DeepMind 2024)
- *ecanismo:*Sem modelo draft; usa Jacobi iteration para gerar e verificar tokens "em paralelo" no próprio modelo
- *antagem:*Zero overhead de memória adicional
- *anho:*1.5–2× speedup (menor que EAGLE, mas universal)
SpecInfer / REST
SpecInfer
- *rXiv:*2305.09781
- *ecanismo:*Árvore de especulação com múltiplos modelos draft
- *oco:*Sistema de serving em produção
REST — Retrieval-Based Speculative Decoding
- *rXiv:*2311.08252
- *ecanismo:*Recupera continuações de um corpus em vez de usar modelo draft
- *antagem:*Sem custo de treino do draft model; adaptável por domínio
Multi-Token Prediction (MTP)
- *rXiv:*2404.19737 (Meta 2024)
- *ecanismo:*Treina o modelo para prever N tokens de uma vez com N cabeças de saída
- *doção:*DeepSeek-V3 usa MTP como auxiliary training objective
- *enefício:*Aproveita para speculative decoding em tempo de inferência sem draft model separado
- *esultado:*Melhora qualidade de representação + velocidade de inferência
QuantSpec (Apple, 2025)
- *rXiv:*2502.10424
- *ublicado:*Apple Machine Learning Research
- *ecanismo:*Self-speculative decoding com KV cache hierárquico de 4 bits e pesos de 4 bits para o modelo draft
- *iferencial:*Draft e target são o mesmo modelo em diferentes configurações de quantização — sem modelo separado
- *peedup:*~2.5× com taxa de aceitação > 90%
- *ntegração:*Apple MLX framework
Tabela de Comparação
| Método | Speedup | Requer Fine-Tune? | Memória Extra | Suporte em Produção |
|---|---|---|---|---|
| Speculative Decoding original | 2–3× | Não | Draft model | vLLM, TGI |
| Medusa | 2–3× | Sim (cabeças) | Mínimo | vLLM |
| EAGLE-2 | 3.5–5× | Sim (draft model) | Draft model | SGLang, vLLM |
| EAGLE-3 | 4–6× | Sim | Draft model | SGLang |
| Lookahead | 1.5–2× | Não | Zero | llama.cpp |
| MTP (DeepSeek-V3) | ~2× | Treinamento | Zero (runtime) | Nativo |
| QuantSpec | ~2.5× | Não | Zero | MLX (Apple) |
Integração nos Servidores de Inferência
- *LLM:*Suporte nativo a Medusa, EAGLE, SpecInfer, multi-step decoding
- *GLang:*EAGLE-2/3 integrado nativamente; melhor suporte a speculative decoding
- *GI (HuggingFace):*Speculative decoding com modelo draft configurável
- *lama.cpp:*Lookahead decoding; draft model speculative
Para o Kode
- *atência de completions em IDE:*EAGLE
2 com Qwen2.5Coder32B (target) + Qwen2.5Coder-1.5B (draft) → target de <50ms por token - *ervidor:*SGLang com EAGLE-3 para máximo throughput
- *ocal:*llama.cpp com lookahead decoding (zero overhead)