Fenêtre de contexte

From Systems analysis wiki
Jump to navigation Jump to search

La fenêtre de contexte dans les grands modèles de langage (LLM) est la quantité maximale d'informations textuelles (en tokens) que le modèle peut prendre en compte lors de la génération d'une réponse[1]. En d'autres termes, il s'agit d'une sorte de « mémoire de travail » du modèle, qui détermine la quantité de texte (incluant à la fois la requête initiale de l'utilisateur et les phrases précédemment générées par le modèle) qu'il peut maintenir simultanément dans son contexte[1]. La taille de la fenêtre de contexte est mesurée en tokens — des unités de texte conventionnelles (mots, fragments de mots ou symboles) en lesquelles l'entrée est divisée pour être traitée par le modèle[1]. La cohérence et la pertinence des réponses générées dépendent directement de la longueur de la fenêtre de contexte : un grand contexte permet au modèle de mieux prendre en compte les informations précédentes, de retenir les détails de dialogues prolongés et de ne pas perdre le fil lors du traitement de longs documents[1].

Évolution de la taille de la fenêtre de contexte

Les premiers modèles de langage basés sur l'architecture Transformer avaient une fenêtre de contexte relativement petite. Par exemple, en 2018-2019, la longueur maximale du contexte était de l'ordre de 512 à 1024 tokens[2]. Le modèle GPT-3 (2020) traitait déjà jusqu'à 2048 tokens à la fois[2]. Au début de ChatGPT (2022), la limite de contexte était d'environ 4000 tokens (environ 3000 mots), ce qui limitait la longueur de la conversation – au-delà de ~3000 mots, le chatbot commençait à « se perdre » et à halluciner hors sujet[1].

Les modèles phares modernes ont considérablement augmenté ce seuil : ainsi, GPT-4 est disponible en versions avec une fenêtre de 8192 et 32 768 tokens[1], tandis que le modèle Claude de la société Anthropic a atteint en 2023 une fenêtre de 100 000 tokens (environ 75 000 mots, soit plusieurs centaines de pages de texte)[3]. En 2024, des modèles avec un contexte d'environ 128 000 tokens (par exemple, LLaMA 3.1 de Meta)[2] et même jusqu'à 1 million de tokens (Google Gemini 1.5 Pro) ont vu le jour[2]. En 2025, LLAMA 4 Scout a été annoncé avec une fenêtre de contexte record allant jusqu'à 10 millions de tokens[4], ce qui équivaut à un texte de plusieurs dizaines de milliers de pages[5]. Cependant, des valeurs aussi extrêmes sont en grande partie théoriques : les limitations de mémoire et de données d'entraînement ne permettent pas au modèle d'utiliser pleinement l'intégralité du contexte de 10 millions de tokens en pratique[5]. Néanmoins, la course à l'agrandissement de la fenêtre de contexte est devenue une nouvelle étape dans le développement des LLM, comparable en importance à l'augmentation du nombre de paramètres des modèles[1].

Voici quelques exemples de longueurs maximales de contexte pour certains modèles :

  • GPT-3 – jusqu'à ~2048 tokens[2]
  • GPT-4 – 8192 tokens (version standard) et jusqu'à 32 768 dans la version étendue[1]
  • Anthropic Claude – jusqu'à 100 000 tokens[3]
  • LLaMA 3.1 – jusqu'à 128 000 tokens[2]
  • Google Gemini 1.5 Pro – jusqu'à 1 000 000 de tokens[2]
  • Meta LLAMA 4 Scout – annoncé jusqu'à 10 000 000 de tokens[4]

L'augmentation de la fenêtre de contexte élargit radicalement les capacités des modèles[3]. Si 32 000 tokens correspondent à environ 50 pages de texte, 100 000 tokens représentent environ 75 000 mots[3]. Un modèle peut traiter un tel volume en quelques secondes, par exemple, analyser un roman entier ou un rapport technique pour en extraire les détails nécessaires[3]. Ainsi, les modèles avec un long contexte peuvent garder en mémoire des livres entiers, de grands ensembles de documents ou de longs dialogues, ce qui ouvre de nouveaux scénarios d'application — du résumé détaillé et de l'analyse questions-réponses inter-documents au traitement de larges fragments de code source.

Limites et défis des contextes longs

