Armazenamento em cache de consultas a LLM para melhorias de desempenho e custo
O que é GPTCache? Você está procurando melhorar o desempenho da sua aplicação de modelo de linguagem grande (LLM) enquanto reduz despesas? Não procure mais do que um cache semântico para armazenar respostas de LLM. O cache de respostas de LLM pode reduzir significativamente o tempo necessário para recuperar dados, reduzir despesas com chamadas de API e melhorar a escalabilidade. Além disso, ao personalizar o cache e monitorar seu desempenho, você pode otimizá-lo para torná-lo mais eficiente. Neste blog, apresentaremos o GPTCache, um cache semântico de código aberto para armazenar respostas de LLM, e forneceremos dicas sobre como implementá-lo para obter os melhores resultados. Continue lendo para saber mais sobre como o cache de consultas LLM pode ajudar você a alcançar melhor desempenho e economia de custos.
Por que usar um cache semântico para armazenar LLMs?
Construir um cache semântico para armazenar respostas de LLM (Large Language Model) pode trazer vários benefícios, como:
- Desempenho aprimorado: Armazenar respostas de LLM em um cache pode reduzir significativamente o tempo necessário para recuperar a resposta, especialmente quando ela foi solicitada anteriormente e já está presente no cache. Armazenar respostas em um cache pode melhorar o desempenho geral da sua aplicação.
- Despesas reduzidas: A maioria dos serviços de LLM cobra taxas com base em uma combinação do número de solicitações e da contagem de tokens. O cache de respostas de LLM pode reduzir o número de chamadas de API feitas ao serviço, traduzindo-se em economia de custos. O cache é particularmente relevante ao lidar com altos níveis de tráfego, onde as despesas com chamadas de API podem ser substanciais.
- Melhor escalabilidade: O cache de respostas de LLM pode melhorar a escalabilidade da sua aplicação ao reduzir a carga sobre o serviço de LLM. O cache ajuda a evitar gargalos e garante que a aplicação possa lidar com um número crescente de solicitações.
- Personalização: Um cache semântico pode ser personalizado para armazenar respostas com base em requisitos específicos, como o tipo de entrada, o formato de saída ou o comprimento da resposta. Isso pode ajudar a otimizar o cache e torná-lo mais eficiente.
- Redução da latência de rede: Um cache semântico localizado mais perto do usuário, reduzindo o tempo necessário para recuperar dados do serviço de LLM. Ao reduzir a latência de rede, você pode melhorar a experiência geral do usuário.
Construir um cache semântico para armazenar respostas de LLM pode trazer vários benefícios, incluindo desempenho aprimorado, despesas reduzidas, melhor escalabilidade, personalização e latência de rede reduzida.
O que é GPTCache?
Ao criar a aplicação de demonstração do ChatGPT, OSS Chat, vimos que ela começou a degradar em desempenho e aumentar as taxas de serviço quanto mais a testávamos. Isso nos fez perceber que precisávamos de um mecanismo de cache para ajudar a combater a degradação do desempenho e o aumento dos custos. Quando começamos a criar essa camada de cache, percebemos que isso poderia ser útil para a comunidade, então decidimos torná-la de código aberto como GPTCache.
GPTCache é uma ferramenta de código aberto projetada para melhorar a eficiência e a velocidade de aplicações baseadas em GPT, implementando um cache para armazenar as respostas geradas por modelos de linguagem. GPTCache permite que os usuários personalizem o cache de acordo com suas necessidades, incluindo opções para funções de incorporação, funções de avaliação de similaridade, local de armazenamento e remoção. Além disso, GPTCache atualmente oferece suporte à interface OpenAI ChatGPT e à interface LangChain.
Embeddings suportados
GPTCache também oferece uma variedade de opções para extrair embeddings de solicitações para busca por similaridade. Além disso, a ferramenta oferece uma interface genérica que oferece suporte a várias APIs de embeddings, permitindo que os usuários escolham aquela que melhor se adapta às suas necessidades. A lista de APIs de embeddings suportadas inclui:
- API de embeddings da OpenAI
- ONNX com o modelo GPTCache/paraphrase-albert-onnx
- API de embeddings da Hugging Face
- API de embeddings da Cohere
- API de embeddings fastText
- API de embeddings SentenceTransformers
Essas opções oferecem aos usuários uma variedade de escolhas para funções de embeddings, que podem afetar a precisão e a eficiência da funcionalidade de busca por similaridade no GPTCache. O GPTCache visa oferecer flexibilidade e atender a uma gama mais ampla de casos de uso ao oferecer suporte a múltiplas APIs.
Armazenamento de Cache
O GPTCache oferece suporte ao armazenamento de respostas em cache em uma variedade de sistemas de gerenciamento de banco de dados. A ferramenta oferece suporte a vários bancos de dados populares, incluindo:
- SQLite
- PostgreSQL
- MySQL
- MariaDB
- SQL Server
- Oracle
Oferecer suporte a bancos de dados populares significa que os usuários podem escolher o banco de dados que melhor atende às suas necessidades, dependendo de desempenho, escalabilidade e custo. Além disso, o GPTCache oferece uma interface universalmente acessível para estender o módulo, permitindo que os usuários adicionem suporte a diferentes sistemas de banco de dados, se necessário.
Opções de Vector Store
O GPTCache oferece suporte a um módulo Vector Store, que ajuda a encontrar as K solicitações mais semelhantes com base nos embeddings extraídos da solicitação de entrada. Essa funcionalidade pode ajudar a avaliar a similaridade entre solicitações. O GPTCache fornece uma interface amigável que oferece suporte a vários vector stores, incluindo Milvus, Zilliz Cloud e FAISS.
Essas opções oferecem aos usuários uma variedade de escolhas para vector stores, que podem afetar a eficiência e a precisão da funcionalidade de busca por similaridade no GPTCache. O GPTCache visa oferecer flexibilidade e atender a uma gama mais ampla de casos de uso ao oferecer suporte a múltiplos vector stores. Também planejamos oferecer suporte a outros bancos de dados vetoriais no curto prazo.
Gerenciamento da Política de Remoção
O Cache Manager no GPTCache controla as operações dos módulos Cache Storage e Vector Store. Quando o cache fica cheio, uma política de substituição determina quais dados remover para abrir espaço para novos dados. Atualmente, o GPTCache oferece suporte a duas opções básicas:
- Política de remoção LRU (Least Recently Used)
- Política de remoção FIFO (First In, First Out)
Ambas são políticas de remoção padrão usadas em sistemas de cache.
Avaliador de Similaridade
O módulo Similarity Evaluator no GPTCache coleta dados do Cache Storage e do Vector Store. Ele usa várias estratégias para determinar a similaridade entre a solicitação de entrada e as solicitações do Vector Store. A similaridade determina se uma solicitação corresponde ao cache. O GPTCache fornece uma interface padronizada para integrar várias estratégias de similaridade e uma coleção de implementações. Essas diferentes estratégias de similaridade permitem que o GPTCache ofereça flexibilidade na determinação de correspondências de cache com base em outros casos de uso e necessidades.
Em Resumo
O GPTCache é um projeto destinado a otimizar o uso de modelos de linguagem em aplicações baseadas em GPT, reduzindo a necessidade de gerar respostas repetidamente do zero e, em vez disso, utilizando uma resposta em cache quando aplicável. O GPTCache é um projeto de código aberto, então confira você mesmo. Adoraríamos ouvir seu feedback, ou você pode até ajudar a contribuir para o projeto!
Saiba Mais
Continue lendo

How to Choose the Best Embedding Model for RAG in 2026: 10 Models Benchmarked
We benchmarked 10 embedding models on cross-modal, cross-lingual, long-document, and dimension compression tasks. See which one fits your RAG pipeline.

Milvus 2.6.x Now Generally Available on Zilliz Cloud, Making Vector Search Faster, Smarter, and More Cost-Efficient for Production AI
Milvus 2.6.x is now GA on Zilliz Cloud, delivering faster vector search, smarter hybrid queries, and lower costs for production RAG and AI applications.

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.



