
Definição numa frase
Reutilización de prefijos de entrada ya procesados para reducir latencia o coste cuando el proveedor y la petición lo permiten.
Definição: reutilizar cálculos, não adquirir memórias
A cache de contexto em inteligência artificial é um armazenamento temporário de resultados de processamento que um modelo pode reutilizar para não voltar a calcular determinadas partes de uma entrada. Nos modelos de linguagem, o termo costuma referir-se a dois mecanismos relacionados, mas distintos: a cache KV, que conserva estados internos de atenção durante a geração, e a cache de prefixos ou prompts, que permite aproveitar o processamento de um início idêntico ou coincidente entre pedidos.
O termo «contexto» pode induzir em erro. Aqui, não significa que o sistema tenha incorporado informação no seu conhecimento permanente, nem que se lembre necessariamente de uma conversa depois de esta terminar. Descreve os dados que o modelo processa para responder, juntamente com os resultados intermédios que uma implementação pode manter disponíveis durante algum tempo. A cache reduz trabalho repetido quando se verificam as condições adequadas; por si só, não acrescenta informação nova à resposta.
O mecanismo concreto depende do modelo, do runtime e do serviço. Uma implementação pode disponibilizar métricas de utilização da cache, oferecer controlos para partilhar ou isolar determinados dados, ou não tornar o mecanismo visível para o utilizador. Por isso, «cache de contexto» é uma expressão útil, mas convém especificar que tipo de cache está em causa.
Como funciona a cache KV durante a geração
Num modelo autorregressivo, o texto é gerado token a token: em cada passo, é previsto o token seguinte com base nos anteriores. Para calcular a atenção, o modelo produz representações internas conhecidas como chaves (keys) e valores (values). A cache KV conserva esses tensores relativos aos tokens já processados, para que os passos seguintes os possam reutilizar em vez de voltar a calculá-los todos desde o início.
De forma simplificada, o modelo processa o prompt, calcula os estados necessários e guarda as chaves e os valores correspondentes. Depois, ao gerar um novo token, calcula os estados desse novo passo e consulta também os estados armazenados dos tokens anteriores. A cache cresce enquanto a geração prossegue, dentro dos limites de memória e da estratégia de gestão usada pelo sistema.
Esta descrição diz respeito ao funcionamento geral, não a uma estrutura idêntica em todos os modelos. Há variantes de cache e diferentes estratégias para a gerir, manter ou colocar em vários níveis de memória. Num serviço, também podem existir mecanismos para reutilizar blocos entre pedidos; isso não deve ser automaticamente confundido com a cache KV de uma única sequência.
Ciclo simplificado de uma cache KV
- 01O modelo processa o prompt e calcula estados internos de atenção.
- 02A implementação conserva as chaves e os valores dos tokens processados.
- 03Para produzir o token seguinte, o modelo reutiliza esses estados e calcula o novo passo.
- 04O processo repete-se enquanto houver geração e recursos disponíveis.
Cache de prefixos: reutilização entre pedidos
A cache de prefixos ou prompts aproveita partes iniciais repetidas de diferentes pedidos. Em vez de voltar a calcular o processamento de um prefixo que já está disponível na cache, o sistema pode reutilizar os blocos de estados KV associados a esse prefixo e continuar o cálculo a partir daí. Um servidor pode aplicar esta técnica, por exemplo, quando muitos pedidos partilham instruções iniciais ou um excerto comum de contexto.
A reutilização exige uma correspondência suficiente segundo as regras da implementação. Nos sistemas que organizam a cache em blocos, o prefixo é dividido em blocos e verifica-se se os blocos anteriores coincidem; não basta que dois pedidos tratem do mesmo tema. Alterações no texto, na ordem ou na tokenização podem impedir a correspondência. Outros componentes da configuração também podem ter influência, consoante o sistema.
A cache de prefixos não implica que uma resposta seja guardada para ser simplesmente devolvida. O que se reutiliza é o processamento de uma parte partilhada da entrada; o novo pedido ainda pode incluir conteúdo diferente e exigir cálculos adicionais. A correspondência, a disponibilidade dos blocos e as regras de expiração ou expulsão determinam se há benefício.
Alguns fornecedores descrevem esta função com métricas específicas, como a quantidade de tokens de entrada processados a partir da cache. Essas métricas e as condições de retenção correspondem à implementação documentada: não devem ser extrapoladas para outros fornecedores ou runtimes.
O que é reutilizado e em que situação
| Mecanismo | O que conserva ou reutiliza | Utilização típica | Principal limite |
|---|---|---|---|
| Cache KV de uma geração | Chaves e valores de atenção dos tokens já processados | Continuar uma geração token a token | A sequência e os recursos disponíveis condicionam o tamanho e a utilização |
| Cache de prefixos ou prompts | Estados KV de um prefixo coincidente entre pedidos | Evitar recalcular uma parte repetida das entradas | Só é útil se forem cumpridas as regras de correspondência e os blocos continuarem disponíveis |
| Memória persistente de uma aplicação | Dados que o sistema decide guardar para interações futuras | Recuperar preferências ou informação noutra sessão | É uma função distinta, com regras de armazenamento próprias |
Três exemplos práticos
Os exemplos seguintes descrevem utilizações possíveis do mecanismo; não garantem que uma plataforma específica implemente a cache da mesma forma, nem que produza sempre uma melhoria mensurável.
Conceitos frequentemente confundidos
Cache e janela de contexto não são sinónimos. A janela de contexto é a quantidade de informação que o modelo consegue considerar numa execução, dentro dos limites definidos pelo modelo ou pelo serviço. A cache é um mecanismo para conservar ou reutilizar cálculos. Por si só, uma cache não aumenta a janela, nem permite incluir mais texto do que o sistema suporta.
Cache e memória persistente também não são a mesma coisa. Uma memória de agente ou de aplicação pode guardar informação para a recuperar em interações posteriores, de acordo com as suas regras de conceção. Uma cache de processamento serve para reutilizar resultados intermédios e pode desaparecer, expirar ou ser expulsa. Embora ambas as funções possam armazenar dados temporariamente, têm finalidades diferentes.
A cache KV e a cache de prefixos também não descrevem exatamente a mesma operação. A primeira costuma referir-se aos estados mantidos durante a geração de uma sequência; a segunda, à possibilidade de aproveitar estados de um prefixo partilhado entre pedidos. Um sistema de cache de prefixos pode basear-se em blocos KV, mas o âmbito entre pedidos acrescenta condições de correspondência, gestão e isolamento.
Por fim, reutilizar processamento não é o mesmo que reutilizar o conteúdo textual como uma resposta preparada. Se dois pedidos partilharem um prefixo, a parte comum poderá aproveitar estados internos já calculados. Isso não implica que o texto de saída esteja guardado, que a nova resposta seja idêntica a uma anterior ou que o modelo tenha adquirido compreensão adicional.
Limites, privacidade e operação
A cache não é ilimitada. Os estados KV ocupam memória, e os sistemas de serviço têm de gerir os blocos que mantêm disponíveis. Quando os recursos escasseiam, uma implementação pode expulsar blocos ou aplicar outras estratégias de gestão; uma entrada que antes podia ser reutilizada talvez já não esteja disponível quando chegar outro pedido. A duração efetiva e as regras de expiração não são universais.
A correspondência também é importante. Um prefixo semelhante em termos de significado pode não corresponder para a cache se a sequência de tokens for diferente. Alterações no modelo, no modelo de prompt ou na configuração podem modificar o processamento ou a forma como os prefixos são detetados. Por isso, não se deve presumir que repetir uma instrução garante a reutilização.
A privacidade exige que se consulte a documentação e a configuração do sistema concreto. Convém verificar durante quanto tempo os dados são mantidos na cache, como são isolados os pedidos ou utilizadores, se existem controlos de partição ou invalidação e que métricas são disponibilizadas. A cache partilhada entre pedidos pode trazer questões de isolamento; a documentação de alguns sistemas, por exemplo, alerta para riscos de canal lateral e descreve medidas específicas para os mitigar. Esse aviso não demonstra que todos os serviços tenham o mesmo risco, nem que uma determinada medida esteja disponível em todos eles.
As métricas também precisam de contexto. Um contador de tokens servidos a partir da cache pode descrever a reutilização da entrada, mas, por si só, não permite concluir quanto se poupou em custo ou latência. Esses resultados dependem da API, do hardware, da carga, da configuração e da forma de faturar ou medir. As afirmações quantitativas devem ser atribuídas ao fornecedor e às condições em que foram medidas.
Lista de verificação para avaliar uma cache
- 01Identifique se se trata de cache KV por geração, cache de prefixos entre pedidos ou ambas.
- 02Verifique que elementos têm de coincidir para que os estados sejam reutilizados e que alterações invalidam a correspondência.
- 03Consulte os limites de memória, a expiração, a expulsão e os controlos de isolamento documentados.
- 04Distinga as métricas de tokens na cache das medições de latência, custo ou desempenho.
- 05Consulte separadamente as políticas de retenção da cache e as políticas de memória conversacional ou armazenamento da aplicação.
Conceitos relacionados e critérios práticos
A atenção é o mecanismo do modelo que relaciona partes da sequência; as chaves e os valores são componentes internos utilizados nesse cálculo. Os tokens são as unidades de entrada e saída com que o modelo trabalha. A inferência é o processo de utilizar o modelo para produzir uma saída. A cache KV ajuda a evitar repetir parte do trabalho de atenção, enquanto uma cache de prefixos procura reutilizar o processamento de uma entrada partilhada. Estes conceitos estão relacionados, mas não são intercambiáveis.
Ao ler documentação ou configurar um sistema, comece por perguntar o que é armazenado: estados KV, um prefixo processado, texto conversacional ou outro dado. Depois, procure saber em que âmbito existe a cache — uma geração, uma sessão ou vários pedidos —, quanto tempo dura, o que torna válida uma correspondência e como é gerida a falta de memória. Por fim, distinga os dados medidos pela plataforma das expectativas: reutilizar cálculos pode reduzir trabalho repetido, mas a poupança concreta e a latência dependem das circunstâncias.
Como orientação geral, se o objetivo for continuar uma geração token a token, procure informação sobre cache KV e as respetivas estratégias. Se vários pedidos partilharem um início extenso, consulte a documentação sobre cache de prefixos e as suas regras de correspondência. Se precisar que o sistema recupere dados do utilizador entre sessões, consulte a função de memória persistente ou o armazenamento da aplicação; não presuma que uma cache de contexto o fará.
Critério rápido de decisão
| Necessidade | Conceito a consultar | Pergunta prática |
|---|---|---|
| Evitar recalcular estados numa geração em curso | Cache KV | Que estratégia e limites de memória utiliza o runtime? |
| Reutilizar um prefixo comum entre chamadas | Cache de prefixos ou prompts | O que tem de coincidir e durante quanto tempo ficam os blocos disponíveis? |
| Recuperar preferências ou dados em sessões futuras | Memória persistente ou armazenamento da aplicação | O que é guardado, quem pode aceder-lhe e como é eliminado? |