KV Cache
Definição em uma frase: armazenamento das projeções de chave e valor dos tokens já processados, para que a decodificação não recalcule o contexto inteiro a cada passo.
O problema
A cada token gerado, o modelo precisa attentionar contra todos os tokens anteriores. Sem cache, e do contexto inteiro seriam recalculados a cada passo:
- tempo:
- memória: recursão de computação em cada passo
O mecanismo
Com cache, guarda-se e de cada camada. A cada passo só se computa do token novo, e attentiona contra o que já está guardado:
O fator 2 vem de K e V. Repare: o custo é linear em , mas o coeficiente depende de camadas, cabeças e dimensão de cabeça — daí o impacto de reduzir cabeças KV.
Consequências de projeto
| Técnica | Efeito no KV cache |
|---|---|
| GQA / MQA (Ainslie et al., 2023) | reduz n_cabeças KV → cache encolhe → decode mais rápido |
| PagedAttention / vLLM (Kwon et al., 2023) | pagina o cache como memória virtual: sem fragmentação + compartilhamento de prefixo |
| Quantização do KV cache | comprime a maior fonte de memória em contexto longo |
Relação com latência
O decode é limitado por banda de memória (ler pesos + KV cache), não por FLOPs. É exatamente por ler cache que reduzir cabeças KV acelera tanto. Ver Prefill para a outra metade do problema.
Autoavaliação
- P: Por que o cache não elimina o custo quadrático da atenção no treino? R: porque o cache existe na inferência. No treino todos os passos são paralelos e o custo quadrático é absorvido pela GPU.
- P: Por que contexto longo estoura memória mesmo num modelo pequeno? R: porque em grande o KV cache, não os pesos, domina o consumo.
Onde vi isso
- Visto em: Nota Técnica - Geração token a token
Ver também
Atualizado em 2026-09-30