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)