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.
Soluçã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.
Ganho: 2–6× speedup sem modificar o modelo grande; qualidade idêntica.
Speculative Decoding Original
- arXiv: 2211.17192 | ICML 2023
- Autores: Leviathan et al. (Google)
- Mecanismo: Draft model pequeno gera K tokens → target model verifica em 1 forward pass → aceita prefixo correto
- Condição: Draft e target devem ter a mesma distribuição de saída (target decodifica sem bias)
- Ganho típico: 2–3× em latência
Speculative Sampling (DeepMind)
- arXiv: 2302.01318
- Alternativa: Mesma ideia, amostragem probabilística exata para manter a distribuição
Medusa — Múltiplas Cabeças de Predição
- arXiv: 2401.10774
- Mecanismo: Adiciona N cabeças de decodificação extras ao modelo (sem modelo separado)
- Predição: Cada cabeça prediz o token em posição t+1, t+2, ..., t+N
- Verificação: Tree attention verifica múltiplos caminhos em paralelo
- Ganho: 2–3× speedup; requer fine-tuning para adicionar as cabeças
- Vantagem: Sem modelo draft separado; deploy simples
EAGLE — Speculative Decoding com Feature-Level Draft
EAGLE-1
- arXiv: 2401.15077 | ICML 2024
- Inovação: O modelo draft prediz features do próximo token (embedding level), não tokens diretamente
- Ganho: 3–4× speedup vs autoregressive
- Método: Auto-regressão sobre features + cabeça LM do modelo original
EAGLE-2
- arXiv: 2406.16858
- Inovação: Adaptive draft tree — ajusta o número de candidatos dinamicamente baseado na confiança do draft
- Ganho: 3.5–5× speedup; melhor uso do compute
EAGLE-3
- arXiv: 2503.xxxxx | 2025
- Inovação: Multi-layer feature aggregation — usa features de múltiplas camadas do target model
- Ganho: 4–6× speedup; estado da arte (março 2025)
- Melhoria: Melhor draft quality em tarefas de raciocínio longo (CoT)
P-EAGLE (Parallel EAGLE)
- arXiv: 2504.xxxxx | 2025
- Inovação: Múltiplas instâncias do draft model em paralelo + pipeline
- Ganho: Até 6× speedup em hardware multi-GPU
- Trade-off: Mais memória (múltiplas instâncias do draft)
Hydra — Multi-Head com Treinamento Melhorado
- arXiv: 2402.05109
- Baseado em: Medusa
- Melhoria: Cabeças especializadas por posição; treinamento com rejection sampling
- Ganho: Ligeiramente superior ao Medusa original
Lookahead Decoding
- arXiv: 2402.02057 (DeepMind 2024)
- Mecanismo: Sem modelo draft; usa Jacobi iteration para gerar e verificar tokens "em paralelo" no próprio modelo
- Vantagem: Zero overhead de memória adicional
- Ganho: 1.5–2× speedup (menor que EAGLE, mas universal)
SpecInfer / REST
SpecInfer
- arXiv: 2305.09781
- Mecanismo: Árvore de especulação com múltiplos modelos draft
- Foco: Sistema de serving em produção
REST — Retrieval-Based Speculative Decoding
- arXiv: 2311.08252
- Mecanismo: Recupera continuações de um corpus em vez de usar modelo draft
- Vantagem: Sem custo de treino do draft model; adaptável por domínio
Multi-Token Prediction (MTP)
- arXiv: 2404.19737 (Meta 2024)
- Mecanismo: Treina o modelo para prever N tokens de uma vez com N cabeças de saída
- Adoção: DeepSeek-V3 usa MTP como auxiliary training objective
- Benefício: Aproveita para speculative decoding em tempo de inferência sem draft model separado
- Resultado: Melhora qualidade de representação + velocidade de inferência
QuantSpec (Apple, 2025)
- arXiv: 2502.10424
- Publicado: Apple Machine Learning Research
- Mecanismo: Self-speculative decoding com KV cache hierárquico de 4 bits e pesos de 4 bits para o modelo draft
- Diferencial: Draft e target são o mesmo modelo em diferentes configurações de quantização — sem modelo separado
- Speedup: ~2.5× com taxa de aceitação > 90%
- Integraçã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
- vLLM: Suporte nativo a Medusa, EAGLE, SpecInfer, multi-step decoding
- SGLang: EAGLE-2/3 integrado nativamente; melhor suporte a speculative decoding
- TGI (HuggingFace): Speculative decoding com modelo draft configurável
- llama.cpp: Lookahead decoding; draft model speculative
Para o Kode
- Latência de completions em IDE: EAGLE-2 com Qwen2.5-Coder-32B (target) + Qwen2.5-Coder-1.5B (draft) → target de <50ms por token
- Servidor: SGLang com EAGLE-3 para máximo throughput
- Local: llama.cpp com lookahead decoding (zero overhead)