# Comment évaluer un système RAG?

Date: 2024-12-24 · Author: Robert Scales · https://guidetoartificialintelligence.com/fr/apprendre/evaluer-un-systeme-rag/

**Answer:** Testez les deux moitiés séparément. Vérifiez d’abord si la recherche trouve les bons passages pour un ensemble fixe de questions, vérifiez ensuite si les réponses s’en tiennent à ces passages, et faites relire un échantillon par une personne pour confirmer les notes automatiques.

Un système RAG, pour génération augmentée par la recherche (*retrieval-augmented generation*), répond aux questions en deux temps. Une étape de recherche extrait de vos documents les passages les plus pertinents, puis un modèle de langage rédige une réponse à partir de ces passages. L’idée vient d’un article de recherche de 2020 qui associait les connaissances intégrées d’un modèle à une réserve de textes consultable, pour que les réponses soient plus précises et plus faciles à rattacher à une source.

Comme il y a deux étapes, il y a deux façons d’échouer. La recherche peut rater le passage qui contient la réponse, ou le modèle peut ignorer un bon passage et écrire quelque chose qu’il a inventé. Une seule note du genre « la réponse est-elle bonne? » cache laquelle des deux s’est produite. Une évaluation utile mesure chaque étape séparément, avec les mêmes questions chaque fois, pour que vous puissiez savoir si un changement a aidé.

## Étape 1 : bâtir un jeu de questions

Commencez avec 30 à 50 vraies questions, idéalement tirées de ce que les utilisateurs demandent réellement. Pour chacune, notez quel document et quel passage contiennent la réponse, et une courte note sur ce qu’une bonne réponse doit contenir. Ajoutez quelques questions auxquelles vos documents ne répondent pas; un bon système devrait le dire au lieu de deviner.

Voici un petit échantillon pour le robot conversationnel d’aide d’une bibliothèque municipale. Les documents et les questions sont donnés à titre d’exemple.

| # | Question | Où se trouve la réponse | Doit contenir |
|---|---|---|---|
| 1 | Combien de livres puis-je emprunter à la fois? | Politique de prêt, section 2 | La limite, et le fait qu’elle s’applique par carte |
| 2 | Puis-je renouveler un livre en ligne? | Page d’aide du compte | Oui, et combien de fois |
| 3 | Prêtez-vous des télescopes? | Pas dans les documents | « Je ne sais pas » ou une redirection |

Enregistrez le jeu de questions dans un tableur ou un fichier, et ne le modifiez jamais à la légère. C’est votre règle à mesurer; s’il change, les anciennes et les nouvelles notes ne peuvent plus être comparées.

## Étape 2 : mesurer le taux de succès de la recherche

Faites passer chaque question par l’étape de recherche seule et notez les passages qui reviennent. Le taux de succès (*hit rate*) est la proportion de questions pour lesquelles le bon passage figure parmi les premiers résultats, par exemple les 5 premiers. Dans l’essai fictif ci-dessous, le système a trouvé le bon passage pour 41 des 47 questions qui ont une réponse, soit un taux de succès de 87 %.

Examinez attentivement les ratés. Souvent, un passage perd son sens une fois découpé de son document : une ligne comme « la limite est de dix documents » ne dit pas dix documents de quoi. Anthropic a rapporté en septembre que l’ajout d’une courte description de la provenance de chaque fragment, combiné à une recherche par le sens jumelée à une simple recherche par mots-clés, réduisait d’environ la moitié les échecs de recherche sur ses jeux de test. Des changements comme la taille des fragments, leur chevauchement et le nombre de passages renvoyés valent tous la peine d’être testés par rapport à votre taux de succès.

## Étape 3 : vérifier la fidélité

La fidélité (*faithfulness*) pose une question étroite : chaque affirmation de la réponse est-elle appuyée par les passages que le système a trouvés? Ce n’est pas la même chose qu’être vrai en général. Une réponse peut être correcte grâce à la mémoire du modèle et quand même être infidèle, ce qui compte parce que vous ne pouvez pas en retracer l’origine.

