KV Cache
Descobre como o KV Cache otimiza modelos Transformer como LLMs. Aprende como esta técnica reduz a latência de inferência e aumenta a eficiência para o Ultralytics YOLO26.
KV Cache (Key-Value Cache) é uma técnica de otimização crítica usada principalmente em Large Language Models (LLMs) e outras arquiteturas baseadas em Transformer para acelerar a inference latency e reduzir custos computacionais. Em sua essência, o KV cache armazena as matrizes de Key (Chave) e Value (Valor) geradas pelo attention mechanism para tokens anteriores em uma sequência. Ao salvar esses cálculos intermediários, o modelo evita recalcular os estados de atenção para todo o histórico da conversa toda vez que gera um novo token. Esse processo transforma o fluxo de trabalho de text generation de uma operação de complexidade quadrática em uma linear, tornando viáveis as interações em tempo real com chatbots e AI agents.
Link to this sectionMecanismo e Benefícios#
Em um modelo Transformer padrão, gerar a próxima palavra exige prestar atenção a todas as palavras anteriores para compreender o contexto. Sem cache, o modelo precisaria recalcular as relações matemáticas para toda a sequência a cada passo. O KV cache soluciona isso agindo como um banco de memória.
- Melhoria de Velocidade: Ao recuperar chaves e valores pré-calculados da memória, o sistema acelera drasticamente o inference engine. Isso é essencial para aplicações que exigem baixa latência, como real-time inference em bots de atendimento ao cliente.
- Eficiência de Recursos: Embora aumente o uso de memória (VRAM), reduz significativamente o cálculo (FLOPs) necessário por token. Esse compromisso é frequentemente gerenciado por meio de técnicas como model quantization ou paginação, de forma semelhante a como os sistemas operacionais gerenciam a RAM.
- Contexto Estendido: O gerenciamento eficiente do KV cache permite que os modelos lidem com uma context window maior, possibilitando o processamento de documentos longos ou a manutenção de conversas coerentes por longos períodos.
Link to this sectionAplicações no Mundo Real#
O KV cache é um componente fundamental na implementação de IA generativa moderna, mas seus princípios também se estendem à computer vision (CV).
-
Chatbots Generativos: Serviços como ChatGPT ou Claude dependem fortemente de KV caching. Quando um usuário faz uma pergunta de acompanhamento, o modelo não relê todo o histórico do chat do zero. Em vez disso, ele anexa a nova entrada aos estados em cache da interação anterior, permitindo respostas quase instantâneas.
-
Compreensão de Vídeo: Em tarefas de video understanding, os modelos processam quadros sequencialmente. Assim como nos tokens de texto, os recursos visuais de quadros passados podem ser armazenados em cache para ajudar o modelo a rastrear objetos ou reconhecer ações sem reprocessar todo o histórico do vídeo. Isso é particularmente relevante para action recognition, onde o contexto temporal é crucial.
Link to this sectionGerenciamento Eficiente de Memória#
À medida que os modelos crescem, o tamanho do KV cache pode se tornar um gargalo, consumindo gigabytes de memória de GPU. Avanços recentes focam em otimizar esse armazenamento.
- PagedAttention: Inspirado na memória virtual de sistemas operacionais, o PagedAttention (introduzido pelo vLLM) permite que o KV cache seja armazenado em blocos de memória não contíguos. Isso reduz a fragmentação e permite tamanhos de lote maiores durante o model serving.
- Quantização de KV Cache: Para economizar espaço, desenvolvedores frequentemente aplicam mixed precision ou quantização int8 especificamente aos valores em cache. Isso reduz a pegada de memória, permitindo que dispositivos de edge AI com RAM limitada executem modelos capazes.
- Cache de Prompt: Uma técnica relacionada onde os estados KV de um prompt de sistema estático (por exemplo, "Você é um assistente de programação útil") são calculados uma vez e reutilizados em várias sessões de usuário diferentes. Esse é um recurso central para otimizar fluxos de trabalho de prompt engineering em escala.
Link to this sectionDistinguindo Conceitos Relacionados#
É útil diferenciar o KV Cache de outros termos de cache e otimização:
- KV Cache vs. Prompt Caching: O KV Cache refere-se tipicamente à memória dinâmica, token a token, usada durante um único fluxo de geração. O cache de prompt refere-se especificamente ao armazenamento do estado processado de uma instrução de entrada fixa para ser reutilizado em várias chamadas de inferência independentes.
- KV Cache vs. Embeddings: Embeddings são representações vetoriais de dados de entrada (texto ou imagens) que capturam significado semântico. O KV cache armazena as ativações (chaves e valores) derivadas desses embeddings dentro das camadas de atenção, especificamente com o propósito de geração de sequência.
- KV Cache vs. Model Weights: Os pesos do modelo são os parâmetros estáticos aprendidos da rede neural. O KV cache consiste em dados dinâmicos e temporários gerados durante o processamento (forward pass) de uma sequência de entrada específica.
Link to this sectionExemplo: Contexto em Modelos de Visão#
Embora o KV caching seja mais famoso em NLP, o conceito de manter o estado se aplica a modelos de visão avançados. No exemplo abaixo, simulamos a ideia de passar o estado (contexto) em um cenário de rastreamento de vídeo usando Ultralytics YOLO26. Aqui, o rastreador mantém a identidade dos objetos ao longo dos quadros, conceitualmente semelhante a como um cache mantém o contexto ao longo dos tokens.
from ultralytics import YOLO
# Load the Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Track objects in a video, maintaining identity state across frames
# The 'track' mode effectively caches object features to link detections
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=False)
# Print the ID of the tracked objects
if results[0].boxes.id is not None:
print(f"Tracked IDs: {results[0].boxes.id.numpy()}")Desenvolvedores que buscam gerenciar conjuntos de dados e implementar modelos otimizados podem utilizar a Ultralytics Platform, que simplifica o pipeline desde a anotação de dados até a eficiente model deployment. Para aqueles interessados nas mecânicas mais profundas de atenção, bibliotecas como PyTorch fornecem os blocos fundamentais onde esses mecanismos de cache são implementados.






