Guide
Métriques LLM : exactitude, fidélité, pertinence
Exactitude, fidélité, pertinence, cohérence, ROUGE : ce que mesure chaque métrique d'un LLM, comment Ragas et DeepEval la calculent.
Mis à jour le
Trois métriques couvrent l'essentiel de l'évaluation d'une application d'IA rédigée : l'exactitude (la réponse est-elle juste par rapport à la référence ?), la fidélité (s'appuie-t-elle sur les documents fournis, sans rien ajouter ?) et la pertinence (répond-elle à la question posée ?). On y ajoute selon l'usage la cohérence, le format, le temps de réponse et le coût. Voici comment les bibliothèques les plus utilisées les définissent, d'après leur documentation.
Le tableau d'ensemble
| Métrique | Question posée | Besoin d'une référence | Calcul |
|---|---|---|---|
| Exactitude | la réponse dit-elle la même chose que la référence ? | oui | modèle juge |
| Fidélité | chaque affirmation est-elle étayée par le contexte fourni ? | non (il faut le contexte) | modèle juge |
| Pertinence | la réponse traite-t-elle la question ? | non | modèle juge et plongements |
| Correspondance exacte | la sortie est-elle identique à la réponse attendue ? | oui | code |
| Recouvrement (ROUGE, BLEU) | combien de mots ou de suites de mots en commun ? | oui | code |
| Cohérence | des questions proches reçoivent-elles des réponses proches ? | non | plongements |
| Format, délai, coût | JSON valide ? délai et coût sous le seuil ? | non | code |
Exactitude
Ragas la nomme Factual Correctness. Un modèle découpe la réponse et la référence en affirmations, puis une inférence en langage naturel compare les deux listes. On compte les affirmations de la réponse présentes dans la référence (vrais positifs), celles qui n'y sont pas (faux positifs) et celles de la référence oubliées par la réponse (faux négatifs). On en tire une précision, un rappel et leur moyenne harmonique (F1), qui est le mode par défaut. Score de 0 à 1.
Deux réglages changent beaucoup le résultat : atomicity (découpe-t-on finement chaque phrase ?) et coverage (garde-t-on tous les détails ou seulement les points principaux ?). L'exemple de la documentation : la réponse « La tour Eiffel est à Paris », comparée à une référence qui ajoute sa hauteur, obtient 0,67 en mode F1 et 1,0 en mode précision. Autrement dit : rien de faux, mais une information manquante.
Dans DeepEval, l'exactitude s'écrit le plus souvent avec G-Eval : vous décrivez le critère (« la sortie est-elle juste au regard de la sortie attendue ? ») et un modèle juge note. Voir DeepEval.
Fidélité
La Faithfulness de Ragas divise le nombre d'affirmations de la réponse étayées par le contexte récupéré par le nombre total d'affirmations. Score de 0 à 1. L'exemple de la documentation : le contexte dit qu'Einstein est né le 14/03/1879 en Allemagne ; la réponse « né en Allemagne le 20/03/1879 » contient une affirmation étayée sur deux et obtient 0,5.
La fidélité ne demande pas de réponse de référence, ce qui la rend utilisable en production. Mais elle ne voit pas si le document lui-même est faux ou périmé. DeepEval propose une métrique du même nom, ainsi qu'une métrique « Hallucination ».
Pertinence
La Response Relevancy de Ragas part d'une idée simple : si la réponse traite bien la question, on doit pouvoir retrouver la question à partir de la réponse. Un modèle génère trois questions par défaut (paramètre strictness) à partir de la réponse, puis on calcule la similarité cosinus entre les plongements (représentations numériques du sens) de ces questions et celui de la question d'origine, et l'on fait la moyenne.
La documentation est nette : cette métrique ne mesure pas l'exactitude. Une réponse fausse mais dans le sujet obtient un bon score.
Les métriques calculées par code
Elles ne demandent aucun modèle juge et donnent le même résultat à chaque passage.
- Correspondance exacte : utile pour une classification ou une réponse courte. Anthropic donne l'exemple d'une analyse de sentiment comparée à une étiquette, après normalisation (minuscules, espaces retirés).
- ROUGE-L : longueur de la plus longue suite de mots commune avec la référence ; Anthropic l'utilise pour un résumé. Ces mesures récompensent les mêmes mots, pas le même sens.
- Cohérence : Anthropic propose de poser des questions paraphrasées et de mesurer la similarité cosinus entre les réponses.
- Format, délai et coût : promptfoo propose des assertions
is-json,latencyetcost, entre autres.
Choisir ses métriques
- Partez de vos critères de succès, pas de la liste d'une bibliothèque : la page des métriques de Ragas en liste une trentaine, réparties entre RAG, agents, comparaison de textes, SQL et critères généraux.
- Une métrique par critère suffit. Trois métriques suivies valent mieux que quinze qu'on ne lit pas.
- Combinez toujours une mesure de justesse (exactitude ou fidélité) avec une mesure de pertinence.
- Vérifiez chaque métrique fondée sur un modèle contre quelques relectures humaines : ses résultats dépendent du modèle juge.
Pour un assistant qui cherche dans vos documents, les métriques de récupération (précision et rappel du contexte) s'ajoutent à celles-ci : elles sont détaillées sur évaluer un RAG.
Questions fréquentes
Quelle différence entre exactitude et fidélité ?
L'exactitude compare la réponse à une réponse de référence : est-elle juste ? La fidélité compare la réponse aux documents fournis au modèle : chaque affirmation y est-elle étayée ? Une réponse peut être fidèle à un document périmé et donc inexacte.
La pertinence de la réponse vérifie-t-elle qu'elle est juste ?
Non. Dans Ragas, la pertinence mesure si la réponse traite la question posée, pas si son contenu est vrai. Il faut la combiner avec une mesure d'exactitude ou de fidélité.
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/factual_correctness/
- https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/faithfulness/
- https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/answer_relevance/
- https://github.com/confident-ai/deepeval
- https://platform.claude.com/docs/en/test-and-evaluate/develop-tests
- https://www.promptfoo.dev/docs/configuration/expected-outputs/