Aller au contenu principal

Leçon 3 — Le RAG : ancrer les réponses dans vos documents

Le problème qu'il résout

Un modèle ne connaît ni vos procédures internes, ni vos contrats, ni l'actualité postérieure à sa date de coupure. Interrogé dessus, il ne dira pas « je ne sais pas » : il produira une réponse plausible, c'est-à-dire probablement fausse.

Trois solutions existent, et une seule est raisonnable.

Réentraîner le modèle sur vos données : hors de portée, et de toute façon inadapté puisqu'il faudrait recommencer à chaque mise à jour.

Affiner le modèle sur votre documentation : ne fonctionne pas pour la connaissance factuelle, comme expliqué en leçon 2. Le modèle apprend le style, pas les faits.

Fournir les documents dans le contexte au moment de la question : c'est le RAG, et c'est la bonne réponse.


Le principe en trois temps

Récupérer les passages pertinents dans vos documents. Augmenter la consigne avec ces passages. Générer la réponse en exigeant qu'elle s'appuie uniquement sur eux.

La brique de récupération repose sur les plongements de phrases vus dans le cours de NLP : la question et les passages sont placés dans un même espace, et on récupère les plus proches. La requête « comment annuler mon abonnement » retrouve un document intitulé « procédure de résiliation », sans aucun mot commun.

Trois bénéfices d'un coup : le modèle accède à des connaissances qu'il n'a jamais vues ; ces connaissances se mettent à jour en modifiant les documents, sans réentraînement ; et la réponse devient vérifiable, puisqu'on peut citer les sources.


Le découpage : là où tout se joue

On ne peut pas plonger un document de cent pages en un seul vecteur — le sens s'y dilue complètement. Il faut le découper en passages, et ce découpage détermine la qualité de l'ensemble.

C'est l'étape la plus négligée et celle qui explique la plupart des échecs.

Trop petit — deux ou trois phrases : le passage récupéré manque de contexte. « Le taux est de 3,5 % » est inutile si l'on ne sait pas de quel produit il s'agit.

Trop grand — dix pages : le passage contient la réponse noyée dans du hors-sujet, ce qui dilue le plongement et gaspille du contexte.

Ce qui fonctionne en pratique :

  • Découper selon la structure du document — par section, par article, par question de FAQ — plutôt qu'à un nombre fixe de caractères. Un découpage respectant les titres est presque toujours meilleur qu'un découpage aveugle.
  • Viser 300 à 800 tokens par passage quand la structure ne guide pas.
  • Prévoir un chevauchement de 10 à 20 % pour éviter de couper une idée en deux.
  • Enrichir chaque passage de son contexte : titre du document, chemin des sections, date. Un passage qui commence par « Procédure de résiliation — section 4.2 » se récupère beaucoup mieux qu'un passage nu.

La récupération : ne vous contentez pas du vectoriel

La recherche vectorielle seule est un piège classique. Elle capte bien le sens général et rate ce qui est exact.

Elle échoue notamment sur les références précises — un numéro de contrat, une référence de produit, un code d'erreur —, sur les termes rares, et sur les négations, puisque « le contrat est valide » et « le contrat n'est pas valide » sont géométriquement très proches.

La solution standard, et elle est peu coûteuse :

Recherche hybride. Combinez la recherche vectorielle avec une recherche par mots-clés classique — BM25. La première trouve les reformulations, la seconde trouve les termes exacts. La fusion des deux listes de résultats est nettement supérieure à chacune séparément, et c'est le gain le plus rentable d'un RAG.

Réordonnancement. Récupérez généreusement — vingt à cinquante passages —, puis faites-les réordonner par un modèle plus précis qui évalue chaque paire question-passage, et ne gardez que les cinq meilleurs. Ce modèle est plus lent, et il ne traite que quelques dizaines de candidats. Le gain de pertinence est important.

Filtrage par métadonnées. Filtrez avant la recherche sémantique : par date, par service, par type de document, et surtout par droits d'accès de l'utilisateur. Ce dernier point n'est pas une optimisation mais une obligation, et nous y revenons plus bas.


Les quatre endroits où le RAG échoue

Diagnostiquer un RAG qui déçoit revient presque toujours à identifier lequel de ces quatre points est en cause.

