IA

    Context Caching e RadixAttention: Otimização de KV-Cache em LLMs

    Como a gestão de KV-Cache, PagedAttention, RadixTree e Prompt Caching reduzem em até 90% os custos de inferência e aceleram o TTFT em sistemas de IA.

    2026-08-2410 minEquipe MaxVision
    CLIP_001 · DJI O4FPV · 4K · 60FPS
    IA · 2026.08.24 · NOVIDADE-REAL

    A inferência de modelos de linguagem encontrou seu limite físico na largura de banda de memória da GPU. O processamento inicial satura os núcleos de cálculo. Em seguida, a geração consome tempo transferindo tensores pela memória HBM.

    Dominar a retenção de cache de chaves e valores (KV-Cache) tornou-se essencial. Técnicas como Automatic Prefix Caching no vLLM e RadixAttention no SGLang cortam custos e eliminam latência em produção.

    Servidor de inferência de IA de alta densidade em rack de datacenter escuro com cabos ópticos e indicador LED carmim iluminado no chassi

    O que é KV-Cache e por que ele governa o consumo de memória

    O KV-Cache armazena os tensores de Chave (Key) e Valor (Value) das camadas de atenção passadas. Esse buffer na VRAM evita recalcular todo o histórico a cada novo token gerado. Sem ele, o custo computacional cresceria de forma quadrática.

    Em modelos autorregressivos baseados em Transformer Decoder, a atenção clássica projeta matrizes entre tokens:

    Attention(Q, K, V) = softmax((Q × K^T) ÷ (√d_k)) × V

    Durante a fase de Decode, o modelo gera um token por vez. Ele projeta apenas o vetor Query do token atual. Para calcular a atenção, ele consulta as Chaves e Valores salvos na memória.

    O consumo de memória cresce linearmente com a janela de contexto e o número de requisições simultâneas. A fórmula exata de dimensionamento em bytes é:

    Memoria_KV = 2 × n_layers × n_kv_heads × d_head × bytes_por_elemento × seq_len × batch_size

    Os termos da fórmula representam camadas (n_layers), cabeças de atenção (n_kv_heads), dimensão interna (d_head) e precisão numérica (bytes_por_elemento). Em precisão BF16, cada elemento ocupa 2 bytes.

    ModeloAtençãoCamadasKV HeadsDimensãoCache por Token (BF16)Cache (128k tokens, 1 batch)
    LLaMA-3-8BGQA328128131.072 bytes (128 KB)16,0 GB
    LLaMA-3-70BGQA808128327.680 bytes (320 KB)40,0 GB
    LLaMA-2-70BMHA80641282.621.440 bytes (2,56 MB)320,0 GB
    DeepSeek-V3 (MLA)Latent611 (compresso)576140.544 bytes (137 KB)17,1 GB

    O Grouped-Query Attention (GQA), documentado no relatório técnico do LLaMA 3, reduziu as cabeças de KV em 8x frente ao Multi-Head Attention. Mesmo assim, 128k tokens no LLaMA-3-70B exigem 40 GB de VRAM dedicados ao cache.

    Em 64 requisições concorrentes de 8k tokens, a demanda atinge 163,8 GB de VRAM. O cache de ativação supera o peso dos próprios parâmetros do modelo quantizado em FP8 (~70 GB).


    O Gargalo Operacional: Prefill Compute-Bound vs. Decode Memory-Bound

    A inferência de LLMs opera em dois regimes computacionais distintos na GPU. O Prefill é limitado por poder de computação, enquanto o Decode é limitado por largura de banda de memória.

    No Prefill (Time-to-First-Token - TTFT), todos os tokens do prompt são processados em paralelo. As matrizes densas operam com alta intensidade aritmética. Os Tensor Cores trabalham próximos de sua capacidade máxima.

    No Decode (Time-per-Output-Token - TPOT), cada novo token surge de forma sequencial. A GPU precisa ler gigabytes de tensores da HBM para a SRAM apenas para produzir uma única unidade lexical.

    O whitepaper da NVIDIA H100 lista 3.350 TFLOPS em FP8, mas sua memória HBM3 entrega 3,35 TB/s de vazão.

    Na decodificação unitária, a intensidade aritmética cai para menos de 1 FLOP por byte transferido. A GPU aguarda os dados cruzarem o barramento.

    Reaproveitar prefixos prontos elimina o prefill redundante. Essa economia preserva a largura de banda da memória para acelerar as respostas ativas de outros usuários.


    PagedAttention e Automatic Prefix Caching no vLLM

    O vLLM resolveu a fragmentação de VRAM criando paginação de memória virtual para tensores de atenção. O PagedAttention divide o KV-Cache em blocos físicos alocados sob demanda.

    Sistemas antigos reservavam blocos contíguos de memória prevendo o tamanho máximo da conversa. Esse formato desperdiçava entre 60% e 80% da VRAM por fragmentação e sobrealocação.

    O estudo de Kwon et al., publicado no ACM SOSP 2023, provou a eficiência de particionar tensores em blocos de 16 ou 32 tokens. A engine mapeia blocos lógicos para endereços físicos dispersos.

    +-------------------------------------------------------------------+
    |               TABELA DE PÁGINAS DO PAGEDATTENTION                 |
    +-------------------------------------------------------------------+
    | Bloco Lógico 0 (Tokens 0..15)   ---> Bloco Físico VRAM #42        |
    | Bloco Lógico 1 (Tokens 16..31)  ---> Bloco Físico VRAM #108       |
    | Bloco Lógico 2 (Tokens 32..47)  ---> Bloco Físico VRAM #15        |
    +-------------------------------------------------------------------+
    

    Com o PagedAttention ativo, o Automatic Prefix Caching (APC) do vLLM calcula hashes encadeados para cada bloco:

    Hash_Bloco_N = SHA256(Hash_Bloco_{N-1} || Tokens_Bloco_N)

    Quando um novo prompt chega com instruções ou documentos já processados, o vLLM consulta a tabela de hashes.

    Havendo casamento exato, o escalonador reutiliza os blocos físicos existentes na VRAM.

    A fase de prefill é descartada para o trecho repetido. A engine inicia a geração quase instantaneamente.

    Ao atingir a capacidade total de VRAM, o vLLM aplica uma política LRU plana, liberando os blocos menos utilizados.


    RadixAttention no SGLang: Estrutura em Árvore e Matching Dinâmico

    O SGLang gerencia o KV-Cache por meio de uma árvore de prefixos compactada (Radix Tree) mantida na GPU. O algoritmo RadixAttention permite reutilizar tensores com granularidade exata de tokens.

    Em fluxos com agentes autônomos, Few-shot e gramáticas JSON, os compartilhamentos raramente ocorrem em múltiplos exatos de 16 tokens.

    O estudo do SGLang (Zheng et al., 2024) provou buscas em tempo $O(L)$, com $L$ sendo a extensão do prefixo.

    Diagrama técnico da arquitetura de árvore RadixTree para prefix caching em LLMs sobre fundo grafite escuro com ramos ativos iluminados em carmim

    A arquitetura do RadixAttention fundamenta-se em quatro capacidades principais:

    • Matching e Forking Nativo: Quando múltiplas respostas partem de um mesmo prompt, a árvore cria novos ramos sem duplicar tensores existentes.

    • Evicção Hierárquica: A liberação de memória ocorre das folhas em direção à raiz. Prefixos centrais de alta frequência permanecem protegidos na GPU.

    • Agendamento Cache-Aware: O agendador direciona requisições com prefixos comuns para a mesma GPU, elevando a taxa de acerto do cache.

    • Retenção Entre Sessões: Os tensores permanecem na árvore após o término da requisição HTTP, atendendo chamadas futuras com latência mínima.

    No LMSYS Chatbot Arena e no GSM8K, o SGLang elevou a vazão entre 2,4x e 5,2x frente a motores tradicionais.

    # Inicialização do servidor SGLang com RadixAttention ativo
    python3 -m sglang.launch_server \
        --model-path meta-llama/Meta-Llama-3-70B-Instruct \
        --tp 4 \
        --mem-fraction-static 0.85 \
        --context-length 32768 \
        --port 30000
    

    Comparativo Técnico: vLLM (APC) vs. SGLang (RadixAttention)

    A escolha entre vLLM e SGLang depende do padrão de tráfego e do nível de ramificação de contexto da aplicação.

    CaracterísticavLLM (Automatic Prefix Caching)SGLang (RadixAttention)
    Estrutura CentralTabela de páginas por hash encadeadoRadix Tree (Árvore compactada de prefixos)
    Unidade de MatchingMúltiplos de blocos fixos (16 ou 32 tokens)Granularidade exata token a token
    Suporte a RamificaçõesLinear com cópia de ponteirosHierárquico nativo na árvore de tensores
    Mecanismo de EvicçãoLRU plano sobre lista de blocosLRU recursivo das folhas para a raiz
    EscalonadorContinuous Batching padrãoCache-Aware Prefix Affinity Scheduling
    Aplicação IdealRAG linear e documentos extensosAgentes, Chat Multi-turn, Few-shot e JSON Schema

    Estratégias Comerciais: Anthropic, Google Gemini e OpenAI

    Os provedores de APIs proprietárias transformaram a retenção de KV-Cache em recursos comerciais com regras específicas de tarifação.

    Ambiente de trabalho de engenharia com terminal exibindo gráficos de latência e consumo de memória sob iluminação suave de estúdio e luminária carmim

    Anthropic Claude: Breakpoints Explícitos e 90% de Desconto

    A Anthropic utiliza pontos de controle declarados no payload via parâmetro cache_control. O desenvolvedor marca blocos estáveis de texto.

    • Estrutura: O desenvolvedor insere {"type": "ephemeral"} em prompts de sistema, bases documentais ou histórico de conversas.

    • Regras: Suporta até 4 pontos de cache por requisição. O bloco mínimo é de 1.024 tokens no Sonnet/Opus e 2.048 tokens no Haiku.

    • Valores: A escrita em cache custa 25% a mais que o input comum (1,25x). As leituras seguintes recebem 90% de desconto (0,10x do preço padrão).

    • Validade: O TTL é de 5 minutos, sendo renovado a cada nova leitura bem-sucedida.

    import anthropic
    
    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-3-5-sonnet-20241022",
        max_tokens=1024,
        system=[
            {
                "type": "text",
                "text": "Você é o especialista técnico da Produtora MaxVision.",
            },
            {
                "type": "text",
                "text": open("base_conhecimento.txt").read(),
                "cache_control": {"type": "ephemeral"},
            },
        ],
        messages=[{"role": "user", "content": "Explique a gestão de VRAM no vLLM."}],
    )
    
    # Métricas de consumo do cache
    usage = response.usage
    print(f"Tokens Gravados: {usage.cache_creation_input_tokens}")
    print(f"Tokens Lidos do Cache: {usage.cache_read_input_tokens}")
    

    Google Gemini: Caching Persistente de Longa Duração

    O Google Cloud Vertex AI e o Google AI Studio adotam objetos persistentes gerenciados por identificador único.

    • Estrutura: O usuário cria um recurso cachedContents com grandes volumes de dados (arquivos de código, livros ou vídeos).

    • Regras: O volume mínimo aceito é de 32.768 tokens (32k).

    • Valores: Tokens cacheados recebem 75% de desconto no processamento. Há cobrança por hora de armazenamento ($4,50/1M tok/h no Pro e $1,00/1M tok/h no Flash).

    • Validade: O TTL padrão é de 1 hora, expansível programaticamente.

    OpenAI: Prompt Caching 100% Automático

    A OpenAI implementou retenção automática e transparente no nível do balanceador de carga.

    • Estrutura: Não exige configuração manual nem parâmetros específicos no payload.

    • Regras: Aplica-se automaticamente a prompts com 1.024 tokens ou mais, avaliados em blocos de 128 tokens.

    • Valores: Desconto direto de 50% no custo dos tokens de entrada cacheados, sem taxa de escrita ou storage.

    • Validade: Os tensores permanecem ativos por períodos de 5 a 10 minutos após o último acesso.


    Simulação de Impacto Financeiro e Latência em Produção

    O uso de cache de contexto produz economias financeiras expressivas em sistemas corporativos com prompts extensos e tráfego contínuo.

    Considere uma operação com 10.000 requisições diárias, prompt base compartilhado de 50.000 tokens e saída média de 500 tokens por chamada.

    Modelo / ProvedorCusto Mensal sem CacheCusto Mensal com CacheEconomia FinanceiraRedução
    Claude 3.5 Sonnet ($3/1M in, $15/1M out)$47.250$6.750$40.500 / mês-85,7%
    OpenAI GPT-4o ($2,50/1M in, $10/1M out)$39.000$20.250$18.750 / mês-48,1%
    Gemini 1.5 Pro ($3,50/1M in, $10,50/1M out)*$108.150$32.640$75.510 / mês-69,8%

    Cálculo do Gemini 1.5 Pro inclui custo de retenção de 50.000 tokens por 720 horas mensais ($162/mês de storage).

    Em latência de resposta, o ganho no Time-to-First-Token é substancial. Em testes com 32.000 tokens de prompt, o TTFT caiu de 4.600 ms para 65 ms. O ganho representa 98,6% de redução no tempo de espera inicial.


    Playbook de Implementação e Boas Práticas de Engenharia

    Garantir alta taxa de acerto no cache exige desenhar prompts com ordenação determinística de conteúdo.

    • Posicionamento Estratégico de Conteúdo: Posicione instruções de sistema, definições de ferramentas e documentos fixos no topo do prompt. Mantenha variáveis de sessão e perguntas dinâmicas sempre no final.

    • Serialização Estrita de JSON: Utilize serializadores determinísticos com chaves ordenadas alfabeticamente em chamadas de ferramentas. Qualquer alteração em espaços ou ordem de campos invalida o cache.

    • Dimensionamento em Múltiplos de Bloco: No vLLM, formate blocos de documentação em múltiplos de 16 ou 32 tokens para evitar fragmentação no último nó.

    • Roteamento com Afinidade de Sessão: Em clusters distribuídos, configure o balanceador com hashing consistente. Direcionar o mesmo usuário ou documento para a mesma GPU maximiza o reuso de memória.

    A otimização de KV-Cache redefine a economia da inferência de IA. A união entre paginação na GPU, árvores de prefixos e descontos comerciais viabiliza sistemas rápidos, econômicos e prontos para escala global.


    Fontes Primárias

    • Meta AI: The Llama 3 Herd of Models. Relatório Técnico Oficial, 2024. Disponível em: arXiv:2407.21783.

    • Kwon, Woosuk et al.: Efficient Memory Management for Large Language Model Serving with PagedAttention. Proceedings of the 29th ACM Symposium on Operating Systems Principles (SOSP '23), 2023. DOI: 10.1145/3575693.3575782 | arXiv:2309.06180.

    • Zheng, Lianmin et al.: SGLang: Efficient Execution of Structured Language Model Programs. UC Berkeley / LMSYS, 2024. Disponível em: arXiv:2312.07104.

    • NVIDIA Corporation: NVIDIA H100 Tensor Core GPU Architecture Whitepaper. Especificações de Microarquitetura e Memória HBM3, 2024. Disponível em: NVIDIA Technical Docs.

    • Anthropic: Prompt Caching in Claude — Developer Documentation & Architecture Overview. 2026. Disponível em: Anthropic Docs.

    • Google Cloud: Context Caching Overview & Gemini API Reference Guide. Google Cloud Vertex AI Documentation, 2026. Disponível em: Google Cloud Documentation.

    • OpenAI: Prompt Caching Guide — OpenAI Platform API Documentation. 2026. Disponível em: OpenAI Platform Docs.

    TAGS
    • IA
    • LLM
    • KV-Cache
    • RadixAttention
    • vLLM
    • SGLang
    • Engenharia de Contexto
    Mascote da MaxVision para contato rápido no WhatsAppFale agora pelo WhatsApp