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.

Vamos construir juntos o futuro da IA!

Comece sua jornada com o futuro do aprendizado de máquina