Créer des applications LLM avec des réponses 100 fois plus rapides et une réduction drastique des coûts grâce à GPTCache
Cet article a été initialement publié sur ODBMS et est republié ici avec autorisation.
Le magique ChatGPT et d’autres grands modèles de langage (LLMs) ont émerveillé presque tout le monde par leur capacité à comprendre le langage naturel et à répondre à des questions complexes. Par conséquent, de plus en plus de développeurs exploitent les LLMs pour créer des applications intelligentes. Cependant, à mesure que votre application LLM gagne en popularité et connaît une forte hausse du trafic, le coût des appels à l’API LLM augmentera considérablement. Une latence de réponse élevée sera également frustrante, en particulier pendant les périodes de pointe pour les LLMs, affectant directement l’expérience utilisateur.
Dans cet article, je vais présenter une solution pratique aux défis qui entravent l’efficacité et la vitesse des applications LLM : GPTCache. Ce cache sémantique open source peut vous aider à atteindre des vitesses de récupération au moins 100 fois plus rapides et à réduire à zéro vos coûts d’utilisation des services LLM lorsque le cache est atteint.
Principaux défis dans la création d’applications basées sur les LLMs
Avant d’approfondir GPTCache, discutons d’abord de deux défis clés lors de la création d’une application intelligente basée sur les LLMs.
Coûts en forte hausse avec des appels API inutiles
Les applications peuvent exploiter les puissantes capacités d’inférence des LLMs en appelant l’API des LLMs. Cependant, appeler l’API n’est pas gratuit. Si votre application est destinée à la production et dispose d’une large base d’utilisateurs, des appels API fréquents peuvent vous coûter une fortune. De plus, vous pourriez finir par payer pour des appels API inutiles pour des questions sémantiquement identiques auxquelles le LLM a déjà répondu, gaspillant ainsi votre argent et vos ressources.
Faibles performances et évolutivité avec une latence de réponse élevée
Les grands modèles de langage gèrent généralement des charges de travail stupéfiantes. Prenons ChatGPT comme exemple. En juillet 2023, il compte plus de 100 millions d’utilisateurs actifs et a reçu environ un milliard de visites rien qu’en juin. En raison de charges de travail aussi élevées, les LLMs ralentissent leurs réponses, en particulier aux heures de pointe, ce qui ralentit également les applications qui en dépendent.
En outre, les services LLM imposent des limites de débit, restreignant le nombre d’appels API que vos applications peuvent effectuer vers le serveur dans un délai donné. Atteindre une limite de débit signifie que les requêtes supplémentaires seront bloquées jusqu’à ce qu’une certaine période se soit écoulée, entraînant une interruption de service. Ce goulot d’étranglement peut affecter directement l’expérience utilisateur et limiter le nombre de requêtes que votre application peut gérer.
Qu’est-ce que GPTCache ?
GPTCache est un cache sémantique open source conçu pour améliorer l’efficacité et la vitesse des applications basées sur GPT en stockant et en récupérant les réponses générées par les modèles de langage. GPTCache permet aux utilisateurs de personnaliser le cache selon leurs exigences spécifiques, offrant un éventail de choix pour l’embedding, l’évaluation de similarité, l’emplacement de stockage et les politiques d’éviction. En outre, GPTCache prend en charge à la fois l’interface OpenAI ChatGPT et l’interface Langchain, avec des projets de prise en charge de davantage d’interfaces dans les mois à venir.
Comment fonctionne GPTCache ?
En termes simples, GPTCache stocke les réponses des LLMs dans le cache. Par conséquent, lorsque les utilisateurs formulent des requêtes similaires auxquelles les LLMs ont déjà répondu, GPTCache recherche et renvoie les résultats aux utilisateurs sans qu’il soit nécessaire d’appeler à nouveau le LLM. Contrairement aux systèmes de cache traditionnels tels que Redis, GPTCache emploie la mise en cache sémantique, qui stocke et récupère les données au moyen d’embeddings. Il utilise des algorithmes d’embedding pour transformer les requêtes des utilisateurs et les réponses des LLMs en embeddings, puis effectue des recherches de similarité sur ces embeddings à l’aide d’un magasin vectoriel tel que Milvus.
GPTCache comprend six modules principaux : LLM Adapter, Préprocesseur (Gestionnaire de contexte), Générateur d’embeddings, Gestionnaire de cache, Évaluateur de similarité et Postprocesseur.
Adaptateur LLM
L’adaptateur LLM sert d’interface de GPTCache pour les interactions externes. Il convertit les requêtes en protocoles de cache, contrôle le flux de mise en cache et transforme les résultats du cache en réponses LLM. Avec l’adaptateur LLM, l’expérimentation et le test de divers modèles de langage deviennent plus simples, car vous pouvez passer de l’un à l’autre sans réécrire votre code ni apprendre une nouvelle API.
GPTCache prend déjà en charge l’API OpenAI ChatGPT, l’API LangChain, l’API MiniGPT4 et l’API Llamacpp. Notre feuille de route inclut l’ajout de davantage d’API, telles que Hugging Face Hub, Bard et Anthropic.
Préprocesseur
Le préprocesseur gère, analyse et met en forme les requêtes envoyées aux LLM, notamment en supprimant les informations redondantes des entrées, en compressant les informations d’entrée, en coupant les textes longs et en effectuant d’autres tâches connexes.
Générateur d’embeddings
Le générateur d’embeddings convertit les requêtes des utilisateurs en vecteurs d’embedding à l’aide de vos modèles d’embedding préférés. GPTCache prend en charge les modèles locaux de HuggingFace et GitHub ainsi que les services d’embedding dans le cloud pour générer des embeddings. Ceux-ci incluent l’API d’embedding OpenAI, ONNX avec le modèle GPTCache/paraphrase-albert-onnx, l’API d’embedding Hugging Face, l’API d’embedding Cohere, l’API d’embedding fastText et l’API d’embedding SentenceTransformers, ainsi que les modèles Timm pour les embeddings d’images.
Gestionnaire de cache
Le gestionnaire de cache est le module central de GPTCache. Il stocke les requêtes des utilisateurs et les réponses des LLM et se compose de trois composants :
Un magasin de vecteurs pour le stockage des vecteurs d’embedding et les recherches de similarité
Un magasin de cache pour stocker les requêtes des utilisateurs et les réponses LLM correspondantes
Une politique d’éviction pour contrôler la capacité du cache selon la politique d’éviction Least Recently Used (LRU) ou First In, First Out (FIFO).
Actuellement, GPTCache prend en charge SQLite, PostgreSQL, MySQL, MariaDB, SQL Server et Oracle pour le stockage du cache, ainsi que Milvus, Zilliz Cloud et Weaviate pour le stockage et la récupération de vecteurs. Les utilisateurs peuvent choisir le magasin de vecteurs, le magasin de cache et la politique d’éviction qu’ils préfèrent pour répondre à leurs besoins, en équilibrant performances, évolutivité et coûts.
Évaluateur de similarité
L’évaluateur de similarité détermine si la réponse mise en cache correspond à la requête d’entrée. GPTCache offre une interface standardisée qui combine plusieurs stratégies de similarité, permettant aux utilisateurs de personnaliser les correspondances du cache selon leurs besoins et cas d’utilisation spécifiques.
Post-processeur
Le post-processeur prépare la réponse finale à renvoyer à l’utilisateur lorsque le cache est atteint. Si la réponse n’est pas dans le cache, l’adaptateur LLM demande des réponses au LLM et les réécrit dans le gestionnaire de cache.
Avantages de GPTCache
Réduction drastique des coûts des appels à l’API LLM
Les LLM facturent chaque appel d’API. GPTCache aide les développeurs à mettre en cache sémantiquement les réponses LLM pour des questions similaires et posées à plusieurs reprises, réduisant les coûts d’API à zéro si le cache est atteint. GPTCache réduit le nombre global d’appels d’API, diminuant considérablement les coûts. Il est particulièrement bénéfique pour les applications à très fort trafic.
Réponses 100 fois plus rapides
GPTCache peut réduire considérablement le temps de réponse des applications LLM. Pendant les périodes de pointe de ChatGPT, les réponses peuvent prendre jusqu’à plusieurs secondes. Cependant, avec GPTCache, les applications peuvent récupérer des réponses précédemment demandées en moins de 100 millisecondes, ce qui est au moins 100 fois plus rapide.
Évolutivité améliorée
La mise en cache des réponses LLM réduit la charge sur le service LLM, améliorant l’évolutivité de votre application et évitant les goulots d’étranglement lors du traitement d’un nombre croissant de requêtes.
Meilleure disponibilité
Les services LLM imposent souvent des limites de débit, restreignant le nombre de fois où votre application peut accéder au serveur dans un délai spécifique. GPTCache réduit le nombre total d’appels API et permet à votre application de s’adapter rapidement pour gérer un volume croissant de requêtes. Cette approche garantit des performances constantes à mesure que la base d’utilisateurs de votre application augmente.
Pour plus de détails sur la façon dont vous pouvez bénéficier de GPTCache, consultez la page Qu’est-ce que GPTCache.
OSS Chat, un chatbot d’IA utilisant GPTCache et la pile CVP
GPTCache est bénéfique pour la génération augmentée par récupération (RAG), où les applications implémentent une pile CVP (ChatGPT/LLMs+base de données vectorielle+prompt as code) pour des résultats plus précis. OSS Chat, un chatbot d’IA qui peut répondre à des questions sur des projets GitHub, est le meilleur exemple illustrant le fonctionnement de GPTCache et de la pile CVP dans le scénario RAG.
Architecture d’OSS Chat
OSS Chat utilise Towhee, un pipeline d’apprentissage automatique, pour transformer les informations et les pages de documentation associées des projets GitHub en embeddings. Il stocke ensuite les embeddings dans Zilliz Cloud, un service de base de données vectorielle entièrement géré. Lorsqu’un utilisateur pose une question via OSS Chat, Zilliz Cloud recherche les k meilleurs résultats les plus pertinents pour cette requête. Ces résultats sont ensuite combinés avec la question originale pour créer un prompt avec un contexte plus large.
Avant d’envoyer le prompt à ChatGPT, Zilliz Cloud vérifie d’abord les réponses dans GPTCache ; si le cache est atteint, GPTCache renvoie la réponse directement à l’utilisateur. Si le cache est manqué, GPTCache envoie le prompt original à ChatGPT pour obtenir des réponses et le stocke à nouveau dans le cache pour une utilisation future. GPTCache permet à OSS Chat d’offrir une excellente expérience utilisateur avec des coûts plus faibles, une latence de réponse plus basse et moins d’efforts de développement.
Résumé
La création d’applications basées sur les LLMs est une tendance croissante qui profite à tous les acteurs de l’écosystème. Cependant, les développeurs d’applications sont confrontés à deux défis clés : le coût élevé des appels API et la latence de réponse élevée. GPTCache est une solution open source parfaite qui répond à ces défis et offre de nombreux autres avantages, notamment une latence réseau réduite, une disponibilité améliorée et une meilleure scalabilité.
Pour un tutoriel pratique sur la prise en main de GPTCache, veuillez consulter la documentation GPTCache. Vous pouvez poser des questions ou partager vos idées lors de nos heures de permanence communautaires. Vous êtes également invité à contribuer à GPTCache.
Continuer à lire

Zilliz Cloud Enterprise Vector Search Powers High-Performance AI on AWS
Zilliz Cloud on AWS powers secure, scalable, ultra-fast vector search for enterprise AI apps, with BYOC, sub-10ms latency, and zero-DevOps simplicity.

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

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.



