Descarregamento e Compressão do KV-Cache
Métodos de hardware e algoritmos para o descarregamento temporário do cache de chaves e valores (KV-Cache) da memória de vídeo GPU, de alto custo, para a memória RAM do sistema ou SSDs NVMe rápidos.
1. Visão geral do conceito e o problema sistêmico
Com a chegada de modelos com janelas de contexto de 1–2 milhões de tokens (Gemini 2.0, Claude 3.5/3.7), os engenheiros enfrentaram uma nova crise de infraestrutura:
- Os pesos de um modelo de 70B ocupam 38 GB estáticos de VRAM.
- No entanto, se 4 usuários abrirem sessões com longos contextos de código de 200.000 tokens cada, o tamanho total do seu KV-cache ultrapassa 60 Gigabytes!
- Quando um usuário faz uma pausa de 5 minutos para pensar, seu cache de vários gigabytes continua bloqueando a VRAM inutilmente, impedindo que outros enviem requisições.
KV-Cache Offloading & Compression implementa um gerenciamento dinâmico de memória de inferência em dois ou três níveis: o cache quente permanece na VRAM, o morno fica na RAM do servidor e o frio é descarregado para armazenamento NVMe.
2. Taxonomia arquitetural e modelo mental
┌─────────────────────────────────────────────────────────────┐
│ HIERARQUIA E NÍVEIS DE KV-CACHE │
├─────────────────────────────────────────────────────────────┤
│ NÍVEL 1: VRAM QUENTE (HBM3 na GPU) │
│ • Latência: < 100 ns | Largura de banda: 2–3 TB/s │
│ • Armazena os tokens ativos da geração do ciclo atual │
├─────────────────────────────────────────────────────────────┤
│ ▲ │
│ Offload │ Prefetch │
│ ▼ │
├─────────────────────────────────────────────────────────────┤
│ NÍVEL 2: RAM DO SISTEMA MORNTE (DDR5 no Servidor Host) │
│ • Latência: ~100 µs | Largura de banda: 100–300 GB/s │
│ • Armazena sessões de usuários que aguardam na fila │
├─────────────────────────────────────────────────────────────┤
│ ▲ │
│ Swap │ Restore │
│ ▼ │
├─────────────────────────────────────────────────────────────┤
│ NÍVEL 3: ARMAZENAMENTO NVMe FRIO (SSD PCIe 5.0) │
│ • Latência: ~10 ms | Largura de banda: 10–14 GB/s │
│ • Armazenamento de longo prazo de sessões gigantes de agentes│
└─────────────────────────────────────────────────────────────┘
3. Cenários práticos de engenharia em produção
01. Preservação do estado da sessão noturna do agente
O agente concluiu uma tarefa longa analisando 150 arquivos. Seu estado de contexto (15 GB de KV-cache) é descarregado para um disco NVMe rápido via Litestream/vLLM offload. Quando o engenheiro faz uma pergunta de esclarecimento pela manhã, o cache é carregado em 1 segundo, sem necessidade de reprocessar o prefixo pago dos 150 arquivos.
02. Implementação de KV-cache FP8 no vLLM
Ativação da compressão de cache por hardware com uma única flag:
vllm serve meta-llama/Llama-3.3-70B-Instruct \
--kv-cache-dtype fp8 \
--gpu-memory-utilization 0.90
Isso permite dobrar o número de sessões simultâneas sem adicionar GPUs.
4. Armadilhas, erros comuns e segurança
- PCIe Bottleneck (Gargalo do barramento da placa-mãe): Se o servidor tiver linhas PCIe lentas (por exemplo, PCIe 3.0 ou linhas x4 em vez de x16), o tempo de upload e download do cache pode exceder o tempo de regeneração.
- Ruído de quantização em contextos ultra-longos: Ao comprimir o cache para 4 bits (INT4) em contextos acima de 100k tokens, acumula-se erro, resultando na perda da capacidade do modelo de realizar citações precisas.
5. Conclusão estratégica para o engenheiro de 2026
O offloading e a compressão do KV-cache transformaram as enormes janelas de contexto de uma exotismo caro em uma ferramenta de engenharia acessível. Compreender a hierarquia de memória permite projetar sistemas com contexto de milhões de tokens em servidores moderados.
FAQ: Descarregamento e Compressão do KV-Cache
Termos relacionados
PagedAttention & KV-Cache Management
Algoritmo de gerenciamento de memória da GPU que divide o cache KV do modelo de linguagem em páginas virtuais contínuas (como no kernel do SO), eliminando a fragmentação e aumentando a throughput em 4 vezes.
Janela de Contexto (Context Window)
O volume máximo de tokens que um modelo de linguagem consegue manter simultaneamente no mecanismo Self-Attention e na memória do cache KV durante o processamento de uma única requisição de inferência.
vLLM (Motor de inferência de alto desempenho)
O principal motor de inferência e serventia de LLMs de código aberto, que revolucionou a capacidade de processamento graças ao algoritmo de virtualização de memória PagedAttention e ao batching contínuo.
Volumes NVMe de Scratch Rápidos para Modelos de IA
Otimização do subsistema de armazenamento de servidores de inteligência artificial utilizando unidades locais NVMe (PCIe 5.0) de alta velocidade para carregamento instantâneo de pesos acima de 40 GB e cache de modelos.