Semantic Caching
Découvre comment la mise en cache sémantique réduit la latence et les coûts liés à l'IA. Apprends comment cela fonctionne pour les LLM et les pipelines de vision avec un exemple pratique Ultralytics YOLO26.
La mise en cache sémantique est une technique d'optimisation avancée utilisée principalement dans l'IA générative (Generative AI) et pour les grands modèles de langage (Large Language Models (LLMs)) qui stocke et récupère des réponses basées sur le sens (sémantique) d'une requête plutôt que sur son texte exact. En identifiant quand une nouvelle invite pose la même question fondamentale qu'une question précédente, la mise en cache sémantique évite d'avoir à réinvoquer le modèle d'IA, réduisant considérablement le temps de traitement et les coûts d'API (API costs).
Link to this sectionComment fonctionne la mise en cache sémantique#
Contrairement à la mise en cache (caching) traditionnelle qui nécessite des correspondances de chaînes identiques, un cache sémantique convertit les requêtes entrantes en vecteurs numériques de haute dimension appelés embeddings. Lorsqu'un utilisateur soumet une invite, les systèmes utilisant la mise en cache sémantique Redis (Redis semantic caching) ou des magasins en mémoire (in-memory stores) similaires effectuent une recherche vectorielle (vector search) pour comparer le nouveau vecteur aux vecteurs précédemment stockés dans une base de données vectorielle (vector database).
Cette comparaison repose sur des métriques de distance mathématiques (mathematical distance metrics), le plus souvent la similarité cosinus (cosine similarity). Si le score de similarité entre la nouvelle requête et une requête 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 entièrement le moteur d'inférence (inference engine). Si le score tombe en dessous du seuil, cela entraîne un "cache miss", incitant 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 très efficace dans les architectures cloud (cloud architectures) modernes pour la mise à l'échelle des applications d'IA.
Link to this sectionApplications concrètes#
La mise en cache sémantique est essentielle pour déployer des solutions d'IA rentables dans divers domaines.
- Chatbots de support client : Dans un bureau de support informatique (IT support desk), des centaines d'utilisateurs peuvent poser des variantes de la même question (par exemple, "Comment réinitialiser mon mot de passe ?" vs "Étapes mot de passe oublié"). La mise en cache sémantique reconnaît ces intentions comme identiques, garantissant que le modèle ne calcule la réponse qu'une seule fois. Cela réduit considérablement la latence d'inférence (inference latency) et l'utilisation de jetons (token usage) pour les solutions de gestion d'API (API management solutions).
- 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 télécharge une image pour trouver des éléments visuellement similaires, le système peut instantanément récupérer les résultats mis en cache correspondants sémantiquement, accélérant rapidement le système de recommandation visuelle sans avoir besoin d'encoder à plusieurs reprises des entrées visuelles volumineuses. Les développeurs intègrent fréquemment des outils comme LangChain pour orchestrer ces couches de mise en cache.
Link to this sectionDifférencier les termes de mise en cache associés#
Pour comprendre pleinement l'optimisation de l'IA, il est utile de distinguer la mise en cache sémantique d'autres formes de gestion de la mémoire (memory management) :
- Vs. Mise en cache d'invite : La mise en cache d'invite implique la sauvegarde des états mathématiques précalculés d'un contexte statique (static context) (comme un long préfixe de document) au cours d'une session active pour 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 servir des intentions totalement nouvelles, mais identiques.
- Vs. Cache KV : Le cache KV est un mécanisme de mémoire de bas niveau au sein d'une architecture Transformer (Transformer) qui enregistre les états d'attention intermédiaires pendant la génération de texte jeton par jeton pour faciliter l'inférence en temps réel (real-time inference). La mise en cache sémantique fonctionne au niveau de la couche application, en mettant en cache l'échange complet entrée-sortie avant même qu'il n'atteigne les couches du modèle.
Link to this sectionSimulation de la mise en cache sémantique en vision#
L'extrait Python suivant montre comment simuler le mécanisme central d'un cache sémantique en utilisant PyTorch et le paquet ultralytics. En calculant la similarité entre une image précédemment mise en cache et une nouvelle image de requête à l'aide d'un modèle de classification Ultralytics YOLO26, le système peut déterminer si une passe d'inférence complète 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 cherchant à gérer des jeux de données et à déployer des modèles de vision par ordinateur hautement optimisés pouvant s'intégrer de manière transparente à des architectures de mise en cache avancées, la plateforme Ultralytics fournit un environnement intuitif de bout en bout pour l'entraînement, le suivi et le service de modèles à grande échelle.






