Oubli contextuel

From Systems analysis Wiki
Jump to navigation Jump to search

L'oubli contextuel dans les grands modèles de langage est un phénomène à multiples facettes par lequel un grand modèle de langage (LLM) perd, ignore ou utilise de manière inefficace des informations qui lui ont été précédemment fournies au cours d'une seule interaction[1]. Contrairement à la mémoire humaine, les LLM ne disposent pas d'un stockage d'état à long terme et ne s'appuient que sur la fenêtre contextuelle — une quantité limitée de texte (en tokens) que le modèle peut traiter en une seule fois. Cette fenêtre agit comme la mémoire à court terme ou de travail du modèle[2].

La manifestation la plus connue de cette limitation est le problème de la « perte au milieu » (Lost in the Middle) — la tendance des modèles à mieux traiter les informations situées au début et à la fin d'un long contexte, et moins bien celles qui se trouvent au milieu[2]. Ce phénomène n'est pas un défaut, mais une propriété fondamentale découlant de l'architecture des transformeurs et de leurs principes d'entraînement.

Deux types d'oubli : Contextuel et Catastrophique

Il est important de distinguer deux types d'« oubli » fondamentalement différents dans les LLM : l'oubli intracontextuel et l'oubli catastrophique.

Oubli intracontextuel (Perte au milieu)

Ce type d'oubli se produit au cours d'une seule session d'interaction (inférence) avec un modèle déjà entraîné. Il est lié aux limitations de la fenêtre contextuelle. Lorsque le volume du dialogue ou du document dépasse la taille de la fenêtre, le modèle « oublie » les fragments les plus anciens pour faire de la place aux nouveaux. Même à l'intérieur de la fenêtre, les informations provenant du milieu du contexte peuvent être utilisées de manière moins efficace. Il s'agit d'une limitation de la mémoire de travail du modèle[3]. Dans la presse, ce phénomène est également appelé le « syndrome de dégradation du contexte » (Context Degradation Syndrome, CDS)[1].

Oubli catastrophique (Dérive du modèle)

Ce type d'oubli, également connu sous le nom de « dérive du modèle » (model drift), se produit lors du processus de réentraînement (fine-tuning) d'un modèle sur de nouvelles données. Lorsqu'un modèle, pré-entraîné sur un immense corpus de connaissances générales, est réentraîné sur un jeu de données très spécialisé (par exemple, des textes médicaux), ses poids sont modifiés. Cela peut entraîner la dégradation ou l'« effacement » des connaissances et compétences précédemment acquises qui ne sont pas liées à la nouvelle tâche[4].

Causes et mécanismes

L'oubli contextuel est une conséquence directe de l'architecture des transformeurs et de la géométrie des espaces vectoriels.

L'effet de « Perte au milieu » (Lost in the Middle)

Une étude de l'Université de Stanford menée en 2023 et intitulée « Lost in the Middle » a clairement démontré que la performance des LLM à extraire des informations d'un long contexte suit une courbe en forme de U[2]. La précision des réponses est maximale lorsque l'information pertinente se trouve tout au début (effet de primauté) ou à la toute fin (effet de récence) du contexte, et diminue de manière significative si elle est « cachée » au milieu. Les causes de ce phénomène sont les suivantes :

  • Mécanisme d'attention : L'architecture du transformeur accorde par nature une attention disproportionnée aux tokens initiaux (appelés « ancres d'attention » ou attention sinks) pour maintenir une cohérence globale, ainsi qu'au contexte local, ce qui entraîne un affaiblissement de la « focalisation » sur le milieu[5].
  • Données de pré-entraînement : Les modèles sont le plus souvent entraînés sur des textes relativement courts, où les informations importantes se trouvent rarement à des dizaines de milliers de tokens du début, ce qui les empêche d'utiliser efficacement des contextes très longs[6].

Manifestations et conséquences

  • Syndrome de dégradation du contexte : Au cours de longs dialogues, le modèle commence à « perdre le fil de la conversation », à répéter des réponses, à contredire des faits établis précédemment et à fournir des réponses de plus en plus générales et vagues[1].
  • Échecs dans les tâches multi-étapes : Dans les tâches où les conditions sont précisées au fil de plusieurs répliques, le modèle peut « s'accrocher » à une hypothèse initiale incorrecte et ignorer les clarifications ultérieures, ce qui le rend totalement incapable de résoudre la tâche[7].
  • Manque de fiabilité dans l'analyse de documents : Lors de l'analyse de longs rapports ou de documents juridiques, un LLM peut omettre des faits clés situés dans les sections centrales, ce qui en fait un outil peu fiable pour de telles tâches.

Stratégies d'atténuation et de prévention

Les chercheurs et les développeurs appliquent plusieurs approches pour résoudre le problème de l'oubli contextuel.

Augmentation de la fenêtre contextuelle

L'approche la plus directe consiste à augmenter la taille de la fenêtre contextuelle. Les modèles modernes, tels que Claude 3 (200 000 tokens) et Gemini 1.5 Pro (jusqu'à 2 millions de tokens), ont considérablement élargi cette limite[8][9]. Cependant, des études montrent que la simple augmentation de la fenêtre ne garantit pas son utilisation efficace, et que le problème de la « perte au milieu » persiste[2].