L'augmentation de la fenêtre de contexte est associée à de sérieux défis techniques et pratiques[1]. Le principal d'entre eux est la croissance combinatoire de la complexité computationnelle[1]. Dans les Transformers, le mécanisme d'auto-attention a une complexité quadratique par rapport à la longueur de la séquence : lorsque la longueur du contexte double, la mémoire et les calculs requis augmentent environ quatre fois[1]. Par exemple, passer d'un contexte de 1024 tokens à 4096 tokens augmente théoriquement les coûts en ressources d'environ 16 fois[1]. Cela impose des contraintes tant à l'étape de l'entraînement (où des séquences trop longues sont difficiles à utiliser en raison des limites de mémoire GPU et du temps d'entraînement) qu'à l'étape de l'inférence – les requêtes longues ralentissent considérablement la génération de réponses et augmentent son coût lors de l'utilisation d'API commerciales[2]. Le traitement des tokens d'entrée est généralement facturé, de sorte que les longs textes fournis au modèle augmentent directement le coût de la réponse[2].

La surcharge informationnelle est un autre facteur important[2]. Bien qu'une grande fenêtre permette de fournir plus de données au modèle, un excès de détails peut l'empêcher de distinguer l'essentiel du « bruit »[2]. Des recherches montrent que les LLM modernes traitent les informations pertinentes de manière inégale : ils ont tendance à accorder plus d'attention aux faits placés au début ou à la fin d'une longue entrée de contexte (effets de primauté et de récence), et extraient beaucoup moins bien les connaissances du milieu d'un long document[6]. La saturation du prompt avec des détails superflus peut réduire la précision de la réponse[6]. Ainsi, au-delà d'une certaine limite, l'augmentation du volume du contexte peut être contre-productive[2]. Une conséquence pratique est la recommandation d'inclure dans une longue requête uniquement les données vraiment nécessaires et de structurer le contexte de manière à ce que les informations clés se trouvent plus près du début (ou de la fin) du message[1].

De plus, il a été observé en pratique un écart entre la longueur nominale de la fenêtre et celle que le modèle utilise efficacement[7]. De nombreux modèles ne sont pas capables de travailler aussi bien sur toute la longueur disponible — leur profondeur de contexte effective est considérablement inférieure à la longueur maximale[7]. Par exemple, pour le modèle LLaMA 3.1 avec un contexte entraîné de 128k, les informations situées au-delà de ~64k tokens du début n'avaient pratiquement aucune influence sur les réponses lors des tests[7]. En général, pour la plupart des LLM ouverts, il a été noté que leur mémoire effective réelle représente moins de la moitié de la longueur de contexte prévue[7]. Les chercheurs attribuent cela aux particularités de l'entraînement : même si le modèle est formellement entraîné sur de longues séquences, les positions très éloignées apparaissent beaucoup plus rarement dans les données que les positions initiales, ce qui fait que le modèle est sous-entraîné sur la fin de la fenêtre[7]. Dans les corpus typiques, la fréquence d'apparition des séquences très longues diminue de manière exponentielle[7]. Une telle distribution « biaisée à gauche » des positions conduit le modèle à assimiler le contexte proche bien mieux que le contexte lointain[7]. La solution pourrait résider dans une sélection et une annotation plus minutieuses des données d'entraînement, ainsi que dans des méthodes spéciales pour compenser les positions sous-entraînées[7]. Dans l'ensemble, surmonter cette limitation est un domaine de recherche actif[7].

Méthodes d'extension de la fenêtre de contexte

