Génération Augmentée par Cache (CAG)
La Génération Augmentée par Cache (CAG) améliore l’efficacité des grands modèles de langage en préchargeant des connaissances statiques, réduisant la latence et simplifiant l’architecture pour des tâches statiques à faible latence.
Qu’est-ce que la Génération Augmentée par Cache (CAG) ?
La Génération Augmentée par Cache (CAG) est une approche novatrice destinée à améliorer la performance et l’efficacité des grands modèles de langage (LLM) en tirant parti de connaissances préchargées sous forme de caches clé-valeur (KV) pré-calculés.
Contrairement à la Génération Augmentée par Récupération (RAG), qui récupère dynamiquement des connaissances externes pendant l’inférence, la CAG supprime totalement les étapes de récupération en intégrant l’ensemble des connaissances pertinentes directement dans la fenêtre de contexte étendue du modèle avant l’inférence. Cette stratégie de préchargement permet aux LLM de générer des réponses à partir des informations pré-calculées, réduisant ainsi significativement la latence et simplifiant l’architecture du système.
En stockant les connaissances traitées dans un cache clé-valeur, la CAG garantit que le modèle dispose d’un accès immédiat au contexte nécessaire pour répondre aux requêtes. Cette approche est particulièrement avantageuse dans les scénarios où la base de connaissances est statique, relativement petite ou lorsque la faible latence est une priorité.
Comment fonctionne la CAG ?
La CAG s’opère en trois phases principales :
1. Préchargement des connaissances externes
Tous les documents ou jeux de données pertinents sont préchargés dans la fenêtre de contexte du modèle avant l’inférence.
Le contenu préchargé est traité dans un cache clé-valeur (KV), capturant la représentation interne des connaissances par le modèle. Par exemple :
def preprocess_knowledge(model, tokenizer, prompt): input_ids = tokenizer.encode(prompt, return_tensors="pt").to(model.device) past_key_values = DynamicCache() outputs = model(input_ids=input_ids, past_key_values=past_key_values, use_cache=True) return outputs.past_key_values
Cette étape garantit que le modèle a un accès immédiat aux connaissances prétraitées, évitant le besoin de récupération en temps réel.
2. Inférence avec cache pré-calculé
Lorsqu’une requête est émise, le cache KV pré-calculé est combiné à l’entrée de la requête.
Le modèle génère une réponse uniquement à partir des connaissances en cache et de la requête, sans effectuer de calculs supplémentaires pour la récupération de connaissances. Par exemple :
def generate_response(model, query, kv_cache): input_ids = tokenizer.encode(query, return_tensors="pt").to(model.device) output_ids = model(input_ids=input_ids, past_key_values=kv_cache, use_cache=True) return tokenizer.decode(output_ids)
3. Gestion du cache
Au fur et à mesure que de nouvelles requêtes sont traitées, le cache s’agrandit. Un mécanisme de réinitialisation tronque le cache à sa longueur d’origine pour maintenir la performance et garantir que les requêtes suivantes sont évaluées dans le contexte prévu. Exemple de réinitialisation :
def clean_up(kv_cache, original_length): for i in range(len(kv_cache.key_cache)): kv_cache.key_cache[i] = kv_cache.key_cache[i][:, :, :original_length, :] kv_cache.value_cache[i] = kv_cache.value_cache[i][:, :, :original_length, :]
Principaux avantages de la CAG
Faible latence
L’absence de récupération en temps réel permet à la CAG d’offrir des temps de réponse plus rapides que la RAG. Cela la rend idéale pour les applications sensibles au temps.Précision accrue
En préchargeant tous les documents pertinents, la CAG garantit que le modèle traite un jeu de données exhaustif, réduisant le risque de lacunes contextuelles ou d’erreurs de récupération.Architecture simplifiée
Contrairement à la RAG, qui nécessite une chaîne de récupération complexe, l’architecture de la CAG est épurée, réduisant la complexité du système et la maintenance.Efficacité à grande échelle
Une fois les connaissances préchargées et mises en cache, les requêtes suivantes sont traitées avec un minimum de ressources, ce qui rend la CAG efficace pour des requêtes répétées dans le même domaine de connaissances.
Limites de la CAG
Taille de la fenêtre de contexte
La CAG dépend de la fenêtre de contexte du modèle pour précharger les connaissances. Les LLM actuels supportent des fenêtres allant jusqu’à 128 000 jetons, ce qui limite la quantité de connaissances préchargeables.Taille de la base de connaissances
La CAG est mieux adaptée aux bases de connaissances statiques et gérables. Pour des ensembles de données volumineux ou dynamiques, le modèle pourrait ne pas être capable d’intégrer toutes les informations pertinentes dans la fenêtre de contexte.Connaissances statiques
La CAG suppose que la base de connaissances reste inchangée durant l’inférence. Elle est moins efficace pour les cas nécessitant des mises à jour en temps réel ou l’intégration de connaissances dynamiques.Coûts
Les grandes fenêtres de contexte augmentent les coûts informatiques lors du préchargement, rendant la CAG moins économique dans les scénarios impliquant des mises à jour fréquentes ou des changements de la base de connaissances.
Comment la CAG est-elle utilisée ?
Applications pratiques
La CAG est couramment utilisée dans des scénarios où la base de connaissances est statique, de taille gérable et où la faible latence est cruciale :
Chatbots de support client
Exemple : Préchargement des étapes de dépannage usuelles pour des produits logiciels afin de fournir des réponses instantanées aux utilisateurs.
Bénéfice : Élimine les erreurs de récupération et accélère les temps de réponse.Analyse de documents
Exemple : Institutions financières analysant des rapports trimestriels ou cabinets juridiques interrogeant des documents réglementaires.
Bénéfice : Garantit des réponses cohérentes et précises en préchargeant tous les documents pertinents dans le modèle.Assistants de santé
Exemple : Préchargement de directives médicales pour répondre aux questions des patients.
Bénéfice : Maintient la continuité lors de dialogues multi-tours et assure des références exactes.Éducation et formation
Exemple : Répondre aux questions fréquemment posées dans des programmes de formation en entreprise.
Bénéfice : Simplifie le déploiement tout en garantissant la cohérence des réponses.
Comparaisons avec la Génération Augmentée par Récupération (RAG)
Fonctionnalité | CAG | RAG |
---|---|---|
Gestion des connaissances | Précharge les connaissances dans la fenêtre de contexte. | Récupère dynamiquement les connaissances à l’exécution. |
Complexité du système | Simplifiée, pas de pipeline de récupération requis. | Nécessite des composants supplémentaires pour la récupération. |
Latence | Faible, car les étapes de récupération sont éliminées. | Plus élevée due aux processus de récupération en temps réel. |
Scalabilité | Limitée par la taille de la fenêtre de contexte. | S’adapte bien aux ensembles de données volumineux et dynamiques. |
Risques d’erreurs | Pas d’erreurs de récupération. | Vulnérable aux erreurs de récupération et de classement. |
Cas d’usage optimaux | Tâches statiques à faible latence. | Tâches dynamiques, volumineuses ou fréquemment mises à jour. |
Exemples de cas d’utilisation
CAG en action
Systèmes RH
Une entreprise utilise la CAG pour précharger les politiques internes dans le modèle. Les employés peuvent interroger le système pour des directives spécifiques, et les réponses sont générées instantanément.Assistance juridique
Un assistant juridique précharge les lois de référence dans la fenêtre de contexte du modèle pour fournir des réponses rapides aux questions juridiques sans recourir à un système de récupération.Service client
Le chatbot d’un produit SaaS utilise la CAG pour précharger les FAQ et les guides de dépannage, garantissant des interactions client fluides et rapides.
RAG pour les scénarios dynamiques
Agrégation de nouvelles
Une application d’actualités utilise la RAG pour récupérer et résumer les derniers articles, obtenant dynamiquement les informations les plus pertinentes pour les requêtes des utilisateurs.Recherche e-commerce
La RAG est utilisée pour récupérer les détails et la disponibilité des produits depuis un catalogue volumineux et fréquemment mis à jour.Plateformes de recherche
Une plateforme scientifique emploie la RAG pour récupérer des articles et études pertinents depuis de grandes bases de données externes.
Exemple d’implémentation : préchargement des connaissances en Python
L’extrait de code Python suivant montre comment précharger des connaissances dans un modèle pour la CAG :
def preprocess_knowledge(model, tokenizer, prompt):
input_ids = tokenizer.encode(prompt, return_tensors="pt").to(model.device)
past_key_values = DynamicCache()
outputs = model(input_ids=input_ids, past_key_values=past_key_values, use_cache=True)
return outputs.past_key_values
Ce mécanisme de préchargement garantit que le modèle traite les requêtes sans nécessiter de récupération externe, permettant ainsi des performances efficaces et à faible latence.
Quand utiliser la CAG
Bases de connaissances statiques
Idéal lorsque la base de connaissances évolue peu fréquemment.Applications à faible latence
Adapté au support client, à l’éducation ou aux systèmes de santé où des réponses rapides sont requises.Scénarios économiques
Bénéfique lorsque les connaissances préchargées restent cohérentes sur de multiples requêtes, réduisant la charge computationnelle.
La CAG est une alternative efficace à la RAG pour les tâches nécessitant rapidité, simplicité et cohérence. Cependant, elle reste limitée par la taille et la nature statique de la base de connaissances.
Recherches sur la Génération Augmentée par Cache (CAG)
1. Adaptive Contextual Caching for Mobile Edge Large Language Model Service
Auteurs : Guangyuan Liu, Yinqiu Liu, Jiacheng Wang, Hongyang Du, Dusit Niyato, Jiawen Kang, Zehui Xiong
Cet article traite des défis rencontrés lors du déploiement des LLM en périphérie mobile, tels que les ressources informatiques limitées et la forte latence de récupération. Il propose un cadre Adaptive Contextual Caching (ACC), qui utilise l’apprentissage par renforcement profond (DRL) pour optimiser les politiques de remplacement de cache en prenant en compte le contexte utilisateur, la similarité des documents et le coût d’un cache manqué. Les résultats montrent que l’ACC atteint plus de 80 % de taux de hits après 11 épisodes d’entraînement, réduisant significativement la latence de récupération jusqu’à 40 % par rapport aux méthodes traditionnelles. De plus, il minimise la surcharge locale de cache jusqu’à 55 %, le rendant adapté à des services LLM évolutifs et à faible latence dans des environnements à ressources contraintes. Ce travail met en avant le potentiel de l’ACC pour améliorer l’efficacité des systèmes LLM en périphérie.
Lire l’article ici
2. Towards More Economical Context-Augmented LLM Generation by Reusing Stored KV Cache
Auteurs : Hanchen Li, Yuhan Liu, Yihua Cheng, Kuntai Du, Junchen Jiang
Cette étude explore la réutilisation des caches clé-valeur (KV) pour réduire les délais de préremplissage dans les applications LLM, en particulier pour des textes d’entrée répétés. Elle examine la viabilité économique de cette réutilisation lors de l’utilisation de services cloud publics pour le stockage et le traitement. Les auteurs proposent un modèle analytique validé pour évaluer les coûts cloud (calcul, stockage, réseau) du stockage et de la réutilisation des caches KV selon divers paramètres de charge. L’étude montre que la réutilisation de cache KV permet d’économiser du temps et des coûts cloud pour des charges comportant de longs contextes, encourageant ainsi d’autres efforts pour des systèmes LLM contextuellement augmentés plus économiques.
Lire l’article ici
3. MPIC: Position-Independent Multimodal Context Caching System for Efficient MLLM Serving
Auteurs : Shiju Zhao, Junhao Hu, Rongxiao Huang, Jiaqi Zheng, Guihai Chen
Cet article présente MPIC, un système de cache de contexte multimodal indépendant de la position, destiné à résoudre les inefficacités dans l’inférence des grands modèles de langage multimodaux (MLLM). Les systèmes traditionnels recalculent tout le cache KV même pour de légères différences de contexte, ce qui engendre des pertes d’efficacité. MPIC propose un cache indépendant de la position stockant localement ou à distance, et parallélise le calcul et le chargement du cache pendant l’inférence. Les mécanismes intégrés de réutilisation et de recalcul atténuent la dégradation de la précision tout en réduisant jusqu’à 54 % le temps de réponse par rapport aux méthodes existantes. Ce travail met en lumière le potentiel d’amélioration de l’efficacité dans le service des LLM multimodaux.
Lire l’article ici
Questions fréquemment posées
- Qu’est-ce que la Génération Augmentée par Cache (CAG) ?
La Génération Augmentée par Cache (CAG) est une méthode qui améliore la performance des grands modèles de langage (LLM) en préchargeant des connaissances statiques dans un cache clé-valeur (KV) pré-calculé. Contrairement à la Génération Augmentée par Récupération (RAG), qui récupère des connaissances externes à l’exécution, la CAG intègre toutes les informations pertinentes en amont, réduisant la latence et simplifiant l’architecture du système d’IA.
- En quoi la CAG diffère-t-elle de la RAG ?
La CAG précharge toutes les connaissances nécessaires dans la fenêtre de contexte du modèle avant l’inférence et supprime le besoin de récupération en temps réel, assurant ainsi une faible latence. La RAG, à l’inverse, récupère dynamiquement les informations pertinentes lors de l’exécution, ce qui peut introduire des erreurs de récupération et une latence plus élevée, mais convient mieux aux bases de connaissances dynamiques ou fréquemment mises à jour.
- Quels sont les avantages de l’utilisation de la CAG ?
Les principaux avantages de la CAG incluent une faible latence, une précision améliorée grâce à un préchargement exhaustif, une architecture système simplifiée et une efficacité pour les requêtes répétées dans des domaines à connaissances statiques.
- Quelles sont les limites de la CAG ?
La CAG est limitée par la taille maximale de la fenêtre de contexte du modèle (actuellement jusqu’à 128 000 jetons), convient aux bases de connaissances statiques et gérables, et est moins efficace pour les ensembles de données dynamiques ou les scénarios nécessitant des mises à jour fréquentes. Les grandes fenêtres de contexte peuvent également augmenter les coûts informatiques lors du préchargement.
- Où la CAG est-elle la plus utile ?
La CAG est idéale pour des applications statiques et à faible latence telles que les chatbots de support client, l’analyse de documents, les assistants de santé, les FAQ éducatives, les questions sur les politiques RH et les assistants juridiques—partout où la base de connaissances évolue peu et où des réponses instantanées sont nécessaires.
Commencez à construire des workflows IA efficaces
Découvrez la puissance de la CAG et d’autres outils d’IA avec FlowHunt. Planifiez une démo pour voir comment des solutions à faible latence, augmentées par cache, peuvent transformer votre entreprise.