Mise en cache des requêtes LLM pour améliorer les performances et les coûts
Qu’est-ce que GPTCache ? Vous cherchez à améliorer les performances de votre application de grand modèle de langage (LLM) tout en réduisant les dépenses ? Ne cherchez pas plus loin qu’un cache sémantique pour stocker les réponses des LLM. La mise en cache des réponses des LLM peut réduire considérablement le temps nécessaire pour récupérer les données, diminuer les dépenses liées aux appels API et améliorer l’évolutivité. De plus, en personnalisant le cache et en surveillant ses performances, vous pouvez l’optimiser afin de le rendre plus efficace. Dans ce blog, nous présenterons GPTCache, un cache sémantique open source pour stocker les réponses des LLM, et fournirons des conseils pour le mettre en œuvre afin d’obtenir les meilleurs résultats. Continuez à lire pour en savoir plus sur la façon dont la mise en cache des requêtes LLM peut vous aider à obtenir de meilleures performances et des économies de coûts.
Pourquoi utiliser un cache sémantique pour stocker des LLM ?
Construire un cache sémantique pour stocker les réponses des LLM (Large Language Model) peut apporter plusieurs avantages, tels que :
- Performances améliorées : Stocker les réponses des LLM dans un cache peut réduire considérablement le temps nécessaire pour récupérer la réponse, en particulier lorsqu’elle a déjà été demandée et qu’elle est déjà présente dans le cache. Stocker les réponses dans un cache peut améliorer les performances globales de votre application.
- Dépenses réduites : La plupart des services LLM facturent des frais basés sur une combinaison du nombre de requêtes et du nombre de tokens. La mise en cache des réponses des LLM peut réduire le nombre d’appels API effectués au service, ce qui se traduit par des économies de coûts. La mise en cache est particulièrement pertinente lorsqu’il s’agit de niveaux de trafic élevés, où les dépenses liées aux appels API peuvent être substantielles.
- Meilleure évolutivité : La mise en cache des réponses des LLM peut améliorer l’évolutivité de votre application en réduisant la charge sur le service LLM. La mise en cache aide à éviter les goulots d’étranglement et garantit que l’application peut gérer un nombre croissant de requêtes.
- Personnalisation : Un cache sémantique peut être personnalisé pour stocker les réponses en fonction d’exigences spécifiques, telles que le type d’entrée, le format de sortie ou la longueur de la réponse. Cela peut aider à optimiser le cache et à le rendre plus efficace.
- Réduction de la latence réseau : Un cache sémantique situé plus près de l’utilisateur, réduisant le temps nécessaire pour récupérer les données depuis le service LLM. En réduisant la latence réseau, vous pouvez améliorer l’expérience utilisateur globale.
Construire un cache sémantique pour stocker les réponses des LLM peut apporter plusieurs avantages, notamment des performances améliorées, des dépenses réduites, une meilleure évolutivité, une personnalisation et une latence réseau réduite.
Qu’est-ce que GPTCache ?
Lors de la création de l’application de démonstration ChatGPT, OSS Chat, nous avons constaté que ses performances commençaient à se dégrader et que les frais de service augmentaient à mesure que nous la testions. Cela nous a fait réaliser que nous avions besoin d’un mécanisme de mise en cache pour aider à lutter contre la dégradation des performances et l’augmentation des coûts. En commençant à construire cette couche de mise en cache, nous avons réalisé que cela pourrait être utile à la communauté, nous avons donc décidé de la publier en open source sous le nom de GPTCache.
GPTCache est un outil open source conçu pour améliorer l’efficacité et la vitesse des applications basées sur GPT en mettant en œuvre un cache pour stocker les réponses générées par les modèles de langage. GPTCache permet aux utilisateurs de personnaliser le cache selon leurs besoins, y compris des options pour les fonctions d’embedding, les fonctions d’évaluation de similarité, l’emplacement de stockage et l’éviction. En outre, GPTCache prend actuellement en charge l’interface OpenAI ChatGPT et l’interface LangChain.
Embeddings pris en charge
GPTCache fournit également une gamme d’options pour extraire des embeddings à partir des requêtes afin d’effectuer une recherche de similarité. En outre, l’outil offre une interface générique qui prend en charge plusieurs API d’embedding, permettant aux utilisateurs de choisir celle qui correspond le mieux à leurs besoins. La liste des API d’embedding prises en charge comprend :
- API d’embedding OpenAI
- ONNX avec le modèle GPTCache/paraphrase-albert-onnx
- API d’embedding Hugging Face
- API d’embedding Cohere
- API d’embedding fastText
- API d’embedding SentenceTransformers
Ces options offrent aux utilisateurs un éventail de choix pour les fonctions d’embedding, ce qui peut affecter la précision et l’efficacité de la fonctionnalité de recherche de similarité dans GPTCache. GPTCache vise à offrir de la flexibilité et à répondre à un plus large éventail de cas d’utilisation en prenant en charge plusieurs API.
Stockage du cache
GPTCache prend en charge le stockage des réponses mises en cache dans divers systèmes de gestion de bases de données. L’outil prend en charge plusieurs bases de données populaires, notamment :
- SQLite
- PostgreSQL
- MySQL
- MariaDB
- SQL Server
- Oracle
La prise en charge de bases de données populaires signifie que les utilisateurs peuvent choisir la base de données qui correspond le mieux à leurs besoins, en fonction des performances, de l’évolutivité et du coût. De plus, GPTCache offre une interface universellement accessible pour étendre le module, permettant aux utilisateurs d’ajouter la prise en charge de différents systèmes de bases de données si nécessaire.
Options de magasin vectoriel
GPTCache prend en charge un module de magasin vectoriel, qui aide à trouver les K requêtes les plus similaires sur la base des embeddings extraits de la requête d’entrée. Cette fonctionnalité peut aider à évaluer la similarité entre les requêtes. GPTCache fournit une interface conviviale qui prend en charge divers magasins vectoriels, notamment Milvus, Zilliz Cloud et FAISS.
Ces options offrent aux utilisateurs un éventail de choix pour les magasins vectoriels, ce qui peut affecter l’efficacité et la précision de la fonctionnalité de recherche de similarité dans GPTCache. GPTCache vise à offrir de la flexibilité et à répondre à un éventail plus large de cas d’utilisation en prenant en charge plusieurs magasins vectoriels. Nous prévoyons également de prendre en charge d’autres bases de données vectorielles à court terme.
Gestion de la politique d’éviction
Le gestionnaire de cache dans GPTCache contrôle les opérations des modules de stockage du cache et de magasin vectoriel. Lorsque le cache devient plein, une politique de remplacement détermine quelles données évincer afin de libérer de l’espace pour de nouvelles données. GPTCache prend actuellement en charge deux options de base :
- Politique d’éviction LRU (Least Recently Used, le moins récemment utilisé)
- Politique d’éviction FIFO (First In, First Out, premier entré, premier sorti)
Ce sont deux politiques d’éviction standard utilisées dans les systèmes de mise en cache.
Évaluateur de similarité
Le module Évaluateur de similarité de GPTCache collecte des données depuis le stockage du cache et le magasin vectoriel. Il utilise diverses stratégies pour déterminer la similarité entre la requête d’entrée et les requêtes provenant du magasin vectoriel. La similarité détermine si une requête correspond au cache. GPTCache fournit une interface standardisée pour intégrer diverses stratégies de similarité ainsi qu’un ensemble d’implémentations. Ces différentes stratégies de similarité permettent à GPTCache d’offrir de la flexibilité pour déterminer les correspondances de cache en fonction d’autres cas d’utilisation et besoins.
En résumé
GPTCache est un projet visant à optimiser l’utilisation des modèles de langage dans les applications basées sur GPT en réduisant la nécessité de générer à répétition des réponses à partir de zéro et en utilisant plutôt une réponse mise en cache lorsque cela s’applique. GPTCache est un projet open source, alors découvrez-le par vous-même. Nous serions ravis de recevoir vos commentaires, ou vous pouvez même aider à contribuer au projet !
En savoir plus
Continuer à lire

Why We Built Vector Lakebase: Rethinking Unstructured Data Architecture for AI
Vector Lakebase: a unified, lake-native data foundation for AI workloads — and an answer to what happens after vector databases succeed.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.

Zilliz Cloud BYOC Upgrades: Bring Enterprise-Grade Security, Networking Isolation, and More
Discover how Zilliz Cloud BYOC brings enterprise-grade security, networking isolation, and infrastructure automation to vector database deployments in AWS



