Semantic Caching
Découvre comment la mise en cache sémantique réduit la latence et les coûts de l’IA. Apprends comment elle fonctionne pour les LLM et les pipelines de vision avec un exemple pratique utilisant Ultralytics YOLO26.
La mise en cache sémantique est une technique d’optimisation avancée utilisée principalement dans l’IA générative et pour les grands modèles de langage (LLMs), qui stocke et récupère les réponses en fonction du sens (sémantique) d’une requête plutôt que de son texte exact. En identifiant quand un nouveau prompt pose la même question fondamentale qu’une question ayant déjà reçu une réponse, la mise en cache sémantique évite de réappeler le modèle d’IA, ce qui réduit considérablement le temps de traitement et les coûts d’API.
Fonctionnement de la mise en cache sémantique#
Contrairement à la mise en cache traditionnelle, qui nécessite des correspondances de chaînes de caractères identiques, un cache sémantique convertit les requêtes entrantes en vecteurs numériques de grande dimension appelés embeddings. Lorsqu’un utilisateur envoie un prompt, les systèmes utilisant la mise en cache sémantique Redis ou des magasins en mémoire similaires effectuent une recherche vectorielle pour comparer le nouveau vecteur aux vecteurs précédemment stockés dans une base de données vectorielle.
Cette comparaison repose sur des métriques de distance mathématique, le plus souvent la similarité cosinus. Si le score de similarité entre la nouvelle requête et une requête mise en cache dépasse un seuil prédéfini (par exemple, 0,95), il est enregistré comme un « cache hit ». Le système renvoie instantanément la réponse stockée, en ignorant complètement le moteur d’inférence. Si le score est inférieur au seuil, il s’agit d’un « cache miss », ce qui invite le modèle à générer une nouvelle réponse et à stocker la nouvelle paire embedding-réponse pour les interactions futures. Ce flux de travail est particulièrement efficace dans les architectures cloud modernes pour mettre les applications d’IA à l’échelle.
Applications concrètes#
La mise en cache sémantique est essentielle pour déployer des solutions d’IA économiques dans différents domaines.
- Chatbots de support client : Dans un centre de support informatique, des centaines d’utilisateurs peuvent poser différentes variantes d’une même question (par exemple, « Comment réinitialiser mon mot de passe ? » ou « Étapes en cas d’oubli du mot de passe »). La mise en cache sémantique reconnaît ces intentions comme identiques, ce qui garantit que le modèle ne calcule la réponse qu’une seule fois. Cela réduit considérablement la latence d’inférence et l’utilisation de jetons pour les solutions de gestion d’API.
- Découverte visuelle et RAG : Dans les pipelines multimodaux, les plateformes utilisent l’extraction de caractéristiques pour mettre en cache les embeddings des images de référence. Lorsqu’un utilisateur importe une image pour trouver des éléments visuellement similaires, le système peut récupérer instantanément les résultats mis en cache correspondant sémantiquement, accélérant ainsi considérablement le système de recommandation visuelle sans devoir encoder à plusieurs reprises de grandes entrées visuelles. Les développeurs intègrent fréquemment des outils comme LangChain pour orchestrer ces couches de mise en cache.
Différencier les termes associés à la mise en cache#
Pour comprendre pleinement l’optimisation de l’IA, il est utile de distinguer la mise en cache sémantique des autres formes de gestion de la mémoire :
- Par rapport à la mise en cache des prompts : La mise en cache des prompts consiste à enregistrer les états mathématiques précalculés d’un contexte statique (comme le préfixe d’un long document) pendant une session active afin d’accélérer les requêtes ultérieures. La mise en cache sémantique stocke la sortie textuelle ou visuelle finale d’une interaction complète pour répondre à des intentions entièrement nouvelles, mais identiques.
- Par rapport au cache KV : Le cache KV est un mécanisme de mémoire de bas niveau au sein d’une architecture Transformer qui enregistre les états intermédiaires d’attention pendant la génération de texte jeton par jeton afin de faciliter l’inférence en temps réel. La mise en cache sémantique fonctionne au niveau de la couche applicative et met en cache l’intégralité de l’échange entre l’entrée et la sortie avant même qu’il n’atteigne les couches du modèle.
Simuler la mise en cache sémantique en vision#
L’extrait Python suivant montre comment simuler le mécanisme central d’un cache sémantique à l’aide de PyTorch et du package ultralytics. En calculant la similarité entre une image précédemment mise en cache et une nouvelle image requête à l’aide d’un modèle de classification Ultralytics YOLO26, le système peut déterminer si un passage d’inférence complet est nécessaire.
import torch
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model for embedding generation
model = YOLO("yolo26n-cls.pt")
# Extract the embedding for a previously 'cached' reference image
cached_embed = model.embed("reference_shoe.jpg")[0].flatten()
# Extract the embedding for a new user query image
new_embed = model.embed("user_uploaded_shoe.jpg")[0].flatten()
# Calculate cosine similarity to check for a semantic cache hit
similarity = torch.nn.functional.cosine_similarity(cached_embed, new_embed, dim=0)
# Apply a threshold to determine if the images are semantically equivalent
if similarity > 0.90:
print(f"Cache hit! Similarity: {similarity.item():.2f}. Returning cached response.")
else:
print(f"Cache miss! Similarity: {similarity.item():.2f}. Running full inference.")Pour les équipes qui cherchent à gérer des jeux de données et à déployer des modèles de vision par ordinateur hautement optimisés pouvant s’intégrer facilement à des architectures de mise en cache avancées, l’Ultralytics Platform fournit un environnement intuitif de bout en bout pour entraîner, suivre et servir des modèles à grande échelle.