L'extension de la fenêtre de contexte des LLM nécessite une combinaison d'améliorations architecturales et algorithmiques. Les principales approches utilisées dans les travaux modernes incluent :

  • Entraînement sur de longues séquences[2]. L'approche évidente est de fournir au modèle des exemples d'entraînement comparables à la longueur de contexte souhaitée. On pratique le curriculum learning sur la longueur : augmenter progressivement la taille des textes pendant le processus d'entraînement[2]. Des techniques telles que l'accumulation de gradient et des prétraitements spéciaux des données sont également utilisées[2].
  • Optimisation du mécanisme d'attention[2]. Comme l'auto-attention standard a un coût quadratique, des alternatives sont activement explorées : attention clairsemée (sparse attention), fenêtre glissante (sliding window), partitionnement multidimensionnel du contexte, etc.[2]. Par exemple, Ring Attention – une méthode d'optimisation de l'attention proposée par IBM, qui réduit la charge de calcul pour les longues séquences[1]. Dans le modèle IBM Granite, l'ajout de l'attention en anneau a permis d'augmenter considérablement le contexte[1].
  • Amélioration des encodages de position[2]. Une partie cruciale de l'architecture Transformer est la manière d'encoder les positions des tokens[2]. Les encodeurs de position absolus classiques extrapolent mal au-delà de la longueur sur laquelle ils ont été entraînés[2]. C'est pourquoi, pour un long contexte, des positions relatives et d'autres méthodes sont utilisées[2]. Ainsi, le modèle Granite dans sa version avec un contexte de 128k est passé de la position absolue à un encodage des tokens basé sur leur position relative[1]. L'encodage de position rotatif (ROPE)[2] est largement utilisé, car il préserve mieux la disposition relative des tokens éloignés et permet de mettre à l'échelle le contexte[2]. Une autre approche, Attention with Linear Biases (ALiBi), introduit un biais croissant linéairement dans le mécanisme d'attention pour les grandes distances[2]. Une combinaison de ces techniques – par exemple, la mise à l'échelle de la fréquence de base de ROPE (comme implémenté dans LLaMA 3) – est actuellement utilisée pour que les modèles puissent supporter une fenêtre de 100k+ tokens[7].
  • Mémoire et compression du contexte[1]. Une voie alternative consiste non pas à augmenter directement la longueur de la fenêtre, mais à représenter de manière compacte une longue entrée[1]. Par exemple, l'une des technologies d'IBM consiste à ce que le modèle génère une représentation compressée (un résumé) d'un long texte à l'aide d'un autre LLM[5]. Une autre approche consiste à connecter une mémoire à long terme externe ou des bases de connaissances : le modèle stocke les faits importants en dehors de sa fenêtre de contexte et les charge au besoin[5]. Cette dernière option a évolué sous la forme de méthodes connues sous le nom de retrieval-augmented generation (RAG)[5].

Il est important de noter que chacune de ces stratégies a un coût[2]. L'entraînement sur de longs contextes nécessite des ressources de calcul colossales et des données soigneusement sélectionnées[2]. Les nouveaux mécanismes d'attention et de positionnement complexifient l'architecture du modèle et réduisent parfois la qualité sur les textes courts[2]. Par conséquent, les ingénieurs doivent trouver un équilibre délicat entre la taille de la fenêtre, la stabilité de l'entraînement et les performances finales du modèle[2].

Contextes étendus vs. récupération d'informations (RAG)

L'augmentation du contexte maximal dans les LLM à des centaines de milliers de tokens et plus a suscité un débat sur la nécessité des bases de connaissances externes et des algorithmes de recherche face à de telles capacités du modèle[1]. Si toutes les informations pertinentes peuvent être contenues directement dans la fenêtre de contexte, le modèle peut théoriquement répondre sans recourir à des sources externes[1]. Certains chercheurs suggèrent qu'avec l'augmentation de la fenêtre, des méthodes comme la retrieval-augmented generation (RAG), où le modèle reçoit à l'avance des textes extraits d'une base de données, pourraient perdre de leur pertinence[1]. En faveur de cette thèse, on note par exemple les pertes d'information lors de l'étape d'extraction : la recherche ne renvoie que quelques documents principaux, alors que le « remplissage du prompt » (l'inclusion directe de données dans la requête) permet de fournir au modèle l'intégralité des informations contextuelles[1]. Le chercheur d'IBM, Pin-Yu Chen, note que personne ne voudra s'embêter à configurer un RAG s'il est possible de simplement charger tous les livres et documents nécessaires dans le modèle en une seule fois[1].

Cependant, le point de vue opposé est que même une très grande fenêtre n'élimine pas le besoin de RAG[1]. Des représentants d'IBM et d'autres experts soulignent que l' actualité des données et leur contrôle restent un problème sérieux[5]. Un modèle avec un contexte énorme ne connaît toujours pas ce qui ne figurait pas dans ses données d'entraînement — par exemple, les nouvelles du jour[5]. Pour inclure rapidement des informations fraîches sur demande, un mécanisme de récupération est nécessaire[5]. De plus, dans les applications d'entreprise, le RAG permet de récupérer sélectivement des faits à partir de référentiels sécurisés, en respectant les droits d'accès et sans divulguer de données confidentielles superflues[5]. Enfin, les considérations économiques sont également importantes : traiter des millions de tokens « à vide » est un luxe coûteux, et il est souvent plus judicieux de trouver d'abord quelques extraits vraiment pertinents (en réduisant le contexte) plutôt que de forcer le modèle à lire une entrée de mille pages à chaque fois[1]. Pour ces raisons, le RAG reste un composant important des applications d'IA[5], et il est recommandé d'utiliser les grandes fenêtres de contexte avec prudence[5]. Il est probable que des approches hybrides — combinant un contexte étendu (pour stocker des données fréquemment utilisées sous forme de cache, Cache-Augmented Generation) et une récupération sélective de nouvelles connaissances à partir de sources externes — deviendront l'architecture optimale[8][8].

Applications et perspectives

L'augmentation du contexte disponible élargit considérablement l'éventail des tâches résolues par les modèles de langage. Le résumé et l'analyse de documents longs est l'une des applications directes[3]. Un modèle avec une fenêtre de 100k tokens peut, en une seule requête, lire un rapport volumineux, un livre ou une documentation technique et en fournir un résumé ou des réponses à des questions[3]. Cela trouve des applications en droit (analyse et synthèse de contrats), en science (revue de littérature automatisée) et en business intelligence. Par exemple, Claude a traité avec succès l'intégralité du roman « Gatsby le Magnifique » (~72 000 tokens) et a pu identifier des modifications ponctuelles dans le texte en quelques secondes[3].

Support de dialogues étendus[2]. Pour les chatbots, un grand contexte signifie la capacité de se souvenir de dizaines, voire de centaines de répliques[2]. Une fenêtre étendue permet également d'intégrer de vastes données de référence dans la conversation[2].

Programmation et travail sur le code[8]. Dans les tâches liées à l'analyse du code source, un long contexte s'est avéré particulièrement précieux[8]. Le code est souvent réparti sur de nombreux fichiers ; pour donner une réponse correcte, le modèle doit « voir » le plus grand fragment possible de la base de code[8]. Des recherches d'IBM ont montré que l'extension du contexte améliore notablement la qualité des modèles sur les tâches de génération de code[1]. Le modèle Granite avec une fenêtre de 128k tokens peut traiter dans une requête un grand volume de documentation de bibliothèques[1].

Applications multimodales[3]. Les modèles les plus récents (tels que les déjà mentionnés LLaMA 4, Gemini) sont multimodaux et peuvent accepter en entrée non seulement du texte, mais aussi d'autres types de données (audio, images, vidéo)[3]. Un grand contexte aide ici, par exemple, à analyser de longs enregistrements audio (transcriptions de conversations) ou des vidéos (séquence d'images avec descriptions) dans leur intégralité[2]. Il est rapporté que le modèle Gemini 1.5 avec une fenêtre de 1M de tokens peut maintenir en contexte jusqu'à 1 heure d'audio ou 3 heures de vidéo sans perdre de détails importants[2]. Cela ouvre des perspectives pour la transcription et le résumé automatiques de réunions de plusieurs heures, de films, etc.[2].

