GPTCACH est un framework open-source pour les applications de modèle de grande langue (LLM) comme ChatGpt. Il stocke les réponses LLM générées précédemment à des requêtes similaires. Au lieu de compter sur le LLM, l'application vérifie le cache d'une réponse pertinente pour vous faire gagner du temps.
Ce guide explore comment fonctionne GPTCache et comment vous pouvez l'utiliser efficacement dans vos projets.
GPTCACH est un système de mise en cache conçu pour améliorer les performances et l'efficacité des modèles de grands langues (LLM) comme GPT-3. Il aide les LLMS à stocker les requêtes précédemment générées pour gagner du temps et des efforts.
Lorsqu'une requête similaire revient, le LLM peut retirer la réponse en cache au lieu d'en développer un nouveau à partir de zéro.
Contrairement à d'autres outils, GPTCache fonctionne sur la mise en cache sémantique. Les caches sémantiques maintiennent l'objectif d'une requête / demande. En conséquence, lorsque les requêtes précédemment stockées sont rappelées, leur résultat réduit la charge de travail du serveur et améliore les taux de réussite du cache.
L'idée principale derrière GPTCache est de stocker et de réutiliser les calculs intermédiaires générés pendant le processus d'inférence d'un LLM. Cela présente plusieurs avantages:
La plupart des LLM facturent des frais spécifiques par demande en fonction du nombre de jetons traités. C’est à ce moment-là que GPTCACH est utile. Il minimise le nombre d'appels API LLM en servant des réponses générées précédemment pour des requêtes similaires. En conséquence, cela permet d'économiser les coûts en réduisant les dépenses d'appels LLM supplémentaires.
La récupération de la réponse d'un cache est sensiblement plus rapide que de la générer à partir de zéro en interrogeant le LLM. Il augmente la vitesse et améliore les temps de réponse. Des réponses efficaces réduisent le fardeau de la LLM elle-même et la libération de l'espace qui peut être allouée à d'autres tâches.
Supposons que vous recherchiez des questions pour votre contenu. Chaque question que vous posez prend des âges pour répondre à l'IA pour répondre. Pourquoi? Étant donné que la plupart des services LLM appliquent les limites de demande dans les périodes définies. Le dépassement de ces limites bloque les demandes supplémentaires jusqu'à ce que la limite se réinitialise, ce qui provoque des interruptions de service.
Chatgpt peut atteindre sa limite de génération de réponse
Pour éviter ces problèmes, Gptchache cache des réponses précédentes à des questions similaires. Lorsque vous demandez quelque chose, il vérifie rapidement sa mémoire et fournit les informations en un flash. En conséquence, vous obtenez votre réponse en moins de temps que d'habitude.
En termes simples, en tirant parti des réponses mises en cache, GPTCache garantit que les applications basées sur LLM deviennent réactives et efficaces - tout comme vous vous attendez de tout outil moderne.
Voici comment vous pouvez installer GPTCache directement:
Installez le package GPTCache en utilisant ce code.
! pip install -q gptcache
Ensuite, importez GPTCache dans votre application.
from gptcache import GPTCache cache = GPTCache() # keep the mode default
c'est tout, et vous avez terminé!
Vous pouvez intégrer GPTCache avec LLMS via son adaptateur LLM. À partir de maintenant, il est compatible avec seulement deux adaptateurs de modèles de langues importants:
Voici comment vous pouvez l'intégrer avec les deux adaptateurs:
Pour intégrer GPTCache à OpenAI, initialisez le cache et importez Openai à partir de gptcache.adapter.
from gptcache import cache from gptcache.adapter import openai cache.init() cache.set_openai_key()
Avant d'exécuter l'exemple de code, définissez la variable d'environnement Openai_API_KEY en exécutant Echo $ openai_api_key.
S'il n'est pas déjà défini, vous pouvez le définir à l'aide d'exportation openai_api_key = votre_api_key sur les systèmes UNIX / Linux / macOS ou définir Openai_API_KEY = votre_API_KEY sur les systèmes Windows.
Ensuite, si vous posez deux questions exactes à chatte, elle récupérera la réponse à la deuxième question du cache au lieu de poser à nouveau de demander Chatgpt.
Voici un exemple de code pour un cache de recherche similaire:
import time def response_text(openai_resp): return openai_resp['choices'][0]['message']['content'] print("Cache loading.....") # To use GPTCache, that's all you need # ------------------------------------------------- from gptcache import cache from gptcache.adapter import openai cache.init() cache.set_openai_key() # ------------------------------------------------- question = "what's github" for _ in range(2): start_time = time.time() response = openai.ChatCompletion.create( model='gpt-3.5-turbo', messages=[ { 'role': 'user', 'content': question } ], ) print(f'Question: {question}') print("Time consuming: {:.2f}s".format(time.time() - start_time)) print(f'Answer: {response_text(response)}\n')
Voici ce que vous verrez dans la sortie:
La deuxième fois, GPT a pris près de 0 secondes pour répondre à la même question
Si vous souhaitez utiliser un autre LLM, essayez l'adaptateur Langchain. Voici comment vous pouvez intégrer GptCahe à Langchain:
from langchain.globals import set_llm_cache from langchain_openai import OpenAI # To make the caching really obvious, lets use a slower model. llm = OpenAI(model_name="gpt-3.5-turbo-instruct", n=2, best_of=2)
Apprenez à créer des applications LLM avec Langchain.
Voyons comment GPTCache peut soutenir vos projets.
LLMS peut devenir inefficace en raison de la complexité inhérente et de la variabilité des requêtes LLM, résultant en un faible taux de succès du cache.
Pour surmonter cette limitation, GPTCACH adopte des stratégies de mise en cache sémantique. Les magasins de mise en cache sémantique sont des requêtes similaires ou connexes - augmentant la probabilité que le cache frappe et améliore l'efficacité globale de mise en cache.
GPTCache exploite des algorithmes d'intégration pour convertir les requêtes en représentations numériques appelées intégres. Ces intérêts sont stockés dans un magasin vectoriel, permettant des recherches de similitudes efficaces. Ce processus permet à GPTCache d'identifier et de récupérer des requêtes similaires ou connexes à partir du stockage du cache.
Avec sa conception modulaire, vous pouvez personnaliser les implémentations de cache sémantique en fonction de vos exigences.
Cependant, parfois de faux coups de cache et des manquements de cache peuvent se produire dans un cache sémantique. Pour surveiller ces performances, GPTCache fournit trois mesures de performance:
Tous les éléments de données de base comme les requêtes initiales, les invites, les réponses et les horodatages d'accès sont stockés dans un «gestionnaire de données». GPTCache prend actuellement en charge les options de stockage de cache suivantes:
Il ne prend pas encore en charge la base de données «NoSQL», mais elle devrait être incorporée bientôt.
Cependant, GPTCache peut supprimer les données du stockage du cache en fonction d'une limite ou d'un comptage spécifié. Pour gérer la taille du cache, vous pouvez implémenter soit une politique d'expulsion (LRU) la moins récemment utilisée ou une approche de première, première sortie (FIFO).
GPTCACH utilise une fonction «évaluation» pour évaluer si une réponse en cache aborde une requête utilisateur. Pour ce faire, il faut trois entrées:
Vous pouvez également utiliser deux autres fonctions:
Optimisation des performances de GPTCache
1. Clarifier vos invites
Par exemple, utilisez un phrasé cohérent comme "Je ne peux pas me connecter à mon compte". De cette façon, GPTCache reconnaît des problèmes similaires, tels que "Mot de passe oublié" ou "Problèmes de connexion du compte", plus efficacement.
Surveillez les mesures intégrées comme le rapport Hit, le rappel et la latence pour analyser les performances de votre cache. Un ratio de hit plus élevé indique que le cache sert plus efficacement le contenu demandé à des données stockées, vous aidant à comprendre son efficacité.
Pour mettre à l'échelle GPTCACH pour les applications LLM plus grandes, implémentez une approche de cache partagée qui utilise le même cache pour les groupes d'utilisateurs avec des profils similaires. Créez des profils d'utilisateurs et classez-les pour identifier des groupes d'utilisateurs similaires.
Tirer parti d'un cache partagé pour les utilisateurs du même groupe de profil donne de bons rendements concernant l'efficacité et l'évolutivité du cache.
C'est dû au fait que les utilisateurs du même groupe de profil ont tendance à avoir des requêtes connexes qui peuvent bénéficier de réponses en cache. Cependant, vous devez utiliser les bonnes techniques de profilage et de classification des utilisateurs pour regrouper les utilisateurs et maximiser les avantages de la mise en cache partagée avec précision.
Si vous avez du mal avec GPTCache, vous pouvez prendre plusieurs étapes pour résoudre les problèmes.
GPTCache repose sur des réponses de cache à jour. Si les réponses de la LLM sous-jacentes ou l'intention de l'utilisateur changent au fil du temps, les réponses mises en cache peuvent devenir inexactes ou hors de propos.
Pour éviter cela, définissez des temps d'expiration pour les entrées en cache en fonction de la fréquence de mise à jour attendue du LLM et actualisez régulièrement le cache.
Bien que le GPTCache puisse améliorer l'efficacité, une relevée excessive sur les réponses mises en cache peut entraîner des informations inexactes si le cache n'est pas correctement invalidé.
À cette fin, assurez-vous que votre application récupère occasionnellement de nouvelles réponses du LLM, même pour des requêtes similaires. Cela maintient la précision et la qualité des réponses lorsqu'ils traitent des informations critiques ou sensibles au temps.
La qualité et la pertinence de la réponse mise en cache ont un impact sur l'expérience utilisateur. Ainsi, vous devez utiliser les mesures d'évaluation pour évaluer la qualité des réponses mises en cache avant de les servir aux utilisateurs.
En comprenant ces pièges potentiels et leurs solutions, vous pouvez vous assurer que GPTCACH améliore efficacement les performances et la rentabilité de vos applications alimentées par LLM - sans compromettre la précision ou l'expérience utilisateur.
GPTCACH est un outil puissant pour optimiser les performances et la rentabilité des applications LLM. Des stratégies appropriées de configuration, de surveillance et d'évaluation du cache sont nécessaires pour vous assurer d'obtenir des réponses précises et pertinentes.
Si vous êtes nouveau dans les LLM, ces ressources pourraient aider:
Pour initialiser le cache et importer l'API OpenAI, importez OpenAI depuis gptcache.adapter. Cela définira automatiquement le gestionnaire de données pour correspondre au cache exact. Voici comment vous pouvez faire ceci:
! pip install -q gptcache
GPTCache stocke les réponses précédentes dans le cache et récupère la réponse du cache au lieu de faire une nouvelle demande à l'API. Ainsi, la réponse à la deuxième question sera obtenue à partir du cache sans demander à nouveau Chatgpt.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!