Explication du phénomène de dérive contextuelle : pourquoi les entrées longues affaiblissent la précision des LLM
Découvrez comment les embeddings de position rotatifs et le softmax entraînent une baisse de la précision au milieu des prompts longs, et quels comportements permettent au contexte de rester efficace.
Lorsque l’on fournit une longue instruction à n’importe lequel des modèles de pointe testés en 2025, la qualité des réponses diminue, même lorsque l’information demandée se trouve directement dans le texte. Une étude menée par Chroma en 2025 sur 18 de ces modèles a révélé que la précision concernant les faits situés au milieu de l’entrée chutait de plus de 30 %. La raison en a peu à voir avec un prétendu « temps d’attention » limité ; elle provient plutôt de la manière dont les transformateurs encodent l’emplacement des tokens.
Les gens appellent cela la dégradation du contexte, et c’est quelque chose de différent de l’atteinte de la limite de contexte. Une expérience menée en 2023 à Stanford montre pourquoi. Donnez à un modèle 20 documents récupérés, soit environ 4 000 tokens, ce qui est négligeable par rapport aux limites actuelles. Si le fait pertinent se trouve en première position, le modèle l’identifie correctement dans 70 à 75 % des cas. Si ce même fait est déplacé au milieu, le taux de précision tombe à 55 à 60 %. Les informations sont toujours présentes et correctes ; le modèle leur accorde simplement moins d’importance.
D’où provient cette dégradation
La plupart des transformateurs de courant utilisent les Rotary Position Embeddings (RoPE) pour marquer l’ordre des tokens. RoPE présente une dégradation à long terme bien connue : plus les deux tokens sont éloignés l’un de l’autre, plus le plafond indiquant la mesure dans laquelle on peut prêter attention à l’autre diminue (en théorie), quel que soit leur sens réel. Le softmax aggrave encore la situation en orientant l’attention vers des tokens qui obtiennent déjà de hauts scores, ce qui favorise le début et la fin du contexte et produit la courbe en forme de U que les chercheurs appellent « perdu au milieu ».
Vous pouvez observer la forme de cette dégradation avec un petit script. Il est construit uniquement à partir de la structure de fréquence de RoPE, et non à partir des poids d’un modèle réel, il convient donc de le considérer comme une illustration. La seule bibliothèque nécessaire est numpy :
import numpy as np
Et voici la fonction qui mesure comment la limite de similarité diminue à mesure que la distance augmente :
def rope_similarity_decay(distances, dim=64, base=10000):
freqs = 1.0 / (base ** (np.arange(0, dim, 2) / dim))
decays = []
for d in distances:
bound = np.mean(np.cos(freqs * d))
decays.append(bound)
return np.array(decays)
En augmentant progressivement la distance entre les tokens, on obtient ceci :
Token distance | Relative similarity bound
1 | 0.9662
10 | 0.6579
50 | 0.4898
100 | 0.5586
500 | 0.2006
1000 | 0.2789
5000 | -0.1309
10000 | 0.0494
50000 | -0.0898
Les tokens séparés de 1 à 10 positions conservent une valeur proche de 1,0. Après quelques milliers de tokens de séparation, cette valeur chute vers zéro et descend même en dessous à certains endroits ; ainsi, la géométrie entre des tokens très éloignés ne permet plus de déterminer de manière fiable que « ces deux sont liés ». On remarquera également qu’il ne s’agit pas d’une baisse continue : on observe une enveloppe décroissante avec des oscillations réelles à l’intérieur. Rien de tout cela ne sert de critère pour évaluer un modèle spécifique, mais cela explique pourquoi le problème est structurel et ne disparaît pas simplement en entraînant un modèle plus grand.
Une fenêtre plus grande ne résout rien
Les chercheurs distinguent désormais la fenêtre de contexte annoncée de la Fenêtre de Contexte Éffective Maximale (MECW), c’est-à-dire la longueur à laquelle les performances d’un modèle restent stables. Selon des recherches de 2025 sur cette disparité, pour les tâches complexes, ce plafond effectif peut être jusqu’à 99 % inférieur au chiffre indiqué dans les spécifications. Une fenêtre de un million de tokens signifie que le modèle ne commettra pas d’erreur avant d’avoir traité un million de tokens ; cela ne dit rien sur le fait qu’il utilise tous ces tokens efficacement.
Pourquoi les agents de programmation sont le plus touchés
Pour les agents de codage, la dégradation du contexte est considérée comme un mode de défaillance majeur, et il s’agit davantage d’un problème lié aux données entrantes que d’un manque de capacités. Au cours d’une tâche longue, l’agent cherche, explore et revient en arrière, et chaque impasse laisse des « bruits » dans l’historique. Ces bruits entravent chaque étape ultérieure, même si le même modèle pourrait résoudre la tâche sans problème à partir d’un contexte vierge. Ainsi, une session longue peut échouer sans jamais manquer de tokens : les instructions de la première étape restent dans la conversation à la cinquantième étape, mais l’attention du modèle ne peut plus y accéder.
Qu’est-ce qui aide
RAG et les fenêtres longues ne sont pas interchangeables. La récupération d’informations trouve son utilité en réduisant une grande collection à la partie pertinente, car essayer d’inclure tout en même temps entraîne directement le déclin positional mentionné précédemment. Une fois la récupération effectuée, toutes les solutions recommandent de conserver un contexte de travail petit et propre plutôt que grand et complet.
- Résumer ou supprimer l’historique de conversations obsolète.
- Placer ce sur quoi dépend la décision près du début ou de la fin du prompt, jamais au milieu.
- Rappeler que « cela convient » et « le modèle l’utilisera » sont deux affirmations distinctes.
Réponses rapides
Qu’est-ce que la dégradation du contexte ? La qualité de la sortie diminue à mesure que la longueur de l’entrée augmente, même lorsque la fenêtre n’est pas pleine et que les informations nécessaires sont présentes.
Pourquoi le milieu est-il le pire ? RoPE affaiblit délibérément le lien entre des tokens éloignés, et softmax concentre ensuite l’attention sur les positions qui obtiennent déjà de hauts scores, ce qui sont généralement les premières et les dernières.
Un limite plus élevée résout-il le problème ? Non. Le contexte utilisable est souvent bien plus petit que ce qui est annoncé, surtout pour des tâches complexes à plusieurs étapes.
S’agit-il simplement d’un manque d’espace ? Non. La précision diminue de manière mesurable dès quelques milliers de tokens, ce qui est bien en dessous des centaines de milliers que les modèles avancés peuvent gérer.
Une précision concernant le code ci-dessus : il s’agit d’un modèle de fréquence simplifié. Le comportement réel dépend des poids d’attention entraînés qui s’ajoutent à cette base géométrique, de sorte que la base explique seulement une partie de l’effet et non la totalité.