IA

    Decodificação Especulativa em LLMs: Draft Models, Medusa e vLLM

    Como a decodificação especulativa acelera a inferência de LLMs em 2x a 3x sem perda de qualidade. Draft models, Medusa, EAGLE-2 e otimização no vLLM.

    2026-08-2211 minEquipe MaxVision
    CLIP_001 · DJI O4FPV · 4K · 60FPS
    IA · 2026.08.22

    A inferência de LLMs em produção esbarra na largura de banda de memória das GPUs. Gerar um token por vez deixa os núcleos de computação ociosos na maior parte do ciclo.

    A técnica de decodificação especulativa resolve esse limite. Ela gera múltiplos tokens candidatos em paralelo e valida o lote em um único passo computacional.

    Acelerador neural em rack escuro com indicador carmim aceso

    Por que a inferência tradicional de LLMs é lenta na GPU?

    A inferência autoregressiva comum é lenta porque a GPU passa quase todo o tempo transferindo pesos da memória principal. Em batch size = 1, a intensidade aritmética é mínima.

    O modelo Roofline descreve esse limite físico. Para cada token gerado, a GPU lê todos os parâmetros da rede da memória HBM para a SRAM local.

    Considere um modelo de 70B de parâmetros em FP16 (140 GB de pesos):

    • Em uma GPU NVIDIA H100 SXM5 com largura de banda de 3,35 TB/s (3.350 GB/s), o tempo mínimo para ler os pesos é T_load = 140 GB ÷ 3.350 GB/s ≈ 41,8 ms/token.
    • Esse piso físico limita a taxa máxima a cerca de 24 tokens por segundo em uma sequência isolada.
    • Enquanto os 140 GB trafegam pelo barramento, os núcleos tensores operam com menos de 3% de utilização teórica.

    A decodificação especulativa converte essa ociosidade em velocidade real. O sistema valida vários tokens candidatos no mesmo ciclo de leitura de memória.


    Como funciona a matemática da decodificação especulativa?

    A decodificação especulativa opera em duas etapas coordenadas: a fase de rascunho (draft phase) e a fase de verificação paralela (verification phase).

    Na primeira fase, um mecanismo leve propõe uma sequência de γ tokens candidatos (x_1, x_2, ..., x_γ). Na segunda fase, o modelo principal processa todos os candidatos em um único forward pass.

    O algoritmo de Leviathan et al. (2023) e Chen et al. (2023) introduziu a amostragem com rejeição modificada. Esse método assegura fidelidade matemática exata à distribuição do modelo alvo.

    Pipeline de Decodificação Especulativa:
    
    [Draft Mechanism] ──> Gera γ tokens: [t_1, t_2, t_3, t_4]
                               │
                               ▼
    [Target Model]    ──> 1 forward pass paralelo sobre [t_1, t_2, t_3, t_4]
                               │
                               ▼
    [Modified Rejection] ─> min(1, p(t_i) / q(t_i))
                            ├─ t_1: Aceito (✓)
                            ├─ t_2: Aceito (✓)
                            ├─ t_3: Rejeitado (✗) ──> Amostra correção de p'(x)
                            └─ t_4: Descartado
    

    Para cada token candidato x_i, com probabilidade q(x_i) no draft e p(x_i) no target:

    1. O token é aceito com probabilidade min(1, p(x_i) / q(x_i)).
    2. Se aceito, ele entra na resposta e a verificação segue para o próximo token x_{i+1}.
    3. Se rejeitado no índice k ≤ γ, os tokens posteriores (x_{k+1} a x_γ) são descartados.
    4. Um substituto é amostrado da distribuição residual p'(x) = max(0, p(x) - q(x)) ÷ Σ max(0, p(y) - q(y)).
    5. O ciclo é concluído, emitindo k tokens válidos de uma só vez.

    A expectativa de tokens aceitos depende de α e γ:

    E[N] = (1 - α^(γ + 1)) ÷ (1 - α)

    O speedup efetivo S é dado por S = E[N] ÷ (γ × c + 1), onde c = T_draft ÷ T_target. Quando α ≥ 0,75, o ganho atinge facilmente de 2,0× a 3,0×.


    Quais são as principais arquiteturas de especulação?

    Existem quatro abordagens principais para gerar tokens de rascunho, variando em complexidade, consumo de VRAM e taxa de concordância.

    A escolha ideal depende da infraestrutura de hardware e do perfil da carga de trabalho em produção.

    Atenção em árvore para decodificação Medusa com caminhos carmim

    1. Modelo Draft Independente (Independent Draft Model)

    Utiliza um modelo menor da mesma família como rascunho, como o Llama-3-8B rascunhando para o Llama-3-70B.

    • Vantagens: Aproveita modelos pré-treinados existentes sem treinamento adicional.
    • Desvantagens: Exige VRAM extra para dois modelos e requer alinhamento estrito de vocabulário e tokenizador.

    2. Medusa: Cabeças Neurais Múltiplas (Multi-Head Decoding)

    Proposto por Cai et al. (2024), o Medusa adiciona K cabeças MLP leves sobre a última camada oculta do modelo principal.

    Cada cabeça prevê um token futuro. O sistema constrói uma árvore de candidatos e valida múltiplos caminhos prováveis com atenção em árvore (Tree Attention).

    3. EAGLE e EAGLE-2: Especulação em Nível de Features

    O framework EAGLE-2 (Li et al., 2024) realiza a auto-regressão no espaço de embeddings e estados ocultos da penúltima camada.

    Ao operar sobre representações contextuais ricas, o EAGLE-2 alcança taxas de aceitação superiores a 80% em tarefas de código e raciocínio lógico.

    4. Prompt Lookup e N-Gram Matching

    Mecanismo sem parâmetros que identifica repetições de padrões (n-grams) no prompt e histórico. É eficiente para tarefas redundantes, como edição de código e síntese em RAG corporativo.

    ArquiteturaVRAM AdicionalTaxa de Aceitação Média (α)Complexidade de SetupIdeal Para
    Independent DraftMédia (pesos do modelo draft)65% a 78%Baixa (modelos prontos)Clusters com VRAM disponível
    Medusa (Tree)Mínima (< 2% dos parâmetros)70% a 82%Média (fine-tuning de heads)Baixa latência em GPU única
    EAGLE-2Mínima (1 camada Transformer)78% a 88%MédiaRaciocínio, matemática e código
    Prompt LookupZero (sem parâmetros)50% a 70% (tarefa-dependente)Muito baixaGeração de código e JSON estruturado

    Como configurar decodificação especulativa no vLLM?

    O vLLM implementa decodificação especulativa integrada nativamente com o algoritmo de gerenciamento de memória PagedAttention.

    Para servir um modelo Llama-3-70B utilizando um Llama-3-8B como draft via vLLM, configure os parâmetros na inicialização:

    # Servindo Llama-3-70B com Llama-3-8B como Draft Model no vLLM
    vllm serve meta-llama/Meta-Llama-3-70B-Instruct \
      --tensor-parallel-size 4 \
      --speculative-model meta-llama/Meta-Llama-3-8B-Instruct \
      --num-speculative-tokens 5 \
      --use-v2-block-manager \
      --gpu-memory-utilization 0.90 \
      --port 8000
    

    Para utilizar especulação sem modelo adicional baseada no contexto (Prompt Lookup), utilize a flag --speculative-model [prompt_lookup]:

    # Servindo com Prompt Lookup Decoding para alta velocidade em código e RAG
    vllm serve meta-llama/Meta-Llama-3-70B-Instruct \
      --tensor-parallel-size 4 \
      --speculative-model [prompt_lookup] \
      --num-speculative-tokens 4 \
      --prompt-lookup-max-n-gram 3 \
      --port 8000
    

    Em fluxos de orquestração de agentes de IA, essa configuração reduz a latência inter-token de 38 ms para menos de 14 ms, viabilizando interações em tempo real.


    Como a decodificação especulativa gerencia o KV Cache?

    A decodificação especulativa gerencia o KV Cache alocando blocos dinâmicos para ramos da árvore de candidatos e consolidando apenas os nós aprovados.

    Diferente da geração comum, a verificação em árvore (Tree Attention) cria múltiplos caminhos concorrentes de contexto.

    Terminal de telemetria de inferência com indicador carmim

    O gerenciador de memória do runtime executa três passos estruturados:

    1. Alocação de Rascunho: O engine reserva blocos virtuais de KV Cache para os γ tokens rascunhados, compartilhando o histórico comum.
    2. Forward Pass com Máscara: Uma matriz de atenção customizada garante que cada candidato veja apenas seus ancestrais na árvore, evitando contaminação.
    3. Poda e Consolidação: Ao definir o ponto de corte, os ramos rejeitados são liberados instantaneamente (O(1)), promovendo apenas o caminho aceito.

    Integrado ao PagedAttention, esse gerenciamento elimina qualquer necessidade de cópia redundante de tensores na memória física da GPU.


    Quais são os trade-offs entre latência individual e throughput?

    A decodificação especulativa prioriza a latência de sequências individuais em vez do throughput agregado sob saturação total.

    Entender o comportamento sob carga evita erros comuns de dimensionamento na infraestrutura de produção.

    • Baixa Concorrência (batch size ≤ 4): A GPU possui núcleos ociosos. A decodificação especulativa acelera cada requisição em até 3,2×.
    • Alta Concorrência (batch size ≥ 64): O volume de requisições preenche os núcleos tensores. O sistema transita para o regime limitado por computação.
    • Sobrecarga sob Saturação: Em alta carga, verificar tokens rejeitados compete com outras requisições, reduzindo o rendimento total de tokens por segundo.

    Para agentes autônomos e interfaces interativas onde a latência por usuário é crítica, a decodificação especulativa é o padrão ideal.


    Perguntas Frequentes

    A decodificação especulativa altera a qualidade ou criatividade do modelo?

    Não. O algoritmo de amostragem com rejeição modificada garante que a distribuição estatística de saída seja idêntica à do modelo original. O texto gerado preserva a exata mesma qualidade, coerência e precisão.

    Posso usar decodificação especulativa com modelos locais no Ollama ou vLLM?

    Sim. O vLLM suporta modelos draft independentes, Medusa e Prompt Lookup nativamente. No Ollama, suporte a modelos draft está disponível através do backend llama.cpp.

    Qual é a diferença entre decodificação especulativa e quantização?

    A quantização reduz a precisão numérica dos pesos para diminuir o consumo de memória. A decodificação especulativa altera o fluxo de execução para gerar múltiplos tokens por ciclo. Ambas podem ser combinadas.

    O que acontece quando o modelo draft erra a previsão de um token?

    O modelo alvo rejeita o token divergente, descarta as previsões posteriores e amostra imediatamente o token correto da distribuição residual. O ciclo nunca propaga erros na resposta final.

    Quantos tokens de rascunho (γ) devo configurar em produção?

    O valor ideal de γ fica entre 3 e 5 tokens. Valores acima de 7 aumentam o desperdício computacional em rejeições precoces sem gerar ganhos proporcionais de velocidade.


    Conclusão

    A decodificação especulativa é uma evolução indispensável para a viabilidade econômica de modelos de linguagem em larga escala. Ao superar o gargalo de memória, sistemas como Medusa, EAGLE-2 e vLLM triplicam a velocidade com fidelidade matemática absoluta.

    Na Produtora MaxVision, projetamos arquiteturas completas de inteligência artificial corporativa, agentes autônomos e infraestrutura de alta performance. Descubra nossas soluções em Inteligência Artificial ou fale com nossos especialistas para dimensionar seu cluster de inferência.


    Posts Relacionados

    TAGS
    • IA
    • LLM
    • vLLM
    • Inferência
    • Open Source
    • GPU
    • Desenvolvimento
    Mascote da MaxVision para contato rápido no WhatsAppFale agora pelo WhatsApp