O que é decodificação especulativa?
Resposta rápida
A decodificação especulativa combina um modelo rascunho pequeno com um modelo alvo maior. O modelo rascunho propõe vários tokens à frente, e o modelo alvo verifica todos eles em uma única passagem paralela em vez de uma passagem sequencial por token, o que acelera a geração quando as propostas do rascunho são aceitas.
- ▸Um modelo rascunho pequeno propõe vários tokens antes do modelo principal.
- ▸O modelo alvo maior verifica os tokens propostos em uma única passagem paralela.
- ▸A qualidade da saída corresponde exatamente à do modelo alvo — a decodificação especulativa não muda o que é gerado, apenas a velocidade.
Atualizado: 14 de julho de 2026
Pontos principais
- ✓Um modelo rascunho pequeno propõe tokens à frente; o modelo alvo maior os verifica em uma única passagem paralela
- ✓A qualidade da saída é idêntica à de rodar o modelo alvo sozinho — só a velocidade muda
- ✓O ganho de velocidade é maior em texto previsível (código, estrutura repetitiva), onde o modelo rascunho acerta com mais frequência
- ✓O modelo rascunho precisa compartilhar o mesmo tokenizador e vocabulário do modelo alvo
Como funciona
Um modelo rascunho, muito menor e mais rápido que o modelo alvo, gera uma sequência curta de tokens candidatos. O modelo alvo então avalia toda essa sequência em uma única passagem, aceitando os tokens que coincidem com o que ele teria gerado sozinho e descartando o restante, junto com tudo o que foi gerado após a primeira divergência.
Como verificar vários tokens em paralelo custa aproximadamente o mesmo que gerar um único token sequencialmente no modelo alvo, as propostas aceitas se traduzem diretamente em ganho de velocidade sem alterar a saída final. O modelo alvo sempre tem a palavra final — um chute errado do modelo rascunho custa apenas o (curto) tempo gasto para gerá-lo, nunca é aceito na saída.
Quando a decodificação especulativa ajuda mais
Use decodificação especulativa ao gerar código, dados estruturados ou outro texto previsível, onde os chutes do modelo rascunho são aceitos com alta frequência e o ganho de velocidade é maior. Use-a quando você já estiver limitado pela velocidade de geração, e não pelo processamento do prompt, já que a decodificação especulativa acelera especificamente a etapa de geração token a token.
Evite a decodificação especulativa ao gerar texto muito criativo e imprevisível (ficção aberta, brainstorming), onde os chutes do modelo rascunho são aceitos com menos frequência e o ganho de velocidade diminui — a sobrecarga extra do modelo rascunho pode, no pior caso, anular o ganho. Evite também se você não tiver um modelo menor compatível da mesma família disponível para usar como modelo rascunho.
Configurando um modelo rascunho
O modelo rascunho precisa compartilhar o mesmo tokenizador e vocabulário do modelo alvo — combinar modelos de famílias diferentes (ou até tamanhos diferentes de um modelo cujo vocabulário mudou entre versões) não vai funcionar. A configuração mais comum usa um modelo menor da mesma família do alvo (por exemplo, um modelo de classe 1B como rascunho para um modelo de classe 13B da mesma família).
Várias ferramentas de inferência local (incluindo o llama.cpp) suportam decodificação especulativa nativamente — a configuração normalmente exige apenas especificar o modelo alvo e o modelo rascunho na inicialização, sem mudanças em como você escreve os prompts.