Retour à l'accueil

Problèmes d'attention LLM dans les contextes longs

L'article analyse la dégradation de l'attention dans les LLM sur les contextes longs : effet Lost-in-the-Middle, augmentation des hallucinations et raisons architecturales. Les techniques de chunking, reranking et vérification pour les systèmes RAG sont décrites. Les benchmarks 2025-2026 confirment les problèmes même dans les modèles avec 1M de tokens.

Les LLM perdent des faits au milieu du contexte : correctifs pour RAG
Advertisement 728x90

Pourquoi les LLM oublient les faits dans les contextes longs : Attention et hallucinations expliquées

Les LLM basés sur les transformers souffrent d'une dégradation de l'attention dans les contextes longs : les biais de primauté et de récence affaiblissent le traitement du milieu du texte. Cela conduit à l'effet Perdu-au-Milieu, à une augmentation des hallucinations et à une perte de précision même avec des fenêtres de millions de tokens. Cet article couvre les causes du problème et les techniques pour les systèmes RAG en production.

Problèmes de l'auto-attention sur les longues séquences

L'auto-attention dans les transformers a une complexité quadratique O(n²), ce qui limite la longueur du contexte. Des optimisations comme FlashAttention, RoPE et ALiBi réduisent les coûts mais introduisent des biais positionnels :

  • Biais de primauté : Le début du contexte est le mieux mémorisé.
  • Biais de récence : La fin du contexte est également accessible.
  • Le milieu se perd : Les tokens au centre reçoivent une attention affaiblie en raison du masquage causal et de la dégradation des embeddings positionnels.

Augmenter la fenêtre de contexte n'élimine pas le biais ; elle étend la 'zone morte' au milieu. Le modèle ne reconnaît pas les lacunes mais génère des faits plausibles mais faux.

Google AdInline article slot

L'effet Perdu-au-Milieu en chiffres

La recherche de Nelson Liu (Stanford, 2023) a montré une courbe de précision en forme de U : une baisse de 30 à 50 % pour l'information au milieu de 20 à 30 documents. En 2025–2026, le MIT et d'autres laboratoires ont confirmé la persistance de l'effet dans les modèles avec 1M+ tokens.

Les benchmarks ont évolué :

  • Needle-in-a-Haystack : Un test pour trouver un fait dans un long texte.
  • U-NIAH (2026) : Compare les LLM à contexte long et le RAG.
  • NeedleBench, BABILong, LooGLE : Tests de synthèse à partir de parties dispersées.

Le Vectara Hallucination Leaderboard (HHEM-2.3, 2026) enregistre une augmentation des hallucinations à 32K+ tokens : le modèle relie les fragments A et C, ignore B, et invente ce qui manque.

Google AdInline article slot

Le mécanisme des hallucinations dans les contextes longs

OpenAI (2025, 'When More Becomes Less') a noté : un contexte plus grand augmente l'inférence mais réduit la qualité. Le modèle comble les lacunes avec des connexions 'plausibles'. Le MIT (2025) a ajouté : la confiance linguistique croît proportionnellement aux hallucinations—moins il y a de faits, plus la fiction est convaincante.

La chaîne : contexte long → bruit → attention floue → fait manquant → entraînement RLHF pour 'toujours répondre' → hallucination créative.

Stratégies de découpage pour le RAG

Un RAG efficace commence par un découpage approprié des documents. Évitez les séparateurs par défaut—utilisez des approches ciblées :

Google AdInline article slot
  • RecursiveCharacterTextSplitter (LangChain) : Morceaux de 400–512 tokens, chevauchement de 10–20 %. Fiable pour les textes structurés.
  • SemanticChunker : Découpage par embeddings, +15–20 % de précision sur les données complexes.
  • HierarchicalNodeParser (LlamaIndex) : Hiérarchie de 2048 → 512 → 128 tokens pour une récupération en étapes.

Passez au modèle 3–5 morceaux pertinents au lieu de 100K tokens de déchets.

Exemple d'implémentation du découpage avec reclassement :

from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.retrievers import ContextualCompressionRetriever
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS

# Récursif + chevauchement
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=512,
    chunk_overlap=100,
    separators=["\n\n", "\n", ". ", " ", ""]
)

# Séparateur sémantique
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2")
semantic_splitter = SemanticChunker(embeddings)

# Reclassement
compressor = CrossEncoderReranker(model_name="BAAI/bge-reranker-large")
compression_retriever = ContextualCompressionRetriever(
    base_compressor=compressor,
    base_retriever=vectorstore.as_retriever(search_kwargs={"k": 20})
)

Récupérez 20 morceaux, le reclassement garde les 5 premiers—réduit le bruit.

Vérification et workflows agentiques

Après la récupération, ajoutez des couches de vérification :

  • Auto-cohérence / CoVe : Génère une réponse, puis des questions pour auto-vérification.
  • Agent critique : Un LLM séparé valide la réponse par rapport au contexte.
  • Vérification symbolique : Graphe de connaissances ou Pydantic pour les dates, nombres, noms.

Workflow agentique (standard 2026) :

  • Planificateur : Décompose la tâche.
  • Agent de récupération : Recherche les sous-tâches.
  • Exécuteur : Génère.
  • Vérificateur : Vérification itérative.

Boucle de vérification minimale :

from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import Tool

def verify_answer(answer: str, context: str) -> str:
    prompt = (
        "Vérifiez si la réponse correspond au contexte. "
        "Répondez OUI/NON + explication.\n"
        f"Contexte : {context}\n"
        f"Réponse : {answer}"
    )
    return llm.invoke(prompt)

tools = [Tool(name="Vérificateur", func=verify_answer, description="Vérifie si la réponse correspond au contexte")]
agent = create_react_agent(llm, tools, prompt=react_prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True, max_iterations=5)

Hybride neuro-symbolique pour les domaines à haut risque

En droit, médecine, finance, combinez LLM + Graphe de connaissances + vérificateur symbolique. Réduit les hallucinations de 60 à 80 % (études 2025), mais nécessite une infrastructure.

Points clés à retenir :

  • Le contexte long amplifie Perdu-au-Milieu et les hallucinations en raison du biais d'attention.
  • Découpage (récursif/sémantique) + reclassement—70 % du succès du RAG.
  • Les couches de vérification (CoVe, agents critiques) sont essentielles en production.
  • Les workflows agentiques sont rentables avec les risques de réputation.
  • Approche hybride pour les domaines réglementés.

— Editorial Team

Advertisement 728x90

Lire ensuite