Comment résoudre les problèmes des contextes longs
(dbreunig.com)- Lors de l’utilisation d’un contexte long, plusieurs problèmes typiques de gestion de l’information peuvent survenir, comme la pollution du contexte, la confusion, les conflits ou la dispersion de l’attention
- La gestion de l’information est au cœur du sujet, et des informations erronées ont un effet directement négatif sur la qualité du résultat
- Parmi les principales réponses, des tactiques comme le RAG, le Tool Loadout, la Context Quarantine, le Pruning, la Summarization et l’Offloading se révèlent efficaces
- Même lorsque la fenêtre de contexte des LLM récents est grande, il faut garder à l’esprit qu’un usage excessif d’informations inutiles provoque encore de vrais problèmes en pratique
- Chacune de ces tactiques aide fortement les concepteurs d’agents à gérer le contexte de manière systématique et à améliorer l’efficacité comme la précision
Problèmes rencontrés avec les contextes longs et résumé
Lorsqu’on utilise un contexte long, les principaux types d’échec pouvant apparaître dans le système sont les suivants
- Pollution du contexte : problème où des hallucinations ou des erreurs sont incluses dans le contexte puis référencées de manière répétée
- Dispersion du contexte : phénomène où le contexte devient si long que le modèle se concentre uniquement sur celui-ci au lieu de s’appuyer sur ses apprentissages initiaux
- Confusion du contexte : situation où des informations inutiles sont ajoutées et conduisent à des réponses de moindre qualité
- Conflit de contexte : cas où des informations ou des outils nouvellement ajoutés entrent en conflit avec les éléments existants
Tous ces problèmes relèvent de la gestion de l’information et, comme le dit l’adage en programmation « Garbage in, garbage out », les informations d’entrée influencent fortement le résultat.
Heureusement, plusieurs tactiques permettent d’atténuer ou de prévenir efficacement ce type de problème
Principales tactiques de gestion du contexte
RAG (Retrieval-Augmented Generation)
- Le RAG consiste à ne fournir au LLM que les informations nécessaires afin d’améliorer la qualité des réponses
- À mesure que la fenêtre de contexte des LLM s’agrandit, beaucoup tentent de « tout faire rentrer », mais les informations inutiles dégradent au contraire le résultat
- Le RAG reste aujourd’hui une technique extrêmement importante
Tool Loadout (sélection de configuration des outils)
- Méthode consistant à n’insérer dans le contexte que les outils nécessaires
- Les descriptions d’outils sont gérées dans une base de données vectorielle, puis le RAG est utilisé pour sélectionner les outils optimaux selon le prompt
- À partir de plus de 30 outils, les descriptions qui se chevauchent créent de la confusion, et au-delà de 100 outils, les performances du modèle chutent fortement
- Dans l’article « Less is More », Llama 3.1 8b échoue lorsqu’on lui fournit 46 outils, mais réussit lorsqu’on ne lui en fournit que 19
- Un système de recommandation basé sur un LLM a été utilisé pour sélectionner dynamiquement les outils nécessaires, ce qui a amélioré les performances, la vitesse et l’efficacité énergétique
Context Quarantine (quarantaine du contexte)
- Méthode consistant à gérer le contexte séparément dans des threads distincts
- Le problème est découpé en plusieurs parties, comme la recherche ou l’exploration, et chaque partie est confiée à un agent distinct
- Dans le système multi-agent d’Anthropic, chaque sous-agent utilise une fenêtre de contexte indépendante afin d’améliorer l’efficacité et la précision
- Cette conception se montre particulièrement efficace pour les tâches qui exigent d’explorer simultanément plusieurs directions
Context Pruning (élagage du contexte)
- Méthode consistant à filtrer en continu les informations inutiles ou obsolètes
- Dans le domaine du NLP, diverses techniques de pruning sont utilisées depuis longtemps
- Plus récemment, des modèles légers et rapides dédiés au « nettoyage » du contexte, comme Provence, sont apparus (1.75GB, compression possible de 95 % des documents)
- Lorsque le contexte est géré sous une forme structurée, par exemple avec un dictionnaire, l’élagage et la synthèse (compression) deviennent plus faciles
Context Summarization (résumé du contexte)
- Approche consistant à compresser et résumer l’ensemble lorsque le contexte devient trop long
- Elle ne sert pas seulement à rester sous la limite de la fenêtre, mais aussi à prévenir les répétitions inutiles et les phénomènes de dispersion
- Lors de l’étape de compression, il est important de définir quelles informations doivent être conservées
- Une étape de résumé distincte, pilotée par un LLM, permet d’accumuler puis d’améliorer des données d’évaluation
Context Offloading (déport du contexte)
- Stratégie consistant à créer un espace mémoire externe au contexte pour y laisser des traces
- Par exemple, l’outil « think » d’Anthropic prévoit un scratchpad séparé afin d’inciter le LLM à y consigner les notes intermédiaires nécessaires
- Cette approche est utile pour l’analyse des sorties d’outils, la vérification de politiques ou la prise de décision séquentielle
- Le fait de conserver séparément les résultats intermédiaires évite que le contexte ne soit inutilement pollué ou complexifié
- Des gains de performance et de précision ont été observés, avec des améliorations pouvant aller jusqu’à 54 %
Conclusion et points d’attention pour la conception d’agents
- La gestion du contexte est sans doute la partie la plus délicate de la conception d’agents
- Lorsqu’on programme des LLM, la façon de combiner et de gérer les informations, les outils et le contexte détermine largement la réussite ou l’échec
- Même si la fenêtre de contexte est immense, toutes les informations ne sont pas utiles.
- Il faut vérifier si chaque élément apporte réellement de la valeur, et gérer activement le contexte à l’aide des six méthodes présentées ci-dessus : RAG, Tool Loadout, Context Quarantine, Pruning, Summarization et Offloading
Aucun commentaire pour le moment.