Phase 17 - Lesson 05
Decodificação Especulativa EAGLE-3 em Produção
A decodificação especulativa associa um modelo de rascunho (draft model) rápido ao modelo alvo (target model). O modelo de rascunho propõe K tokens; o modelo alvo os verifica em uma única passagem forward; os tokens aceitos saem "de graça". Em 2026, o EAGLE-3 representa a variante de nível de produção — ele treina uma cabeça de rascunho (draft head) nos estados ocultos (hidden states) do modelo alvo, em vez de treinar em tokens brutos, elevando a taxa de aceitação alpha para a faixa de 0,6 a 0,8 em conversas gerais. A pergunta correta a se fazer não é "quão rápido é o rascunho", mas "qual é o valor de alpha no meu tráfego?". Se o alpha cair abaixo de ~0,55, a decodificação especulativa se torna líquida negativa sob alta concorrência, porque cada rascunho rejeitado custa uma segunda passagem forward no modelo alvo. Esta lição ensina você a medir o alpha primeiro e ativar a flag depois.
Tipo: Aprender Linguagens: Python (stdlib, simulador simplificado de taxa de aceitação) Pré-requisitos: Phase 17 · 04 (vLLM Serving Internals), Phase 10 · 18 (Multi-Token Prediction) Tempo: ~60 minutos
Objetivos de Aprendizagem
- Nomear as três gerações de decodificação especulativa e explicar o que o EAGLE-3 altera em relação ao EAGLE-2 e a um modelo de rascunho clássico.
- Definir a taxa de aceitação alpha, calcular a aceleração esperada a partir de alpha e K (comprimento do rascunho) e identificar o alpha de equilíbrio (break-even) para sua concorrência alvo.
- Explicar por que a decodificação especulativa é opcional (opt-in, não padrão) no vLLM de 2026 e por que ativá-la sem medir o alpha representa um antipadrão de produção.
- Escrever um plano de medição: qual benchmark usar, qual distribuição de prompts, qual ponto de concorrência e em qual métrica se basear para a tomada de decisão.
O Problema
A decodificação (decode) é limitada por memória (memory-bound). Em uma H100 executando Llama 3.3 70B FP8, cada token decodificado lê ~140 GB/s de pesos e emite um único token. A capacidade de processamento da GPU fica quase ociosa durante a decodificação — o gargalo é a largura de banda de HBM, não o rendimento de multiplicações de matrizes (matmuls).
A decodificação especulativa explora essa lacuna. Gere K tokens candidatos com um modelo de rascunho barato e, em seguida, peça ao modelo alvo para verificar todos os K em uma única passagem forward. Cada token verificado sai efetivamente de graça (amortizado em uma passagem forward de lote de tamanho K que o modelo alvo teria que fazer de qualquer maneira).
A abordagem clássica de modelo de rascunho usa um modelo menor da mesma família (Llama 3.2 1B servindo de rascunho para Llama 3.3 70B). Funciona, mas a taxa de aceitação é mediana — a distribuição do modelo menor diverge do alvo. O EAGLE, depois o EAGLE-2 e então o EAGLE-3 treinam uma cabeça de rascunho leve diretamente nos estados ocultos internos do modelo alvo, de modo que a distribuição do rascunho acompanhe o alvo de forma muito mais precisa. É por isso que o alpha sobe de 0,4 com modelo de rascunho clássico para 0,6-0,8 com o EAGLE-3.
O porém: o EAGLE-3 é um recurso opcional (opt-in) no vLLM de 2026. A speculative_config deve ser definida explicitamente. Sem flag, sem aceleração. Equipes que a ativam sem medir o alpha em seu tráfego real frequentemente observam a latência de cauda piorar, em vez de melhorar.
O Conceito
O que a decodificação especulativa realmente entrega
Sem decodificação especulativa, o custo por token é de uma passagem forward no alvo. Com decodificação especulativa em comprimento de rascunho K e aceitação alpha, o número de tokens esperado por passagem forward no alvo é de 1 + K * alpha. A aceleração é dada por (1 + K * alpha) / (1 + epsilon), onde epsilon representa a sobrecarga (overhead) de rascunho mais verificação. Para K=5, alpha=0,7: (1 + 5*0,7) / (1 + 0,1) = 4,5 / 1,1 = 4,1x. Os números reais giram em torno de 2-3x porque o alpha raramente é tão alto em tráfego de produção e o epsilon cresce sob tamanhos de lote elevados.
Por que o alpha é a única métrica que importa
Os tokens rejeitados não desaparecem — eles forçam uma segunda passagem forward no alvo para o primeiro token rejeitado. Sob uma carga de trabalho em que o alpha cai para 0,4, você paga pela sobrecarga do rascunho, pela verificação e pela nova geração (re-roll). Sob alta concorrência (por exemplo, 256 conexões simultâneas), o lote de decodificação já é grande o suficiente para que a diferença de largura de banda de memória entre "apenas alvo" e "alvo com verificação" diminua. Abaixo de um alpha de 0,55 na maioria dos hardwares de 2026, a decodificação especulativa se torna líquida negativa.
O alpha varia conforme a carga de trabalho. Em conversas gerais no estilo ShareGPT, o EAGLE-3 treinado no ShareGPT atinge 0,6 a 0,8. Em tráfego especializado (código, medicina, direito), a cabeça de rascunho treinada em dados gerais cai para 0,4-0,6. Treinar uma cabeça de rascunho para um domínio específico recupera o alpha — trata-se de um treinamento leve e rápido comparado ao ajuste fino do alvo.
As gerações do EAGLE num relance
- Modelo de rascunho clássico: modelo menor da mesma família. Alpha 0,3-0,5. Infraestrutura simples — dois modelos carregados, o rascunho executa K passagens forward por passagem do alvo.
- EAGLE-1 (2024): cabeça de rascunho única treinada nos estados ocultos do alvo (última camada). Alpha ~0,5-0,6. Pequena sobrecarga de parâmetros além do alvo.
- EAGLE-2 (2025): comprimento de rascunho adaptável e rascunhos baseados em árvore (verifica múltiplos ramos em uma única passagem no alvo). Alpha ~0,6-0,7. Agendador de rascunho mais complexo.
- EAGLE-3 (2025-2026): cabeça de rascunho treinada em múltiplas camadas do alvo (não apenas na última), melhor alinhamento. Alpha ~0,6-0,8 em conversas gerais.
A receita de produção para 2026
- Publique o modelo alvo de forma simples. Meça o TTFT de linha de base, ITL e rendimento na concorrência alvo.
- Ative o rascunho EAGLE-3 via
speculative_configdo vLLM. Execute novamente o benchmark. - Logue a taxa de aceitação alpha. O vLLM V1 relata isso como
spec_decode_metrics.accepted_tokens_per_request. Divida pelo comprimento de rascunho solicitado para obter o alpha. - Se alpha < 0,55 na distribuição de tráfego de produção, desative a decodificação especulativa ou treine um rascunho EAGLE-3 específico para o domínio.
- Em concorrência de produção, execute novamente. Confirme que o ITL P99 não piorou.
A armadilha de produção: latência P99
O ITL médio cai com a decodificação especulativa. A latência P99 pode piorar se você não realizar ajustes. Rascunhos rejeitados ativam uma sequência de duas passagens (rascunho + falha de verificação + nova geração). Sob lote completo, essas duas passagens são serializadas. Monitore o ITL P99, e não o P50.
Onde o EAGLE-3 já está implementado
A Google implementou a decodificação especulativa em AI Overviews em 2025 (mesma qualidade, resposta mais rápida). O vLLM V1 fornece a speculative_config como a interface documentada; a decodificação especulativa por N-gram na GPU no V1 representa a variante compatível com o chunked prefill. O SGLang suporta o EAGLE-3 como o caminho de rascunho recomendado para cargas de trabalho com uso intensivo de prefixos.
A matemática de equilíbrio em uma linha
Aceleração esperada: S(alpha, K) = (1 + K*alpha) / (1 + verify_overhead). Definir S = 1 resolve para alpha: alpha_breakeven = verify_overhead / K. Para um verify_overhead típico de ~0,15 e K=5: alpha_breakeven = 0.03. Mas essa é a matemática pura de decodificação. Em alta concorrência, a sobrecarga de verificação aumenta e o lote de decodificação já amortiza as leituras de memória entre as sequências, de modo que o alpha_breakeven real sobe para ~0,45-0,55 na prática.
Quando não usar decodificação especulativa
- Geração offline com lote de tamanho 1 (Batch-1), onde a latência não importa. Use o modelo alvo simples.
- Saídas muito curtas (menos de 50 tokens). A sobrecarga do rascunho e o custo de verificação dominam.
- Domínios especializados sem uma cabeça de rascunho treinada para aquele domínio. O valor de alpha fica muito baixo.
- vLLM v0.18.0 mais decodificação especulativa com modelo de rascunho mais
--enable-chunked-prefill. Essa combinação não compila. A exceção documentada é a decodificação especulativa baseada em N-gram na GPU na versão V1.
Use It
O arquivo code/main.py simula um loop de decodificação com e sem decodificação especulativa em uma faixa de valores de alpha e comprimentos de rascunho K. Ele exibe o alpha de equilíbrio, a aceleração medida e o comportamento de cauda. Execute-o em várias combinações (alpha, K) para ver exatamente onde a decodificação especulativa deixa de compensar.
Ship It
Esta lição produz outputs/skill-eagle3-rollout.md. Dado um modelo alvo, a descrição da distribuição de tráfego e a concorrência alvo, ela gera um plano de implantação em etapas do EAGLE-3 — medir linha de base, ativar configuração, medir alpha, restringir para alpha >= 0,55, monitorar o ITL P99.
Exercises
- Execute
code/main.py. Com K=5, de qual valor de alpha você precisa para obter uma aceleração de 2x? E para 3x? Qual é a sensibilidade desse valor em relação aoverify_overhead? - Imagine que o tráfego de produção se divida em 70% conversas gerais e 30% código. As conversas gerais atingem alpha de 0,7 com o EAGLE-3 treinado no ShareGPT; o código atinge alpha de 0,4. Qual é o alpha misto e a decodificação especulativa é positiva líquida?
- Leia a documentação do
speculative_configdo vLLM. Nomeie os três modos (modelo de rascunho, EAGLE, N-gram) e qual deles é compatível com o chunked prefill. - Você observa o ITL médio cair 25% após ativar o EAGLE-3, mas o ITL P99 subiu 15%. Diagnostique e proponha uma mitigação.
- Calcule o custo de memória da cabeça de rascunho do EAGLE-3 para o Llama 3.3 70B. Como ele se compara a executar o Llama 3.2 1B como um rascunho clássico?
Key Terms
| Term | What people say | What it actually means |
|---|---|---|
| Decodificação especulativa | "rascunho mais verificação" | Propõe K tokens com um modelo barato, verifica todos os K em uma única passagem forward no alvo |
| Taxa de aceitação alpha | "taxa de aceitação especulativa" | Fração de tokens de rascunho aceita pelo alvo; a única métrica que importa |
| Comprimento de rascunho K | "k especulativo" | Quantos tokens o rascunho propõe por passagem forward no alvo; tipicamente de 4 a 8 |
| Sobrecarga de verificação epsilon | "sobrecarga especulativa" | Custo extra para verificar e gerar novamente em comparação com uma passagem simples no alvo; cresce com o tamanho do lote |
| EAGLE-3 | "último EAGLE" | Variante de 2025-2026; treina a cabeça de rascunho em múltiplas camadas do alvo; alpha de 0,6-0,8 em chat geral |
speculative_config |
"vLLM spec config" | Configuração opcional explícita no vLLM V1; sem valor padrão significa que não há aceleração |
| N-gram spec decode | "rascunho N-gram" | Rascunho na GPU que usa buscas de N-gram no prompt; compatível com chunked prefill |
| Alpha de equilíbrio | "alpha de no-op" | Valor de alpha no qual a decodificação especulativa resulta em aceleração zero; monitore isso na concorrência de produção |
| Rascunho rejeitado em duas passagens | "custo de nova geração" | Duas passagens forward no alvo quando o rascunho é rejeitado; afeta a cauda do P99 |
Further Reading
- vLLM — Speculative Decoding docs — fonte de referência sobre a
speculative_confige a compatibilidade do chunked-prefill na V1. - vLLM Speculative Config API — o conjunto exato de campos.
- EAGLE paper (arXiv:2401.15077) — formulação original da cabeça de rascunho do EAGLE.
- EAGLE-2 paper (arXiv:2406.16858) — rascunhos adaptáveis e árvores de decisão.
- UC Berkeley EECS-2025-224 — sistema de LLM eficiente com decodificação especulativa.
- BentoML — Speculative Decoding — checklist de implantação em produção.