Prefill

Definição em uma frase: a fase da inferência em que todo o prompt é processado de uma vez, em paralelo, antes do primeiro token ser emitido.

As duas fases

FaseO que fazParalelismoO que limita
Prefillprocessa o prompt inteirototalcálculo — atenção
Decodegera um token por veznenhumbanda de memória — ler pesos + KV cache

Duas métricas:

  • TTFT (time to first token) — dominada pelo prefill. É o que o usuário percebe como “demora pra começar”.
  • Tokens/s (após o primeiro token) — dominada pelo decode, limitado por memória.

Consequências práticas

  • Resposta curta + contexto longo → prefill domina. Otimizar com FlashAttention e reduzir contexto.
  • Resposta longa + contexto curto → decode domina. Otimizar com GQA, quantização, speculative decoding.
  • Aumentar o batch → TTFT sobe (mais sequências competem, mais padding), throughput agregado sobe bastante (custo de memória por passo é compartilhado).

É o compromisso clássico latência × vazão, e é a razão de existir serving dedicado por workload.

Autoavaliação

  1. P: Por que o prefill é limitado por FLOPs e o decode por memória? R: no prefill há tokens simultâneos e operações de matrizes grandes (aritmética intensiva); no decode há 1 token por vez contra um peso de bilhões de parâmetros — quase todo o tempo é espera de memória.
  2. P: Se o usuário reclama de lentidão, por que medir TTFT e tokens/s separadamente? R: porque a solução é completamente diferente em cada um.

Onde vi isso

Ver também


Atualizado em 2026-09-30