Définition
La compression de contexte fait référence à l'ensemble des techniques utilisées pour réduire la taille ou la complexité des données d'entrée (la fenêtre de contexte) fournies à un grand modèle linguistique (LLM) tout en préservant les informations sémantiques les plus critiques nécessaires à la sortie souhaitée.
Ce processus est crucial car les LLM ont des limites de fenêtre de contexte finies, et le traitement d'entrées extrêmement longues est coûteux en termes de calcul et lent.
Pourquoi c'est important
Dans les applications réelles, les utilisateurs fournissent souvent de vastes quantités de texte — tels que des documents entiers, des historiques de discussion longs ou des bases de code complexes — en tant que contexte. Envoyer toutes ces données brutes au modèle entraîne des coûts importants (tarification par jeton) et augmente la latence d'inférence.
La compression de contexte répond directement à ces goulots d'étranglement, permettant aux entreprises de déployer des LLM puissants de manière économique et à grande échelle.
Comment cela fonctionne
Plusieurs méthodologies sont utilisées pour la compression de contexte, souvent en conjonction :
- Synthèse (Summarization) : Utiliser un LLM plus petit et spécialisé pour générer un résumé abstrait et dense de l'entrée longue avant de le transmettre au modèle principal.
- Affinement de la Génération Augmentée par Récupération (RAG) : Au lieu de transmettre tous les documents récupérés, des techniques telles que le ré-classement (re-ranking) ou l'expansion de requête sont utilisées pour ne sélectionner que les extraits les plus pertinents.
- Extraction d'Entités/Mots-clés : Identifier et extraire uniquement les entités clés, les dates et les éléments d'action, en écartant le texte de remplissage verbeux.
- Fenêtre Glissante/Segmentation (Sliding Window/Chunking) : Décomposer systématiquement le contexte et ne transmettre que les segments les plus récents ou les plus pertinents.
Cas d'utilisation courants
La compression de contexte est essentielle dans plusieurs cas d'utilisation d'entreprise :
- Questions/Réponses sur des documents : Permettre aux utilisateurs de poser des questions sur des contrats juridiques de plusieurs centaines de pages sans dépasser les limites de jetons.
- Chatbots à long terme : Maintenir la cohérence conversationnelle sur des sessions prolongées en compressant l'historique des dialogues passés.
- Analyse de code : Alimenter un LLM avec de grands dépôts ou des définitions de fonctions complexes pour la détection de bugs ou des suggestions de refactorisation.
Avantages clés
Les principaux avantages de la mise en œuvre de la compression de contexte sont triples :
- Réduction des coûts : Moins de jetons traités se traduit directement par des coûts d'utilisation de l'API plus faibles.
- Amélioration de la latence : Des entrées plus petites nécessitent moins de temps de calcul, ce qui entraîne des temps de réponse plus rapides pour les utilisateurs finaux.
- Concentration du contexte : En filtrant le bruit, le modèle peut consacrer sa capacité d'attention aux informations les plus saillantes, améliorant potentiellement la qualité de la réponse finale.
Défis
Malgré son utilité, la compression de contexte n'est pas une science exacte. Les principaux défis comprennent :
- Perte d'information : Une compression trop agressive peut involontairement écarter une information subtile mais critique nécessaire à une réponse précise.
- Complexité de l'implémentation : Concevoir le bon pipeline de compression (par exemple, décider quel modèle de synthèse utiliser) nécessite un effort d'ingénierie considérable.
Concepts connexes
Cette technique est étroitement liée à la Génération Augmentée par Récupération (RAG), au fine-tuning et à l'ingénierie de prompt. Alors que le RAG se concentre sur la récupération de données pertinentes, la compression de contexte se concentre sur la condensation des données qui ont déjà été récupérées ou fournies.