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

Build for the Boom: Why AI Agent Startups Should Build Scalable Infrastructure Early
Explore strategies for developing AI agents that can handle rapid growth. Don't let inadequate systems undermine your success during critical breakthrough moments.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.



