KV Cache (Key-Value Cache)
Otimização de memória em modelos Transformer que armazena os vetores de chave e valor (Keys and Values) dos tokens já processados na memória rápida da GPU. Permite gerar cada próxima palavra instantaneamente, mas cresce rapidamente em tamanho a cada nova mensagem no chat.
1. Visão geral do conceito e propósito
Ao interagir com um modelo de linguagem, você percebe duas coisas:
- O modelo gera palavras a uma velocidade estável (por exemplo, 40 palavras por segundo). Ele não desacelera ao final de uma resposta longa.
- No entanto, se o diálogo já dura uma hora e o histórico de mensagens ficou muito grande, o software repentinamente lança um erro: «Out of Memory» (memória da placa de vídeo esgotada).
Ambos os fenômenos são causados pelo mesmo mecanismo — KV-кеш (Key-Value Cache).
Do ponto de vista prático, isso é um caderno de memória de curto prazo da IA: para não reler toda a conversa anterior do zero a cada nova palavra gerada, o modelo armazena os resultados matemáticos das palavras já processadas em um buffer ultrarrápido da memória de vídeo.
2. Como o KV-кеш salva a velocidade de geração
SEM CACHE KV (Desaceleração Catastrófica):
Geração da palavra 1 ➔ Calculamos a palavra 1 (1 operação)
Geração da palavra 2 ➔ Recalculamos as palavras 1 e 2 (2 operações)
Geração da palavra 100 ➔ Recalculamos todas as 100 palavras do zero (100 operações!)
... A velocidade cai quase para zero!
─────────────────────────────────────────────────────────────
COM CACHE KV (Velocidade Relâmpago Constante):
As palavras 1..99 já foram calculadas e estão armazenadas no cache KV de memória de vídeo!
Geração da palavra 100 ➔ Cálculo apenas de UM novo token!
⚡ A velocidade permanece igualmente alta da primeira à última palavra.
3. Por que a memória livre da GPU derrete
Muitos usuários ficam surpresos:
- «O modelo pesa 5 GB, minha placa de vídeo tem 8 GB. Por que ela trava após carregar um PDF grande?»
Isso ocorre porque os 3 GB restantes são instantaneamente consumidos pelo KV-кеш:
- Cada token no contexto exige o armazenamento dos vetores Key e Value em cada camada do transformer.
- Se você tiver um documento longo com 32.000 tokens, o tamanho dessa tabela na memória pode superar o peso do próprio modelo!
4. Conclusão prática
Se o seu aplicativo de chat local falha devido à falta de memória, você não precisa necessariamente trocar por um modelo mais fraco: basta limitar o tamanho da janela de contexto (por exemplo, de 32k para 8k tokens) ou limpar o histórico do chat antigo, liberando assim o KV-кеш.
FAQ: KV Cache (Key-Value Cache)
Termos relacionados
Tamanho da Janela de Contexto (Memória da Conversa Atual)
Volume máximo de texto (em tokens) que um modelo de linguagem consegue manter simultaneamente na memória durante uma conversa atual. Define o comprimento dos documentos que podem ser carregados de uma só vez sem perda de conteúdo.
Memória de Vídeo (VRAM) para IA
A memória de vídeo da placa gráfica (Video RAM), onde são carregados os pesos da rede neural e a janela de contexto. É o principal gargalo de hardware: se o modelo não couber na VRAM, ele não será executado ou funcionará dezenas de vezes mais lentamente no processador comum.
Transmissão de texto via SSE (Efeito de máquina de escrever)
Tecnologia de transmissão de tokens gerados para o navegador em tempo real através do protocolo Server-Sent Events (SSE). Cria um efeito de máquina de escrever, eliminando a espera desagradável pela conclusão da resposta completa.