Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Cache KV

Descubra como o KV Cache otimiza modelos Transformer, como LLMs. Saiba como essa técnica reduz a latência de inferência e aumenta a eficiência do Ultralytics .

O KV Cache (Key-Value Cache) é uma técnica de otimização crítica usada principalmente em Modelos de Linguagem de Grande Porte (LLMs) e outras arquiteturas baseadas em transformadores para acelerar latência de inferência e reduzir os custos computacionais. Basicamente, o cache KV armazena as matrizes de chave e valor geradas pelo mecanismo de atenção 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 cada vez que gera um novo token. Esse processo transforma a fluxo de trabalho de geração de texto de uma operação de complexidade quadrática para uma linear, tornando as interações em tempo real com chatbots e agentes de IA .

Mecanismo e benefícios

Num transformador padrão Transformer , gerar a próxima palavra requer 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 em cada etapa. O cache KV resolve isso atuando como um banco de memória.

  • Melhoria na velocidade: Ao recuperar chaves e valores pré-calculados da memória, o sistema acelera drasticamente o motor de inferência. Isso é essencial para aplicações que exigem baixa latência, como inferência em tempo real em bots de atendimento ao cliente.
  • Eficiência de recursos: Embora aumente o uso de memória (VRAM), reduz significativamente a computação (FLOPs) necessária por token. Essa compensação é frequentemente gerenciada por meio de técnicas como quantização de modelos ou paginação, semelhante à forma como os sistemas operativos gerem a RAM.
  • Contexto alargado: A gestão eficiente da cache KV permite que os modelos lidem com uma janela de contexto maior janela de contexto, permitindo-lhes processar documentos longos ou manter conversas coerentes por períodos prolongados.

Aplicações no Mundo Real

A cache KV é um componente fundamental na implementação da IA generativa moderna, mas os seus princípios também se estendem à visão computacional (CV).

  1. Chatbots generativos: serviços como o ChatGPT ou Claude dependem fortemente do cache KV. Quando um utilizador faz uma pergunta complementar, o modelo não relê todo o histórico de chat do zero. Em vez disso, ele anexa a nova entrada aos estados em cache da rodada anterior, permitindo respostas quase instantâneas.
  2. Compreensão do vídeo: No compreensão de vídeo , os modelos processam os quadros sequencialmente. Semelhante aos tokens de texto, as características visuais dos quadros anteriores podem ser armazenadas em cache para ajudar o modelo track ou reconhecer ações sem reprocessar todo o histórico do vídeo. Isso é particularmente relevante para o reconhecimento de ações onde o contexto temporal é crucial.

Gestão eficiente da memória

À medida que os modelos ficam maiores, o tamanho do cache KV pode se tornar um gargalo, consumindo gigabytes de GPU . Os avanços recentes concentram-se na otimização desse armazenamento.

  • PagedAttention: Inspirado na memória virtual dos sistemas operativos, PagedAttention (introduzido pelo vLLM) permite que o cache KV seja armazenado em blocos de memória não contíguos. Isso reduz a fragmentação e permite tamanhos de lote maiores durante o serviço do modelo.
  • Quantização da cache KV: para economizar espaço, os desenvolvedores costumam aplicar quantização de precisão mista ou quantização int8 especificamente aos valores armazenados em cache. Isso reduz o consumo de memória, permitindo que a dispositivos de IA de ponta com RAM limitada executarem modelos capazes.
  • Cache de prompts: uma técnica relacionada em que os estados KV de um prompt de sistema estático (por exemplo, «Você é um assistente de codificação útil») são calculados uma vez e reutilizados em muitas sessões de utilizador diferentes. Esse é um recurso essencial para otimizar a engenharia de prompts em grande escala .

Distinguir conceitos relacionados

É útil diferenciar o KV Cache de outros termos relacionados com cache e otimização:

  • Cache KV vs. Cache instantâneo: O cache KV refere-se normalmente à memória dinâmica, token por token, utilizada durante um único fluxo de geração. O cache instantâneo refere-se especificamente ao armazenamento do estado processado de uma instrução de entrada fixa para ser reutilizada em várias chamadas de inferência independentes.
  • Cache KV vs. Embeddings: Embeddings são representações vetoriais de dados de entrada (texto ou imagens) que capturam o significado semântico. O cache KV armazena as ativações (chaves e valores) derivadas desses embeddings nas camadas de atenção, especificamente para fins de geração de sequências.
  • Cache KV vs. Pesos do modelo: Os pesos do modelo são os parâmetros estáticos aprendidos da rede neural. O cache KV consiste em dados dinâmicos e temporários gerados durante a passagem direta de uma sequência de entrada específica.

Exemplo: Contexto em modelos de visão

Embora o cache KV seja mais conhecido em NLP, o conceito de manutenção de estado aplica-se 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 . Aqui, o rastreador mantém a identidade dos objetos entre os quadros, conceitualmente semelhante à forma como um cache mantém o contexto entre os 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()}")

Os programadores que pretendem gerir conjuntos de dados e implementar modelos otimizados podem utilizar a Ultralytics , que simplifica o pipeline desde a anotação de dados até a implantação eficiente de implantação de modelos. Para aqueles interessados nos mecanismos mais profundos da atenção, bibliotecas como PyTorch fornecem os blocos fundamentais onde esses mecanismos de cache são implementados.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora