En une phrase
Les grands modèles de langage (LLM) avec des fenêtres de contexte étendues souffrent d'un "effet de position sérielle" (courbe en U), performant bien au début et à la fin de l'entrée, mais mal au milieu, rendant l'ajout excessif de contexte contre-productif, coûteux et parfois même préjudiciable à la précision.
Points clés
- L'effet "Lost in the Middle" (Perdu au milieu) : Les LLM montrent une baisse significative de performance pour extraire des informations pertinentes situées au milieu de leur fenêtre de contexte, contrastant avec une meilleure performance pour les informations placées au début (biais de primauté) ou à la fin (biais de récence), un phénomène similaire à la mémoire humaine.
- L'augmentation de la fenêtre de contexte n'est pas une solution : Même les modèles avec des contextes massifs (jusqu'à 100 000 tokens comme Claude 1.3) ne parviennent pas à aplatir cette courbe en U, prouvant que la simple capacité n'améliore pas la fiabilité de la récupération d'informations au centre.
- Le contexte peut être contre-productif : Dans les tâches de question-réponse multi-documents (RAG), ajouter trop de contexte peut réduire la précision d'un LLM, le faisant parfois moins bien qu'un modèle sans aucun document ("closed book"), en raison de l'information pertinente se retrouvant dans la "zone morte" du milieu.
- Facteurs influençant l'effet : L'architecture (decoder-only vs. encoder-decoder) et le placement de la requête (avant les documents) peuvent aider dans des tâches simples de récupération de clé-valeur, mais ne résolvent pas le problème pour des tâches complexes de QA. Le biais semble inhérent au traitement des longues séquences, et non seulement au fine-tuning.
- Stratégies d'atténuation pratiques pour le RAG : Pour les développeurs, il est crucial de prioriser un "reranking" efficace pour placer les documents les plus pertinents au début du contexte (exploiter le biais de primauté) et de pratiquer la "troncation de la liste de rang" en n'envoyant qu'un nombre limité de documents de haute qualité pour éviter d'ajouter du bruit et de pousser l'information vitale au milieu.
Ressources
- GPT — famille de modèles de langage (versions testées : GPT-3.5 Turbo, GPT-3.5 Turbo 16k)
- Claude — famille de modèles de langage (version testée : Claude 1.3 100k)
- Lost in the Middle — titre du papier de recherche à la base de l'analyse
- Ollama — modèle de langage de type decoder-only (mentionné comme exemple)
- Flan UL2 — modèle de langage encoder-decoder (mentionné comme exemple d'architecture)
- MPT-30B — modèle de langage de base
- MPT-30B-Instruct — version du modèle MPT-30B réglée par instruction
- Llama 2 — famille de modèles de langage (versions testées : 7B, 13B, 70B)
