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

  1. Publique o modelo alvo de forma simples. Meça o TTFT de linha de base, ITL e rendimento na concorrência alvo.
  2. Ative o rascunho EAGLE-3 via speculative_config do vLLM. Execute novamente o benchmark.
  3. 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.
  4. 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.
  5. 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

  1. 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 ao verify_overhead?
  2. 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?
  3. Leia a documentação do speculative_config do vLLM. Nomeie os três modos (modelo de rascunho, EAGLE, N-gram) e qual deles é compatível com o chunked prefill.
  4. 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.
  5. 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

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).