A seguirPróximo guia
Otimização de Cache KV
Técnico
GUIA de IA de linguagem
O cache KV armazena os vetores de chave e valor que um transformador já computou para tokens anteriores, portanto, não é necessário recalculá-los para cada nova palavra que gera.
Ouça este guiaNarrado por IA · ~2 min
Esse é o maior motivo pelo qual a geração de texto é rápida – e o principal motivo pelo qual a memória da GPU é consumida durante longas conversas.
Os transformadores geram texto, um token por vez, e a camada de atenção de cada novo token precisa ser comparada com todos os tokens anteriores. O mecanismo de atenção transforma cada token em um vetor de consulta, chave e valor. Sem armazenamento em cache, gerar o token número 1.000 significaria recalcular chaves e valores para todos os 999 tokens anteriores em cada etapa – trabalho quadrático e um desperdício. O cache KV salva esses vetores de chave e valor depois de serem computados pela primeira vez e os reutiliza, de modo que cada nova etapa calcula apenas vetores para o token mais recente e atende ao cache armazenado. Isso reduz o custo por token do escalonamento com o comprimento da sequência para aproximadamente constante. A compensação é a memória: o cache cresce linearmente com o comprimento do contexto, o número de camadas e as cabeças de atenção, muitas vezes tornando-se o consumidor de memória dominante no serviço de contexto longo.
Acelerar as respostas do chatbot reutilizando chaves/valores armazenados em cache do histórico de conversas em vez de reprocessá-los a cada turno.
Cache de prefixo que compartilha o cache para um longo prompt do sistema entre muitos usuários, reduzindo custos e latência.
O PagedAttention do vLLM gerencia o cache KV em blocos para atender com eficiência muitas solicitações simultâneas em uma GPU.
Quantizando o cache KV para diminuir a precisão para ajustar contextos mais longos na memória limitada da GPU.
À medida que as janelas de contexto se estendem para centenas de milhares de tokens, o cache KV se torna o gargalo central, então a inovação é feroz: quantização do cache para 8 ou 4 bits, políticas de despejo que descartam tokens de baixa importância, compartilhamento de prefixo de solicitação cruzada e descarregamento para CPU ou disco. Mudanças arquitetônicas, como atenção latente de vários cabeçotes, comprimem o próprio cache. Espere o co-projeto contínuo de variantes de atenção e sistemas de memória destinados a servir contextos muito longos de maneira barata e com alto rendimento.
Boletim informativo gratuito
Três histórias verificadas de IA a cada manhã de dia útil, escritas em linguagem simples. Gratuito para sempre, sem anúncios.
Um e-mail a cada dia útil. Cancele a inscrição com um clique. Nunca vendemos ou compartilhamos seu endereço.
Teste você mesmo
Feedback instantâneo sobre cada resposta e um certificado compartilhável com um ID verificável assim que você concluir um curso.
Apoie a educação gratuita em IA. O AI Understanding é uma organização sem fins lucrativos 501(c)(3) — sem anúncios, sem paywall, nunca. Faça uma doação
O cache KV armazena os vetores de chave e valor que um transformador já computou para tokens anteriores, portanto, não é necessário recalculá-los para cada nova palavra que gera. Esse é o maior motivo pelo qual a geração de texto é rápida – e o principal motivo pelo qual a memória da GPU é consumida durante longas conversas.
O cache KV contém os vetores de chave e valor dos tokens anteriores para que a atenção possa reutilizá-los em vez de recomputá-los.
The cache reuses keys and values computed for earlier tokens instead of rebuilding them at every decode step. The new query still attends over cached positions, so attention work and cache memory continue to grow with context length.
O cache cresce com o comprimento da sequência, camadas e cabeçalhos, muitas vezes se tornando o consumidor dominante de memória da GPU em serviços de contexto longo.
A atenção de consulta agrupada e multiconsulta permite que vários cabeçotes de consulta compartilhem menos conjuntos de chave/valor, reduzindo substancialmente o cache.
O pré-preenchimento preenche o cache com o K/V do prompt; decode anexa o K/V de um novo token a cada etapa e reaparece no cache.
Continue aprendendo
Mais guias escolhidos para este tópico
A seguirPróximo guia
Otimização de Cache KV
Técnico