Cache sémantique

La mise en cache sémantique améliore les performances des applications en stockant et en comprenant le sens des requêtes similaires.

RÉSUMÉ

La mise en cache sémantique améliore l'efficacité des requêtes en stockant et en récupérant les résultats en fonction du sens plutôt que de correspondances textuelles exactes. Contrairement à la mise en cache traditionnelle, qui repose sur des requêtes identiques, la mise en cache sémantique utilise des plongements vectoriels et la recherche de similarité pour trouver et réutiliser des données pertinentes. Cette technique est particulièrement bénéfique dans les grands modèles de langage (LLM) et les systèmes de génération augmentée par récupération (RAG), où elle réduit les récupérations redondantes, diminue les coûts de calcul et améliore la scalabilité. En mettant en œuvre la mise en cache sémantique, les organisations peuvent améliorer les performances de recherche, optimiser les interactions pilotées par l'IA et fournir des réponses plus rapides et plus intelligentes.

Qu'est-ce que la mise en cache sémantique ?

La mise en cache est importante pour récupérer rapidement des données en stockant temporairement les informations fréquemment consultées dans un emplacement d'accès rapide. Cependant, la mise en cache traditionnelle repose sur des correspondances de requêtes exactes, ce qui la rend inefficace pour les requêtes dynamiques et complexes. La mise en cache sémantique résout ce problème en stockant les résultats en fonction du sens plutôt que de simples correspondances de requêtes exactes. Elle ne stocke pas seulement et ne récupère pas les données brutes, mais permet également aux systèmes de comprendre les relations et le sens des données.

Cette ressource explorera les concepts clés de la mise en cache sémantique, la comparera à la mise en cache traditionnelle, examinera les cas d'utilisation et discutera de son fonctionnement dans les grands modèles linguistiques (LLM) et les systèmes de génération augmentée par récupération (RAG). Continuez à lire pour en savoir plus.

Concepts clés du cache sémantique à connaître

Comprendre les mécanismes de mise en cache qui contribuent à améliorer les performances de la recherche sémantique est essentiel. Voici les principaux concepts à assimiler :

  • Stockage d'incorporations vectorielles Au lieu de mettre en cache les requêtes brutes, systèmes de recherche sémantique stocker des représentations vectorielles des requêtes et des réponses, permettant une récupération rapide basée sur la similarité.
  • Indexation par voisins les plus proches approximatifs (ANN) Cette technique accélère la recherche en identifiant rapidement les résultats mis en cache les plus similaires à une nouvelle requête.
  • Invalidation du cache : Garantit la pertinence des résultats mis en cache en actualisant les entrées obsolètes en fonction des paramètres de durée de vie (TTL) prédéfinis ou des mises à jour de contenu.
  • Mise en cache adaptative : Ajuste dynamiquement le stockage du cache en fonction de la fréquence des requêtes et du comportement de l'utilisateur pour maximiser l'efficacité.
  • Stratégies de mise en cache hybrides : Combine mise en cache basée sur des mots-clés traditionnels avec mise en cache sémantique pour une approche complète et efficace.

La maîtrise de ces concepts permet aux organisations d'offrir des expériences de recherche plus rapides, plus intelligentes et plus rentables.

Mise en cache sémantique par rapport à la mise en cache traditionnelle – Comparaison

Maintenant que nous avons fait un aperçu général de la mise en cache sémantique et examiné les concepts clés, explorons les différences entre la mise en cache sémantique et la mise en cache traditionnelle dans le tableau ci-dessous :

