Costuma-se supor que a decodificação especulativa é rápida porque faz menos trabalho por token. Isso não é verdade. O número total de operações de ponto flutuante (FLOPs) para a mesma sequência, na verdade, aumenta. A aceleração vem de mudar o tipo de trabalho que a GPU realiza.
Decodificar um token por vez geralmente é limitado pela memória. Para cada token, a GPU precisa transmitir todos os parâmetros ativos do modelo, como os 27B parâmetros do Qwen3.5-27B, a partir da memória global. Enquanto isso, grande parte da capacidade de computação fica ociosa. A decodificação em lotes grandes, de milhares de tokens, é o oposto: é limitada pela computação, com a GPU ocupada em operações tensoriais.
A decodificação especulativa usa um modelo rascunho pequeno para propor uma sequência de tokens prováveis, que o modelo grande então verifica em um único passo direto. Com tamanhos de lote baixos, isso transforma computação que seria desperdiçada em progresso. Em vez de executar cinco sequências que avançam um token cada, uma única sequência pode avançar cinco tokens de uma vez, com o mesmo trabalho total.
A técnica tem limites. Se a taxa de aceitação for inferior a 100%, cada token rejeitado é trabalho desperdiçado. Em alta taxa de transferência, quando a GPU já está limitada pela computação, a especulação acrescenta custo sem benefício, por isso o vLLM oferece a configuração --speculative-disable-by-batch-size para desativá-la.
Fonte: Hacker News · Resumido por HeadlinesBriefing