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:*EAGLE2 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)

Source: ../home/koder/dev/koder/meta/docs/ia/compendium/05-inferencia/speculative-decoding.md