AspectMise en cache sémantiqueMise en cache traditionnelle
Stratégie de mise en cacheStocke les résultats des requêtes en fonction de leur signification et de leur structure.Stocke les résultats exacts de la requête ou les objets complets.
Récupération de donnéesPeut récupérer des résultats partiels et recombiner les données mises en cache pour de nouvelles requêtes.Récupère les données mises en cache uniquement lorsqu'il y a une correspondance exacte.
Hits de cacheProbabilité plus élevée due à la réutilisation partielle du résultat.Réduire si les requêtes ne sont pas identiques.
Fragmentation des donnéesStocke et gère efficacement de petits fragments de données.Stocke des objets ou des réponses entiers, entraînant une redondance.
Flexibilité des requêtesS'adapte aux requêtes similaires en utilisant intelligemment les données mises en cache.Cela ne fait que renvoyer le même résultat de requête.
VitesseOptimisé pour les requêtes structurées, réduisant la charge de la base de données.Rapide pour les requêtes identiques mais moins efficace pour les requêtes dynamiques.
ComplexitéNécessite une décomposition de requêtes et un indexage avancé.Implémentation plus simple avec des recherches clé-valeur directes.
ÉvolutivitéPlus évolutif pour les bases de données complexes avec des requêtes fréquentes.Fonctionne bien pour la mise en cache de contenu statique mais rencontre des difficultés avec les requêtes dynamiques.
Cas d'utilisationOptimisation de requêtes de base de données, recherche sémantique et applications basées sur l'IA.Mise en cache de pages web, mise en cache de réponses d'API et réseaux de diffusion de contenu (CDN).

Comment fonctionne la mise en cache sémantique avec les LLM

Grands modèles linguistiques Utilisez la mise en cache sémantique pour stocker et récupérer les réponses en fonction du sens, et pas seulement des correspondances de texte exactes. Au lieu de vérifier si une nouvelle requête est identique à une requête précédente, la mise en cache sémantique utilise des embeddings (représentations vectorielles) pour trouver des requêtes similaires et réutiliser les réponses stockées.

Voici comment cela fonctionne :

Génération d'incorporations de requêtes

Chaque requête entrante est convertie en plongement vectoriel (une représentation numérique qui capture sa signification sémantique).

Recherche de similarité

Au lieu de rechercher des requêtes identiques, le système utilise des algorithmes ANN pour comparer l'embedding de la nouvelle requête à ceux stockés dans le cache. Cela permet au cache de retourner résultats sémantiquement similaires, même si la formulation diffère légèrement.

Stockage de cache

Les entrées mises en cache incluent généralement la requête d'origine, son embedding et la réponse du modèle. Des métadonnées telles que des horodatages ou la fréquence d'utilisation peuvent également être stockées pour gérer l'expiration et la pertinence.

Récupération du cache

Lorsqu'une nouvelle requête arrive, le système effectue une vérification de similarité. Si une requête suffisamment similaire est trouvée dans le cache (basée sur un seuil de similarité), la réponse stockée est renvoyée instantanément.

Invalidation et actualisation du cache

Pour garantir l'exactitude, les données mises en cache sont périodiquement actualisées ou invalidées en fonction des politiques TTL, des mises à jour de contenu ou des tendances de données changeantes.

En mettant en cache les réponses aux requêtes sémantiquement similaires, les grands modèles linguistiques peuvent fournir des réponses plus rapides, réduire les coûts de calcul et améliorer la scalabilité. Ceci est particulièrement utile dans les applications avec des requêtes répétitives ou prévisibles.

Comment fonctionne le cache sémantique dans les systèmes RAG

Le caching sémantique améliore l'efficacité dans Systèmes RAG en réduisant les opérations de récupération redondantes et en optimisant les temps de réponse. Au lieu de toujours interroger des sources de connaissances externes (telles que des bases de données vectorielles ou des magasins de documents), la mise en cache sémantique permet au système de réutiliser les réponses générées précédemment en fonction de la similarité des requêtes.

Voici une explication plus détaillée de ce processus :

Intégration de requêtes et mise en correspondance de similarité

Initialement, chaque requête entrante est transformée en un vecteur d'intégration qui capture sa signification sémantique. À partir de là, le système recherche des intégrations similaires dans le cache à l'aide de la recherche ANN.

Succès de cache vs. échec de cache

Succès de cache : Si une requête sémantiquement similaire est trouvée dans un seuil de similarité prédéfini, les documents récupérés mis en cache ou la réponse finale peuvent être utilisés directement, évitant ainsi une étape de récupération coûteuse.

Manque de cache : Si aucune requête similaire n'existe dans le cache, le système effectue une récupération fraîche auprès des sources de connaissances externes, génère une réponse et la stocke dans le cache pour une utilisation future.

Mise en cache des documents récupérés par rapport aux réponses finales

Cache de récupération : Stocke les morceaux récupérés d'une base de données vectorielle, réduisant les requêtes de base de données tout en permettant la génération dynamique de réponses.