Malgré des avancées impressionnantes, les experts soulignent qu'un grand contexte n'est pas une panacée[8], mais un outil qui requiert une utilisation judicieuse[8]. Il augmente considérablement les exigences en matière d'infrastructure (mémoire, performance) et rend l'implémentation des modèles plus coûteuse[5]. C'est pourquoi, lors du développement de systèmes basés sur les LLM, il est recommandé d'évaluer soigneusement quel volume de contexte est réellement nécessaire pour la tâche et de combiner les approches[5]. Néanmoins, la tendance est claire : les futurs modèles chercheront à combiner un contexte encore plus long avec une utilisation efficace de celui-ci[2]. La résolution des problèmes actuels (mise à l'échelle de l'attention, entraînement sur de longues séquences, élimination de l'« oubli » du milieu) permettra aux LLM de nouvelle génération de manipuler des volumes d'information encore plus grands, tout en restant précis et cohérents[7]. Cela élargira considérablement les frontières de l'applicabilité de l'IA — de l'assistant complet aux systèmes analytiques complexes[7].

Liens

Notes

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 «Why larger LLM context windows are all the rage». IBM Research Blog. [1]
  2. 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 2.34 «Context Length in LLMs: What Is It and Why It Is Important». DataNorth Blog. [2]
  3. 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 «Introducing 100K Context Windows». Anthropic Blog. [3]
  4. 4.0 4.1 «Meta's Llama 4 is now available on Workers AI». Cloudflare Blog. [4]
  5. 5.00 5.01 5.02 5.03 5.04 5.05 5.06 5.07 5.08 5.09 5.10 5.11 5.12 «RAG in the Era of LLMs with 10 Million Token Context Windows». F5 Labs Blog. [5]
  6. 6.0 6.1 Liu, Shi et al. (2023). «Lost in the Middle: How Language Models Use Long Contexts». arXiv. [6]
  7. 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 7.10 7.11 Yang, Qingyu et al. (2024). «Why Does the Effective Context Length of LLMs Fall Short?». arXiv. [7]
  8. 8.0 8.1 8.2 8.3 8.4 8.5 8.6 «Understanding the Impact of Increasing LLM Context Windows». Meibel Blog. [8]