Prenez un dossier de 500 pages. L'information décisive se trouve page 247, au milieu d'un paragraphe. Vous donnez tout au modèle, qui a une fenêtre de contexte assez grande pour l'avaler entièrement, et vous posez votre question. Et il passe à côté.
C'est un cas très courant, et c'est contre-intuitif. Présent dans le contexte ne veut pas dire correctement utilisé.
Deux raisons à ça. La première est une histoire de bruit. Votre phrase utile est noyée au milieu de dizaines de milliers d'autres, dont beaucoup parlent de sujets voisins avec un vocabulaire similaire. Plus il y a de candidats plausibles autour, plus la bonne information est difficile à isoler. La seconde tient à la position : plusieurs travaux ont montré que les modèles exploitent mieux ce qui se trouve au début et à la fin d'un long contexte que ce qui est enfoui au milieu. Le phénomène a même un nom, "lost in the middle".
À cela s'ajoutent deux effets très prosaïques. Le coût, puisqu'on paie tous les tokens envoyés, y compris les 499 pages inutiles. Et la latence, parce qu'un contexte énorme met plus de temps à être traité. Un assistant qui répond en trente secondes au lieu de trois, c'est un assistant qu'on n'utilise plus.
C'est exactement pour ça qu'un bon RAG ne consiste pas à envoyer le maximum de texte possible. Son travail, c'est de fournir le bon contexte, pas le plus gros. Quelques passages bien choisis battent presque toujours cinquante pages "au cas où". D'où l'attention portée au découpage, au filtrage par métadonnées, et au reranking, cette seconde passe qui reclasse les passages récupérés avant de les envoyer au modèle.
Reste une question de fond qu'on a contournée depuis le début de cette série : par quel mécanisme le modèle relie-t-il un mot à un autre, et décide-t-il de ce qui compte dans une phrase ? C'est l'attention, le coeur des Transformers, et c'est le sujet du prochain post.
Envie de mettre l'IA au travail dans votre entreprise ?
Chatbot sur vos documents, agents, automatisation — parlons-en.
Discuter de mon projet