Mise en cache des réponses : Stocke la réponse finale générée par le LLM, en ignorant à la fois la récupération et la génération pour les requêtes répétées.

Invalidation et actualisation du cache

Les données mises en cache sont actualisées périodiquement pour éviter des réponses obsolètes, en utilisant des techniques telles que l'expiration TTL, les mises à jour de contenu ou des politiques d'éviction basées sur la popularité comme le Moins Récemment Utilisé (LRU).

Les avantages globaux de la mise en cache sémantique dans les LLM et les systèmes RAG incluent :

  • Éviter la récupération et la génération répétées avec une latence réduite.
  • Réduction des coûts de calcul grâce à la minimisation des requêtes de base de données et à l'inférence LLM.
  • Améliorer la scalabilité pour les applications à volume élevé telles que les chatbots, les moteurs de recherche et assistants de connaissances d'entreprise (ACE).

Cas d'utilisation d'un système de cache sémantique

Un système de cache sémantique améliore l'efficacité en réutilisant les résultats basés sur le sens plutôt que sur des correspondances exactes. Ceci est particulièrement utile dans les applications impliquant le traitement du langage naturel, la recherche et les interactions pilotées par l'IA.

Moteurs de recherche

Google utilise la mise en cache sémantique pour accélérer les recherches en stockant les intégrations des requêtes passées. Lorsque les utilisateurs entrent des recherches similaires, Google récupère les résultats mis en cache au lieu d'effectuer une recherche complète, ce qui améliore le temps de réponse et réduit les coûts de traitement.

Commerce électronique et recherche de produits

Amazon met en cache les plongements de recherche de produits pour suggérer rapidement des articles pertinents. Par exemple, si un utilisateur recherche des “ écouteurs sans fil ”, le système recherche des recherches antérieures similaires et récupère les résultats de la mémoire cache au lieu de interroger à nouveau la base de données.

Systèmes de recommandation

Netflix et Spotify mettent en cache les préférences des utilisateurs et l'historique de visionnage/écoute à l'aide de représentations sémantiques (embeddings). Si deux utilisateurs ont des goûts similaires, le système récupère les recommandations mises en cache plutôt que d'en générer de nouvelles, ce qui optimise les performances et économise des ressources informatiques.

Chatbots et assistants virtuels

ChatGPT et d'autres robots conversationnels d'IA mettent en cache les questions fréquemment posées (FAQ, culture générale, requêtes de codage) pour éviter un traitement redondant par les grands modèles de langage (LLM). Par exemple, si un utilisateur demande : “ Explique la physique quantique ”, une réponse mise en cache peut être utilisée au lieu d'en générer une nouvelle de zéro.

Points clés à retenir

La mise en cache sémantique améliore l'efficacité, la rapidité et la rentabilité dans Systèmes pilotés par l'IA en réutilisant les résultats pertinents au lieu d'effectuer des requêtes redondantes. Dans les applications basées sur le RAG, cela réduit la latence de récupération, optimise les appels aux bases de données et aux API, et améliore l'expérience utilisateur en traitant intelligemment les requêtes paraphrasées. La mise en œuvre d'un cache sémantique avec des bases de données vectorielles, modèles d'incorporation, et les stratégies de mise en cache peuvent considérablement améliorer les performances des chatbots, des moteurs de recherche et des systèmes de connaissances d'entreprise.

Voici des étapes concrètes que vous pouvez suivre pour utiliser la mise en cache sémantique :

  • Intégrer une couche de cache sémantique dans les flux de récupération.
  • Sélectionnez la bonne base de données vectorielle.
  • Ajuster l'expiration du cache.
  • Expérimentez avec la mise en cache hybride (sémantique et par mots-clés).
  • Évaluer l'efficacité du cache à l'aide de requêtes réelles.

Commencer à construire

Consultez notre portail pour développeurs afin d'explorer NoSQL, de parcourir les ressources et de commencer à utiliser les tutoriels.

Utiliser Capella gratuitement

Prenez en main Couchbase en quelques clics. Capella DBaaS est le moyen le plus simple et le plus rapide de démarrer.

Prendre contact

Vous souhaitez en savoir plus sur les offres Couchbase ? Laissez-nous vous aider.