Cache KV
Memória que guarda as chaves e valores de atenção de cada token já processado, para que o modelo não os recalcule a cada novo token de saída. Vive na VRAM e cresce com o comprimento do contexto e a concorrência.
O que é
Para gerar o token N, um modelo atende aos tokens 1..N-1. Sem cache, reprocessaria toda a sequência a cada passo. O cache KV mantém os tensores intermediários de chave/valor desses tokens na VRAM, então cada novo token só precisa de uma passada para frente sobre si mesmo.
Por que importa
O cache KV é o que torna a decodificação rápida, mas também é o principal que compete com os pesos do modelo pela VRAM. O seu tamanho é aproximadamente 2 × camadas × dim_oculta × tokens_de_contexto × bytes por sequência, então escala linearmente com o comprimento do contexto e com o número de requisições concorrentes.
Impacto em custo e infraestrutura
Num modelo auto-hospedado, o cache KV fixa a quantos usuários você serve ao mesmo tempo numa dada GPU. Contextos longos + alta concorrência podem esgotar a VRAM antes de o cômputo ser o gargalo, forçando uma GPU maior (e mais cara) ou várias GPUs.
Técnicas como a quantização do cache KV, a paged attention e a grouped-query attention existem justamente para reduzir essa pegada.
Exemplo
Para um modelo de 70B, o cache KV pode ficar em ~0,3-0,5 GB por cada 1K tokens de contexto por requisição. Servir 20 usuários concorrentes com 16K de contexto cada um são ~100-160 GB — mais do que uma única H100 de 80 GB comporta junto com os pesos.
Conceitos relacionados
Use no Obolith
Perguntas frequentes
O cache KV é a mesma coisa que o cache de prompt?
Não. O cache KV é memória de GPU transitória usada dentro de uma requisição. O cache de prompt é um recurso de faturamento que reutiliza um prefixo já computado entre chamadas de API distintas.