L’article Lost in the Middle

L'équipe Citead, mis à jour le

En bref. Lost in the Middle constate que l’exactitude dépend de la position dans les tâches testées en contexte long, avec des performances souvent plus faibles lorsque les informations pertinentes se trouvent au milieu.

Définition : Lost in the Middle: How Language Models Use Long Contexts est un article de recherche qui étudie comment la position des informations pertinentes dans le contexte d’entrée, le texte fourni à un modèle, influe sur l’exactitude (accuracy) de ses réponses. Il constate que les performances baissent souvent lorsque les informations nécessaires à une réponse se trouvent au milieu des entrées testées.

Points clés

  • La notice de l’ACL Anthology indique que Nelson F. Liu et ses collègues sont les auteurs de l’article, publié dans les Transactions of the Association for Computational Linguistics en 2024.
  • L’article teste la réponse aux questions à partir de plusieurs documents et la recherche de valeurs par clé (key-value retrieval) sur des données synthétiques, où le modèle renvoie la valeur associée à une clé fournie.
  • Le dépôt associé des auteurs fournit des données de questions-réponses avec 10, 20 et 30 documents, ainsi que des instructions pour produire des exemples où le document contenant la réponse occupe différentes positions.

Comment l’expérience isole-t-elle l’effet de la position ?

Dans l’expérience de questions-réponses, les auteurs utilisent 2 655 requêtes de NaturalQuestions-Open, un jeu de données qui associe d’anciennes requêtes de recherche Google à des réponses issues de Wikipédia et annotées par des humains. Chaque entrée contient une question et un ensemble de passages. Un seul passage contient la réponse annotée ; les autres servent de distracteurs.

Les auteurs déplacent le passage contenant la réponse dans l’entrée, tout en conservant la même réponse attendue. Ils font varier séparément la longueur du contexte en ajoutant ou en retirant des passages distracteurs. L’exactitude mesure si une réponse annotée figure dans la sortie du modèle. Ce protocole distingue l’effet de la position du document de celui du nombre de documents fournis.

La tâche de recherche de valeurs par clé réduit largement le besoin d’interprétation du langage naturel : l’entrée contient un objet JSON dont les clés et les valeurs sont des chaînes d’identifiants produites aléatoirement. Le modèle reçoit une clé et doit renvoyer la valeur associée. Les expériences utilisent 75, 140 et 300 paires.

Que montre la courbe en U ?

La section consacrée aux résultats décrit une courbe d’exactitude en U pour la réponse aux questions à partir de plusieurs documents. L’exactitude est généralement plus élevée lorsque le passage pertinent se trouve au début ou à la fin de l’entrée, et plus faible lorsqu’il occupe une position centrale. L’article nomme la préférence pour le début biais de primauté (primacy bias) et celle pour la fin biais de récence (recency bias).

Les différences entre tâches et modèles comptent. Claude-1.3 et sa variante à contexte étendu obtiennent des résultats presque parfaits dans les configurations évaluées de recherche de valeurs par clé. D’autres modèles testés rencontrent des difficultés avec les positions centrales. Placer la requête à la fois avant et après les données permet une recherche de valeurs par clé presque parfaite pour l’ensemble des modèles testés, mais ne modifie que légèrement les tendances observées en questions-réponses.

L’article compare aussi les modèles à leurs variantes à contexte étendu. Lorsque la même entrée tient dans la fenêtre de contexte des deux modèles, leurs performances en questions-réponses sont presque identiques.

Quelle application pour un site web ou un système de recherche d’information ?

La recommandation de l’article pour l’évaluation consiste à mesurer comment l’exactitude varie selon l’emplacement des informations pertinentes. Pour un système qui récupère des passages de sites web et les fournit à un modèle, cela suggère de tester l’ordre des passages dans la chaîne de production des réponses. Les expériences ne fournissent aucune règle de classement des pages ni d’emplacement à privilégier pour les faits dans une page HTML.

Le README des auteurs fournit cette commande pour produire des entrées contenant 20 documents en faisant varier la position du document contenant la réponse :

for gold_index in 0 4 9 14 19; do
    python -u ./scripts/make_qa_data_from_retrieval_results.py \
        --input-path nq-open-contriever-msmarco-retrieved-documents.jsonl.gz \
        --num-total-documents 20 \
        --gold-index ${gold_index} \
        --output-path qa_data/nq-open-20_total_documents_gold_at_${gold_index}.jsonl.gz
done

Ces indices couvrent le début, le milieu et la fin de la séquence de documents. La commande utilise le fichier de résultats de recherche indiqué dans le README.

Termes associés

Questions fréquentes

Que désigne le « milieu » ?

Il désigne la position des informations pertinentes dans l’entrée fournie au modèle. Dans l’expérience de questions-réponses de l’article, les auteurs modifient cette position en réordonnant les documents.

Que dois-je mesurer pour tester mon propre système de réponse ?

Vous pouvez suivre le protocole de l’article en déplaçant le passage contenant la réponse tout en conservant la même question et le même ensemble de passages. Comparez l’exactitude des réponses selon les positions et évaluez séparément les variations du nombre de passages fournis.

Sources

  1. ACL Anthology, « Lost in the Middle: How Language Models Use Long Contexts », 2024
  2. Transactions of the Association for Computational Linguistics, « Lost in the Middle: How Language Models Use Long Contexts », février 2024
  3. Nelson F. Liu et contributeurs, « Lost in the Middle: How Language Models Use Long Contexts », README, sans date

Vérifiez comment une page se lit pour les moteurs de réponse. Ouvrir l’analyseur de score GEO

Testez une page et voyez quoi corriger en premier

L'analyse prend en général moins de 10 secondes et ne demande pas de compte.

400 000+ pages notées dans le benchmark public