Ingénierie de prompt avancée

Une structuration judicieuse des prompts peut améliorer considérablement les performances. L'entreprise Anthropic propose les pratiques suivantes[10] :

  • Placer les documents au début : Mettre les textes longs au tout début du prompt, avant les instructions et la question.
  • Utilisation de balises XML : Encadrer les documents avec des balises `<document>` pour une séparation claire.
  • Justifier les réponses par des citations : Donner au modèle l'instruction d'extraire d'abord les citations pertinentes, puis de formuler sa réponse sur cette base.

Externalisation de la mémoire : Retrieval-Augmented Generation (RAG)

Une approche fondamentalement différente consiste à ne pas placer toutes les informations dans la fenêtre contextuelle, mais à les externaliser dans un système externe (une base de données vectorielle) et à les fournir sur demande.

  1. Extraction (Retrieve) : Lorsqu'une requête est reçue, le système recherche les informations pertinentes dans la base de données externe.
  2. Augmentation (Augment) : Les fragments trouvés sont ajoutés à la requête initiale.
  3. Génération (Generate) : Le LLM génère une réponse en se basant sur le contexte fourni.

Le RAG permet de travailler avec des volumes de données pratiquement illimités et assure l'accès à des informations fraîches et vérifiées, ce qui réduit le risque d'hallucinations et constitue la solution la plus fiable à ce jour[11].

Liens externes

Bibliographie

  • Liu, N. F. et al. (2023). Lost in the Middle: How Language Models Use Long Contexts. arXiv:2307.03172.
  • An, C. et al. (2024). Why Does the Effective Context Length of LLMs Fall Short?. arXiv:2410.18745.
  • Ding, J. et al. (2023). LongNet: Scaling Transformers to 1,000,000,000 Tokens. arXiv:2307.02486.
  • Yang, A. et al. (2024). Context Parallelism for Scalable Million-Token Inference. arXiv:2411.01783.
  • Chen, S. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
  • Ding, Y. et al. (2024). LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens. arXiv:2402.13753.
  • Li, S. et al. (2023). Functional Interpolation for Relative Positions Improves Long Context Transformers. arXiv:2310.04418.
  • Dong, Z. et al. (2024). Exploring Context Window of Large Language Models via Decomposed Positional Vectors. arXiv:2405.18009.
  • Laban, P. et al. (2025). LLMs Get Lost in Multi-Turn Conversation. arXiv:2505.06120.
  • Li, R. et al. (2024). Extending Context Window in Large Language Models with Segmented Base Adjustment for Rotary Position Embeddings. Applied Sciences, 14(7), 3076. DOI:10.3390/app14073076.
  • Yang, A. & Reizenstein, J. (2024). Exploring Context Window of LLMs via Decomposed Positional Vectors (NeurIPS Poster). NeurIPS 2024.

Références

  1. 1.0 1.1 1.2 Howard, James. «Context Degradation Syndrome: When Large Language Models Lose the Plot». jameshoward.us. [1]
  2. 2.0 2.1 2.2 2.3 Liu, Nelson F.; et al. «Lost in the Middle: How Language Models Use Long Contexts». arXiv. [2]
  3. Liu, Nelson F.; et al. «Lost in the Middle: How Language Models Use Long Contexts». ACL Anthology. [3]
  4. Greyling, Cobus. «Catastrophic Forgetting In LLMs». Medium. [4]
  5. «Exploring Context Window of Large Language Models via Decomposed Positional Vectors». NeurIPS Proceedings. [5]
  6. An, Chenxin; et al. «Why Does the Effective Context Length of LLMs Fall Short?». arXiv. [6]
  7. «LLMs Get Lost In Multi-Turn Conversation». arXiv. [7]
  8. «Introducing the next generation of Claude». Anthropic. [8]
  9. «Google's Gemini 1.5 Pro - Revolutionizing AI with a 1M Token Context Window». Medium. [9]
  10. «Long context prompting tips». Anthropic Documentation. [10]
  11. «What is Retrieval-Augmented Generation (RAG)?». Google Cloud. [11]