Guide
Évaluer un RAG : métriques, jeu de test et méthode
Évaluer un RAG : séparer récupération et génération, métriques de Ragas, jeu de questions de référence et limites du modèle juge.
Mis à jour le
Pour évaluer un RAG, il faut mesurer séparément ses deux moitiés : la récupération (le bon passage a-t-il été retrouvé ?) et la génération (la réponse s'appuie-t-elle sur ce passage, et répond-elle à la question ?). Une note globale « la réponse est bonne ou mauvaise » ne dit pas quoi corriger. Ce qu'il vous faut : un jeu de questions réelles, quatre métriques et une routine.
Étape 1 : le jeu de questions
Rien ne remplace des questions réellement posées par vos équipes ou vos clients. Pour chacune, notez :
- la question telle qu'elle a été formulée, fautes comprises ;
- la réponse attendue, rédigée par quelqu'un du métier ;
- le ou les documents (et si possible les passages) qui contiennent la réponse ;
- quelques questions sans réponse dans vos documents, pour vérifier que le système sait dire qu'il ne sait pas.
Un jeu de quelques dizaines de questions, bien choisies, vaut mieux qu'un millier de questions générées automatiquement que personne n'a relues.
Étape 2 : les métriques
La bibliothèque Python Ragas liste ses métriques pour le RAG : Context Precision, Context Recall, Context Entities Recall, Noise Sensitivity, Response Relevancy, Faithfulness, et des variantes multimodales. Quatre suffisent pour commencer.
| Métrique | Ce qu'elle mesure | Partie testée | Référence nécessaire |
|---|---|---|---|
| Précision du contexte | les passages pertinents sont-ils classés en tête ? | récupération | oui (ou la réponse générée, selon la variante) |
| Rappel du contexte | les informations de la réponse attendue sont-elles dans les passages récupérés ? | récupération | oui |
| Fidélité | chaque affirmation de la réponse est-elle étayée par les passages ? | génération | non |
| Pertinence de la réponse | la réponse répond-elle à la question posée ? | génération | non |
Fidélité (documentation) : la réponse est découpée en affirmations ; on compte celles que le contexte récupéré permet d'inférer, divisées par le total. Score de 0 à 1. L'exemple de la documentation : une réponse avec deux affirmations dont une seule est étayée obtient 0,5.
Précision du contexte (documentation) : moyenne des précisions à chaque rang. Elle augmente quand les passages pertinents sont en haut de la liste ; un passage hors sujet placé en premier la fait baisser.
Rappel du contexte (documentation) : la réponse de référence est découpée en affirmations ; on compte celles que les passages récupérés étayent. Score de 0 à 1. Un score bas signifie que la recherche a manqué des informations.
Pertinence de la réponse (documentation) : un modèle génère, à partir de la réponse, trois questions par défaut (paramètre strictness) ; on mesure leur proximité avec la question d'origine. Elle ne vérifie pas l'exactitude, seulement que la réponse est dans le sujet.
Étape 3 : lire les résultats
| Symptôme | Cause probable | Où agir |
|---|---|---|
| Rappel du contexte bas | le bon passage n'est pas retrouvé | découpage, recherche hybride |
| Rappel bon, précision basse | il est retrouvé mais noyé | retri |
| Contexte bon, fidélité basse | le modèle ajoute des choses | consignes, citations |
| Fidélité bonne, pertinence basse | la réponse est juste mais à côté | consignes, reformulation de la question |
Les limites de l'évaluation automatique
Ces métriques reposent pour la plupart sur un modèle de langage utilisé comme juge : la documentation Ragas précise que les métriques fondées sur un modèle peuvent faire un ou plusieurs appels pour calculer un score. Trois conséquences :
- Un coût. Chaque évaluation consomme des appels au modèle juge.
- Une variabilité. Deux passages du même jeu peuvent donner des scores légèrement différents.
- Un juge à vérifier. Faites relire par une personne du métier un échantillon de réponses notées, et comparez sa note à celle du juge. Si elles divergent, c'est le juge qu'il faut corriger avant de se fier aux chiffres.
La documentation d'Anthropic sur la réduction des hallucinations propose une vérification complémentaire simple : lancer plusieurs fois la même question et comparer les réponses ; des écarts entre elles peuvent signaler une hallucination.
Exemple de code
D'après la documentation de la métrique de fidélité, l'interface recommandée prend trois champs : user_input (la question), response (la réponse) et retrieved_contexts (la liste des passages). Le score se lit dans result.value. La documentation signale que l'ancienne interface (SingleTurnSample) est dépréciée depuis la version 0.4 et sera retirée en version 1.0 : vérifiez la version installée avant de copier un tutoriel.
La routine
- Figez le jeu de questions et versionnez-le avec le code.
- À chaque changement (découpage, modèle, consignes), relancez l'évaluation complète.
- Gardez un tableau des scores par version ; ne gardez un changement que s'il améliore la métrique visée sans dégrader les autres.
- Ajoutez au jeu les questions réelles qui ont posé problème en production.
Si votre RAG devient agentique, il faudra aussi évaluer les décisions de l'agent, pas seulement ses réponses : voir évaluer un agent IA.
Questions fréquentes
Comment se calcule la fidélité (faithfulness) dans Ragas ?
On découpe la réponse en affirmations, on vérifie lesquelles sont étayées par le contexte récupéré, et l'on divise le nombre d'affirmations étayées par le total. Le score va de 0 à 1.
Peut-on évaluer un RAG sans réponses de référence ?
En partie : la fidélité et la pertinence de la réponse n'ont pas besoin de référence. Le rappel du contexte, lui, demande une réponse de référence ou les passages attendus.
Sources
Pages consultées pour écrire cet article :
- https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/
- https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/faithfulness/
- https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_precision/
- https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/context_recall/
- https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/answer_relevance/
- https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/reduce-hallucinations