Cache de prompt: como reduzir custos de chamadas repetidas
Se o seu aplicativo enviar o mesmo grande pedaço de texto no início de cada solicitação, um longo prompt do sistema, um documento, um conjunto de exemplos, você estará pagando o preço total para reprocessá-lo todas as vezes. O cache imediato permite que o provedor armazene essa parte repetida e cobre muito menos para reutilizá-la. Bem utilizado, ele pode reduzir drasticamente os custos de insumos em cargas de trabalho repetitivas.
O que o cache de prompt realmente faz
Quando um modelo processa sua entrada, a maior parte do trabalho acontece nos tokens de entrada antes de gerar uma única palavra de saída. O cache de prompt salva o estado processado de um prefixo do seu prompt para que um prefixo idêntico não precise ser processado novamente na próxima chamada.
A palavra-chave é prefixo. O cache funciona no início do seu prompt, até o ponto em que o conteúdo começa a diferir. Se os primeiros 5.000 tokens de cada solicitação forem idênticos (digamos, um bloco de instruções fixo mais um documento de referência), esses tokens poderão ser armazenados em cache, enquanto a pergunta exclusiva do usuário no final será processada normalmente.
Por que economiza dinheiro
Os provedores cobram muito menos pelos tokens lidos do cache do que pelos tokens processados recentemente. Uma estrutura comum é que os tokens de entrada armazenados em cache custam uma pequena fração da taxa de entrada normal, geralmente em torno de um décimo, embora o desconto exato varie de acordo com o provedor.
Aqui está um exemplo ilustrativo (taxas inventadas para maior clareza). Suponha que a entrada normalmente custe US$ 3 por milhão de tokens e as leituras em cache custem US$ 0,30 por milhão. Se você enviar um prompt fixo de 10.000 tokens em 1.000 chamadas, processá-lo novamente toda vez custará 10.000 x 1.000 = 10 milhões de tokens x US$ 3 = US$ 30. Com o cache, a primeira chamada paga o preço total e o restante é lido no cache: aproximadamente 10.000 x US$ 3/milhão + 9,99 milhões x US$ 0,30/milhão, perto de US$ 3. Essa é a escala de salvamento que prefixos repetitivos tornam possível.
Geralmente há um custo de gravação e um limite de tempo
O cache não é totalmente gratuito. A maioria dos provedores cobra um pequeno prêmio para escrever conteúdo no cache pela primeira vez, às vezes cerca de 25% acima da taxa de entrada normal para esses tokens. Você recupera isso nas leituras subsequentes, portanto, o armazenamento em cache só compensa quando o mesmo prefixo é reutilizado várias vezes.
Os caches também expiram. Um tempo de vida típico é de alguns minutos de inatividade, com alguns provedores oferecendo retenção mais longa por um custo adicional. Se suas chamadas estiverem muito distantes no tempo, o cache entre elas poderá expirar e você perderá o benefício. O cache recompensa a reutilização intermitente e de alta frequência do mesmo conteúdo.
O cache economiza dinheiro, não espaço de contexto
Um equívoco comum é que um prefixo armazenado em cache de alguma forma é excluído da janela de contexto do modelo, deixando mais espaço para outro conteúdo. Isso não acontece. Os tokens armazenados em cache ainda fazem parte da solicitação e ainda contam para o limite de contexto total do modelo. O provedor os lê de um estado armazenado em vez de reprocessá-los, mas eles ocupam o mesmo orçamento de contexto como se tivessem sido processados recentemente.
O armazenamento em cache reduz o que você paga e quanto tempo você espera para que esses tokens sejam processados. Não aumenta a quantidade de texto que o modelo pode ver de uma vez. Se você estiver atingindo um limite de janela de contexto, o cache não resolverá o problema, você ainda precisará cortar o histórico, resumir ou mover para um modelo com uma janela maior. O cache só ajuda quando seu prompt já cabe.
O mesmo se aplica aos limites de taxa de token por minuto na maioria dos provedores: os tokens armazenados em cache normalmente ainda são contabilizados em sua cota de tokens por minuto, mesmo com desconto no preço. Uma carga de trabalho em cache de alto volume ainda pode ter taxa limitada mesmo que a conta seja pequena, porque o limitador está monitorando contagens de tokens, não de dólares.
Quando vale a pena armazenar em cache
O cache de prompt brilha em padrões específicos:
- Prompts de sistema longos e fixos reutilizado em muitos usuários ou solicitações.
- Perguntas e respostas sobre documentos onde um documento grande é consultado muitas vezes em uma sessão.
- Solicitação de poucos disparos com um grande bloco de exemplos que nunca muda.
- Bots de bate-papo onde os primeiros turnos da conversa permanecem constantes enquanto novos turnos são anexados.
Não vale a pena quando cada solicitação é única, quando seu prefixo fixo é pequeno (algumas centenas de tokens) ou quando as chamadas são raras e distantes umas das outras, então o cache continua expirando.
Como estruturar prompts para armazenamento em cache
A regra de ouro é: coloque o conteúdo estável primeiro, o conteúdo variável por último. Ordene seu prompt de forma que as instruções imutáveis do sistema, o material de referência e os exemplos fiquem na parte superior e a pergunta específica do usuário fique na parte inferior. Como o cache funciona no prefixo compartilhado, qualquer variação próxima ao início interrompe o cache de tudo que vem depois dele.
Evite espalhar valores dinâmicos (carimbos de data/hora, nomes de usuário, IDs aleatórios) na parte inicial do prompt. Mesmo um único caractere alterado no início pode invalidar o cache. Mantenha esses bits dinâmicos no final da solicitação a que pertencem.
Estimando o retorno
Para decidir se o cache ajuda, compare dois números: o tamanho do prefixo fixo em tokens e quantas vezes você o reutiliza na janela do cache. Quanto mais tokens houver no prefixo e mais vezes você o reutilizar, maior será o ganho. Um pequeno prefixo reutilizado duas vezes não economiza quase nada; um prefixo de 20.000 tokens reutilizado centenas de vezes por hora é onde o cache transforma sua conta.
Você pode modelar ambos os cenários na calculadora de custos do LLM comparando uma execução com preço inteiramente de acordo com a taxa de entrada padrão com outra em que a maioria dos tokens de entrada tem preço de acordo com a taxa de cache. Ver os dois totais lado a lado torna a decisão óbvia, e as páginas de comparação de modelos mostram quais provedores publicam preços de tokens em cache.
Continuar aprendendo
Ferramentas relacionadas
Perguntas frequentes
O cache de prompt altera a saída do modelo?
Não. O cache apenas reutiliza o estado de entrada processado para economizar custos e latência. O modelo produz a mesma saída que produziria sem armazenamento em cache, porque os tokens subjacentes são idênticos.
Por quanto tempo um prompt em cache permanece válido?
Varia de acordo com o provedor, mas um padrão comum é alguns minutos de inatividade antes que o cache expire. Alguns provedores oferecem retenção estendida por uma taxa extra. A reutilização frequente mantém o cache aquecido.
Existe algum risco de armazenar dados confidenciais em cache?
O conteúdo armazenado em cache é vinculado à sua conta e usado apenas para atender às suas próprias solicitações repetidas, mas você ainda deve seguir as políticas de dados do seu provedor e evitar armazenar em cache qualquer coisa que não tenha permissão para armazenar.
O cache de prompt permite que eu coloque mais conteúdo na janela de contexto?
Não. Os tokens armazenados em cache ainda contam para o limite de contexto total do modelo e normalmente ainda contam para o limite de taxa de tokens por minuto. O cache reduz o custo e a latência para tokens que já estão dentro do seu orçamento de contexto, mas não expande esse orçamento.
Apenas educacional – não aconselhamento financeiro.