Aproveitando o Cache de Contexto para Otimizar o Uso de LLM de Longa Duração
Descubra como aproveitar o recurso de cache de contexto do Google na API Gemini para otimizar o uso de LLM de longa duração, reduzir o tempo de processamento e os custos. Aprenda os detalhes de implementação e os benefícios potenciais para os desenvolvedores que constroem na API Gemini.
20 de fevereiro de 2025

Desbloqueie o poder dos LLMs de contexto longo com a API Gemini da Google e seu novo recurso de cache de contexto. Descubra como essa solução inovadora pode reduzir significativamente o tempo de processamento, a latência e os custos, facilitando o aproveitamento de grandes conjuntos de dados em suas aplicações de IA. Explore os detalhes práticos de implementação e aprenda a aproveitar efetivamente essa tecnologia revolucionária.
Entenda o Cache e Seus Benefícios
Explore o Processo de Cache
Entenda os Limites e Custos de Token
Implemente o Cache com Exemplos de Código
Gerencie Atualizações e Expiração do Cache
Conclusão
Entenda o Cache e Seus Benefícios
Entenda o Cache e Seus Benefícios
A recente adição do Google de cache de contexto à sua API Gemini visa abordar algumas das principais limitações dos modelos de linguagem de contexto longo (LLMs). Embora os LLMs possam armazenar uma quantidade significativa de informações, eles sofrem de vários problemas:
- Tempo de Processamento Aumentado: Com cada consulta, todo o contexto precisa ser enviado para o LLM, resultando no processamento de uma grande quantidade de dados, o que aumenta o tempo de processamento.
- Alta Latência: As grandes transferências de dados necessárias para cada consulta levam a uma alta latência.
- Custos Mais Altos: Como os provedores de API cobram com base no número de tokens, o aumento da transferência de dados leva a custos mais altos.
O recurso de cache de contexto do Google tenta mitigar esses problemas. Veja como funciona:
- Inicializar o Cache: Você fornece uma instrução do sistema ou um grande contexto (por exemplo, documentos, arquivos de vídeo, arquivos de áudio) que deseja armazenar em cache.
- Identificação do Cache: Cada cache tem um identificador exclusivo, que pode ser considerado o nome do cache, e um parâmetro de "tempo de vida" para determinar a expiração do cache.
- Recuperação do Cache: Quando a API Gemini recebe uma consulta do usuário, ela analisa os conjuntos de dados de cache disponíveis, recupera o cache apropriado e o combina com a consulta do usuário para processamento.
Essa abordagem oferece vários benefícios:
- Tempo de Processamento Reduzido: Ao reutilizar os dados armazenados em cache, o sistema precisa processar apenas a consulta do usuário, reduzindo o tempo de processamento geral.
- Latência Mais Baixa: Enviar apenas a consulta do usuário, em vez de todo o contexto, resulta em uma latência mais baixa.
- Economia de Custos: Reduzir o número de tokens enviados com cada consulta leva a custos mais baixos.
O Google afirma que o uso de cache para até 2.128.000 tokens pode resultar em quase quatro vezes menos custo em comparação com o envio de todo o contexto com cada consulta.
É importante observar que existem algumas limitações e considerações ao usar o cache de contexto:
- Contagem Mínima de Tokens de Entrada: A contagem mínima de tokens de entrada para o cache de contexto é atualmente definida em 32.000 tokens.
- Contagem Máxima de Tokens: O número máximo de tokens que podem ser armazenados em cache é limitado pela janela de contexto máxima do modelo, que é de aproximadamente 2 milhões de tokens para os modelos Gemini Pro e Flash.
- Custo de Armazenamento: Há um custo de armazenamento associado ao conteúdo armazenado em cache, que é de $1 por milhão de tokens por hora.
Explore o Processo de Cache
Explore o Processo de Cache
A recente adição do cache de contexto à API Gemini do Google visa abordar as limitações dos modelos de linguagem de contexto longo. Ao armazenar o contexto em cache, o sistema pode reduzir o tempo de processamento, a latência e os custos associados ao envio de todo o contexto com cada consulta.
O processo de cache funciona da seguinte maneira:
-
Inicializar o Cache: Você fornece uma instrução do sistema ou um grande contexto (por exemplo, documentos, arquivos de vídeo, arquivos de áudio) que deseja armazenar em cache. Cada cache tem um identificador exclusivo e um parâmetro de "tempo de vida" para determinar a expiração do cache.
-
Armazenamento do Cache: O sistema de armazenamento interno da API Gemini, otimizado para rápida recuperação, armazena os dados em cache.
-
Processamento de Consultas: Quando a API Gemini recebe uma consulta do usuário, ela analisa os conjuntos de dados de cache disponíveis, identifica o cache apropriado com base no identificador exclusivo e verifica a validade do cache verificando o parâmetro de "tempo de vida". A API então combina os dados em cache e a consulta do usuário como entrada para processamento.
-
Redução de Custos e Latência: Ao usar dados em cache, o sistema reduz o número de tokens enviados com cada consulta, levando a um menor tempo de processamento e custo. O Google estima que o uso de cache para até 2.128.000 tokens pode resultar em quase quatro vezes menos custo em comparação com o envio de todo o contexto com cada consulta.
-
Custo de Armazenamento: O custo de armazenamento para o conteúdo em cache é de $1 por milhão de tokens por hora. O custo total depende de fatores como a contagem de tokens em cache e o parâmetro de "tempo de vida".
-
Modelos Suportados: O cache de contexto é atualmente suportado pelos modelos Gemini Pro e Gemini Flash.
-
Tokens Mínimos e Máximos: A contagem mínima de tokens de entrada para o cache de contexto é de 32.000 tokens, e o máximo é a janela de contexto máxima do modelo, que é de aproximadamente 2 milhões de tokens para o Gemini Pro e o Gemini Flash.
Entenda os Limites e Custos de Token
Entenda os Limites e Custos de Token
Ao usar o recurso de cache de contexto na API Gemini, existem algumas considerações importantes sobre os limites de tokens e custos:
-
Contagem Mínima de Tokens de Entrada: A contagem mínima de tokens de entrada para o cache de contexto é de 32.000 tokens. Isso significa que você precisará armazenar em cache pelo menos 32.000 tokens para que o recurso funcione.
-
Contagem Máxima de Tokens: O número máximo de tokens que você pode armazenar em cache é a janela de contexto máxima do modelo específico. Para os modelos Gemini Pro e Flash, isso é de aproximadamente 2 milhões de tokens.
-
Custo de Armazenamento: O custo de armazenamento para o conteúdo em cache é de $1 por milhão de tokens por hora. Esse custo é adicional às cobranças regulares de uso da API.
-
Tempo de Vida (TTL): Ao criar um cache, você pode especificar um parâmetro de "tempo de vida" para determinar por quanto tempo o cache deve ser mantido. Se você não fornecer um valor, o padrão é de 1 hora. O TTL mínimo é de 60 segundos.
-
Contagens de Tokens: Ao usar o conteúdo em cache, a contagem total de tokens inclui tanto os tokens em cache quanto os novos tokens de entrada do usuário. Essa contagem de tokens combinada é a que é usada para fins de cobrança.
-
Disponibilidade do Cache: O cache de contexto é atualmente suportado pelos modelos Gemini Pro e Flash.
Implemente o Cache com Exemplos de Código
Implemente o Cache com Exemplos de Código
Para implementar o cache com a API Gemini, precisaremos seguir estas etapas:
-
Instalar os pacotes necessários:
!pip install google-generative-ai-client pdfplumber
-
Importar os módulos necessários:
from google.generative.v1 import GenerativeAIClient from google.generative.v1.types import CachedContent import markdown import pdfplumber
-
Configurar o cliente da API Gemini com sua chave de API do Google:
api_key = "sua_chave_de_api_do_google" client = GenerativeAIClient(credentials=api_key)
-
Carregar o conteúdo do PDF e convertê-lo em uma única string:
with pdfplumber.open("caminho/para/seu/arquivo/pdf.pdf") as pdf: pages = [page.extract_text() for page in pdf.pages] content = "\n".join(pages) print(f"Total de páginas: {len(pages)}") print(f"Total de palavras: {len(content.split())}") print(f"Total de tokens: {len(content.split())}")
-
Criar um objeto de conteúdo em cache e armazená-lo:
cached_content = CachedContent( model_name="gemini-1.5-flash", system_instruction="Você é um especialista em sistemas de rack. Responda às perguntas com base no texto fornecido.", content=content, time_to_live_seconds=7200 # 2 horas ) model = client.from_cached_content(cached_content, name="meu-cache-de-sistema-de-rack")
-
Usar o modelo em cache para responder a perguntas:
queries = [ "O que é um rack? Quais são os principais componentes?", "Como usar o HuggingFace no LangChain? Forneça exemplos de código.", "Como funciona o roteamento no LangChain?" ] for query in queries: response = model.generate_text(prompt=query) print(markdown.markdown(response.generated_text)) print(f"Total de tokens usados: {response.total_tokens}")
-
Gerenciar o cache:
# Atualizar o tempo de vida do cache model.update_cached_content(time_to_live_seconds=14400) # 4 horas # Listar todo o conteúdo em cache cached_contents = client.list_cached_contents() for cached_content in cached_contents: print(f"Nome: {cached_content.name}") print(f"Criado: {cached_content.created_timestamp}") print(f"Expira: {cached_content.expires_timestamp}") # Excluir um conteúdo em cache client.delete_cached_content(name="meu-cache-de-sistema-de-rack")
Este código demonstra como implementar o cache com a API Gemini, incluindo o carregamento de conteúdo de um arquivo PDF, a criação de um objeto de conteúdo em cache, o uso do modelo em cache para responder a perguntas e o gerenciamento do cache (atualização do tempo de vida e exclusão de conteúdo em cache).
Gerencie Atualizações e Expiração do Cache
Gerencie Atualizações e Expiração do Cache
Para gerenciar atualizações e expiração do cache, os seguintes pontos-chave são abordados:
-
Atualizar o Tempo de Vida (TTL) do Cache: Você pode atualizar o TTL de um cache chamando a função
update()
no objeto de cache e fornecendo um novo valor de TTL. Isso permite que você estenda o tempo de expiração do conteúdo em cache. -
Visualizar Metadados do Cache: Embora você não possa recuperar ou visualizar diretamente o conteúdo em cache, você pode acessar os metadados sobre o cache, como o número total de tokens usados, o número de tokens do prompt e o número de tokens candidatos gerados pelo modelo.
-
Listar Conteúdo em Cache: Você pode listar todo o conteúdo em cache que você criou acessando o atributo
cache_contents
do cliente Gemini. Isso mostra os nomes, os horários de criação e os horários de expiração de cada cache. -
Excluir Caches: Se você quiser excluir um cache antes do seu tempo de expiração, você pode chamar a função
delete()
no objeto de cache. Isso removerá o conteúdo em cache do sistema.
Gerenciando as atualizações e a expiração do cache, você pode otimizar o uso do recurso de cache para reduzir custos e melhorar o desempenho ao trabalhar com a API Gemini.
Conclusão
Conclusão
A introdução do cache de contexto na API Gemini do Google é um desenvolvimento significativo que aborda algumas das principais limitações dos modelos de linguagem de contexto longo. Ao permitir que os usuários armazenem em cache grandes quantidades de dados de contexto, a API pode reduzir o tempo de processamento, diminuir a latência e diminuir os custos associados à cobrança baseada em tokens.
O sistema de cache funciona permitindo que os usuários inicializem um cache com um grande conjunto de dados, como documentos, arquivos de vídeo ou arquivos de áudio. Cada cache tem um identificador exclusivo e um parâmetro de tempo de vida, que determina quanto tempo o cache será armazenado. Quando uma consulta do usuário é recebida, a API analisa os caches disponíveis, combina os dados em cache com a consulta do usuário e processa a entrada para gerar uma resposta.
Os benefícios dessa abordagem são duplos. Primeiro, ao enviar apenas a consulta do usuário em vez de todo o contexto, a quantidade de dados transferidos é significativamente reduzida, levando a uma latência mais baixa. Segundo, as economias de custo podem ser substanciais, pois a API cobra por token, e o cache pode reduzir o número de tokens necessários para cada consulta em até quatro vezes.
Embora a implementação atual do cache de contexto na API Gemini tenha algumas limitações, como uma contagem mínima de tokens de entrada de 32.000, é um passo promissor. À medida que a tecnologia amadurece, podemos esperar ver mais melhorias, como requisitos de token mínimo mais baixos e até mesmo latência reduzida.
Em geral, a introdução do cache de contexto na API Gemini é um desenvolvimento bem-vindo que pode beneficiar muito os desenvolvedores que trabalham com modelos de linguagem em larga escala. Ao abordar alguns dos principais desafios, esse recurso tem o potencial de desbloquear novos casos de uso e impulsionar ainda mais a inovação no campo do processamento de linguagem natural.
Perguntas frequentes
Perguntas frequentes