1. La récupération ne trouve pas le bon passage

C'est de loin la cause la plus fréquente. Le modèle ne peut pas répondre correctement à partir de passages non pertinents — il produira alors une réponse inventée, et vous en conclurez à tort que « le modèle hallucine ».

Comment vérifier : consultez toujours les passages récupérés avant d'accuser le modèle. Constituez une liste de trente questions représentatives et vérifiez, pour chacune, si le passage contenant la réponse figure bien dans les résultats. Ce diagnostic prend deux heures et réorienteront la plupart des projets.

2. Le modèle ignore les passages fournis

Il arrive qu'un modèle réponde à partir de ses paramètres alors que la réponse était dans le contexte, notamment quand ses connaissances internes contredisent vos documents.

Ce qui aide : une consigne explicite — « réponds uniquement à partir des passages ci-dessous ; si l'information n'y figure pas, dis-le » —, une numérotation des passages avec obligation de citer leur numéro, et une température à 0.

3. La réponse est correcte mais invérifiable

Sans citations, l'utilisateur ne peut pas contrôler, et le système perd l'essentiel de son intérêt. Exigez des références aux passages et affichez-les. C'est ce qui transforme un gadget en outil professionnel.

4. Les droits d'accès sont contournés

Le point le plus grave, et le plus fréquemment oublié.

Si votre base vectorielle contient tous les documents de l'entreprise sans filtrage, n'importe quel utilisateur peut extraire n'importe quelle information par une question bien formulée. Les salaires, les documents des ressources humaines, les dossiers juridiques.

La règle : les droits d'accès se filtrent au niveau de la récupération, avant que le modèle ne voie quoi que ce soit. On ne demande jamais au modèle de ne pas divulguer : on ne lui donne pas le document.


RAG ou fine-tuning : le critère de décision

Votre besoinLa bonne réponse
Le modèle doit connaître nos procédures internesRAG
Les informations changent chaque semaineRAG
Nous devons pouvoir citer nos sourcesRAG
Les réponses doivent toujours suivre notre formatfine-tuning
Le modèle doit adopter notre terminologie métierfine-tuning
Nous voulons raccourcir des consignes trop longuesfine-tuning
Une tâche répétitive doit être exécutée de façon fiablefine-tuning
Tout ce qui précèdeles deux

La formule qui résume : le RAG apporte de la connaissance, le fine-tuning apporte du comportement. Ils ne se substituent pas l'un à l'autre.


Évaluer un RAG

Un RAG a deux étages, et il faut les évaluer séparément. Sinon vous ne saurez jamais lequel corriger.

Évaluer la récupération. Constituez trente à cinquante questions dont vous connaissez le document de réponse. Mesurez la proportion de cas où le bon passage figure dans les résultats — c'est le rappel. Si ce chiffre est mauvais, aucune amélioration du modèle générateur ne sauvera le système.

Évaluer la génération. Sur les cas où la récupération a réussi, vérifiez trois choses : la réponse est-elle fidèle aux passages, sans ajout ? Répond-elle effectivement à la question ? Les citations sont-elles exactes ?

Le cas à ne pas oublier : les questions sans réponse dans votre base. Le système doit répondre qu'il ne sait pas. Incluez systématiquement une dizaine de ces cas dans votre évaluation — c'est là que les systèmes se montrent dangereux, et c'est le test que presque personne ne fait.


À retenir

  • Le RAG récupère, augmente, génère : il fournit la connaissance au lieu de l'espérer.
  • Le découpage détermine la qualité de tout le système ; suivez la structure du document et enrichissez chaque passage de son contexte.
  • La recherche vectorielle seule rate les termes exacts : la recherche hybride est le gain le plus rentable.
  • Le réordonnancement sur vingt à cinquante candidats améliore nettement la pertinence.
  • Quatre causes d'échec : mauvaise récupération, passages ignorés, absence de citations, droits d'accès non filtrés.
  • Les droits d'accès se filtrent à la récupération, jamais par consigne au modèle.
  • Évaluez récupération et génération séparément, et testez les questions sans réponse.

Leçon suivanteLes agents : outils, boucles et fragilité →