Un cadre de 2023 appelé RAGAS a rendu cela mesurable sans avoir à rédiger de réponses de référence. Un modèle de langage découpe la réponse en courts énoncés, puis vérifie chacun d’eux par rapport au texte trouvé. La note est le nombre d’énoncés appuyés divisé par le nombre total d’énoncés. Vous pouvez appliquer la même idée avec n’importe quel modèle performant et un prompt d’évaluation :

```prompt
Tu vérifies une réponse par rapport à des passages sources.
1. Découpe la RÉPONSE en énoncés courts qui contiennent chacun un seul fait.
2. Pour chaque énoncé, écris APPUYÉ si les PASSAGES l’affirment ou le laissent clairement entendre, sinon NON APPUYÉ. Donne une raison en une ligne.
3. Termine par : note = appuyés / total.

PASSAGES :
[colle les passages trouvés]

RÉPONSE :
[colle la réponse du système]
```

Quand les auteurs de RAGAS ont comparé ce genre de vérification automatique à des évaluateurs humains, les deux étaient d’accord sur la fidélité 95 % du temps, ce qui en fait l’une des notes automatiques les plus dignes de confiance.

> **À essayer :** choisissez dix questions auxquelles vos propres documents peuvent répondre, collez chaque réponse et ses passages trouvés dans le prompt d’évaluation ci-dessus, et notez les résultats dans un tableur. Vérifiez-en ensuite deux à la main et voyez si vous êtes d’accord avec l’évaluateur.

## Étape 4 : ajouter une relecture humaine

Les évaluateurs automatiques sont rapides, mais ils n’ont pas le dernier mot. À chaque évaluation, faites lire un échantillon par une personne, disons dix réponses, avec les passages à côté. Posez trois questions : est-ce exact? Est-ce appuyé par les passages? Un vrai utilisateur trouverait-il la réponse utile? Notez chaque désaccord avec la note automatique. Si l’évaluateur et la personne sont souvent en désaccord, corrigez le prompt d’évaluation avant de vous fier à ses chiffres.

Faites-en ensuite une habitude. Repassez tout le jeu de questions après chaque changement aux documents, au découpage, aux réglages de recherche ou au modèle, et tenez un simple journal des notes. Une baisse vous indique quelle étape a flanché.

## Quelles mesures comptent le plus?

Commencez par le taux de succès de la recherche, parce que rien en aval ne peut compenser un passage manquant. Si le bon texte n’est pas trouvé, le modèle refuse ou invente, et aucun prompt ne le sauvera. Le taux de succès est aussi peu coûteux à mesurer : il n’exige aucun modèle de langage, seulement votre jeu de questions et les passages attendus.

Vient ensuite la fidélité, la mesure qui protège les utilisateurs contre des réponses inventées livrées avec assurance. Dans l’étude RAGAS, c’était aussi la dimension la plus facile à juger de façon fiable pour un évaluateur automatique. La pertinence de la réponse (la réponse traite-t-elle la question posée?) et la pertinence du contexte (les passages trouvés sont-ils ciblés, sans remplissage inutile?) sont de bonnes mesures de second rang; la même étude les a trouvées plus difficiles à noter automatiquement, alors appuyez-vous davantage sur la relecture humaine dans ces cas.

Enfin, gardez une mesure que seules des personnes peuvent fournir : la réponse a-t-elle vraiment aidé? Un système peut obtenir de bons résultats pour chaque chiffre et quand même rater ce dont les utilisateurs ont besoin, comme une limite de renouvellement enfouie sous trois paragraphes. Un petit échantillon humain régulier garde les chiffres honnêtes.

## Sources

- RAGAS: Automated Evaluation of Retrieval Augmented Generation: https://arxiv.org/abs/2309.15217v1
- Introducing Contextual Retrieval: https://www.anthropic.com/news/contextual-retrieval
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks: https://arxiv.org/abs/2005.11401v1
