Évaluer un système RAG (Partie 1) : le framework technique¶
La bataille du RAG se gagne sur deux fronts : la capacité à trouver l'information (Retrieval) et la capacité à l'utiliser sans inventer (Génération). Pour illustrer ce framework, prenons un exemple concret sur l'histoire du Burkina Faso.
1. Métriques de Retrieval : avons-nous les bons documents ?¶
Contextual Recall (Rappel)¶
Le Rappel vérifie si nous avons trouvé tous les ingrédients nécessaires pour répondre. Il se base sur le ratio entre les faits trouvés et les faits attendus :
Exemple :
- Question : "Quels sont les faits marquants de l'indépendance du pays ?"
- Faits attendus (Ground Truth) :
1. Proclamation de la République (11 déc 1958). 2. Indépendance totale (5 août 1960). 3. Maurice Yaméogo premier président. * Contexte récupéré par l'IA : Un document mentionnant le 5 août 1960 et Maurice Yaméogo, mais aucun document sur 1958.
Calcul étape par étape :
- Nombre de faits attendus = 3
- Nombre de faits trouvés dans le contexte = 2
- Ratio :
Contextual Precision (Précision)¶
La Précision vérifie si les informations utiles arrivent en tête de liste.
Exemple :
Si notre moteur de recherche renvoie 5 documents :
- Rang 1 : Un texte sur la culture du coton (Non pertinent).
- Rang 2 : Un texte sur Maurice Yaméogo et 1960 (Pertinent !).
- Rang 3 : Un texte sur le climat (Non pertinent).
Ici, la précision est faible car l'information utile est noyée après un document hors-sujet.
2. Métriques de Génération : le LLM est-il fiable ?¶
Faithfulness (Fidélité / Groundedness)¶
C'est le rempart contre l'hallucination. L'IA doit répondre uniquement avec ce qu'on lui a donné. Elle se mesure par le ratio des affirmations étayées :
Exemple :
- Contexte fourni : "Le Burkina Faso a obtenu son indépendance le 5 août 1960."
- Réponse de l'IA : "L'indépendance a eu lieu le 5 août 1960 sous la direction de Thomas Sankara."
Calcul étape par étape :
- Affirmation 1 : "Indépendance le 5 août 1960" -> Présente dans le contexte (VRAI).
- Affirmation 2 : "Sous la direction de Thomas Sankara" -> Absente du contexte (Thomas Sankara est arrivé au pouvoir en 1983) (FAUX).
- Score de fidélité :
Answer Relevancy (Pertinence)¶
L'IA a-t-elle vraiment répondu à la question ?
Exemple :
- Question : "Qui était le premier président du Burkina Faso ?"
- Réponse de l'IA : "Le Burkina Faso est un pays enclavé d'Afrique de l'Ouest dont la capitale est Ouagadougou."
La réponse est vraie (Fidèle), mais elle ne répond pas à la question. La similarité cosinus entre la question et la réponse sera très basse.
Pourquoi diviser ainsi ?¶
Cette séparation permet d'identifier le coupable en cas d'erreur :
- Recall bas (ex: On ne trouve pas 1958) : Le problème vient de votre Indexation (Data Engineering).
- Faithfulness basse (ex: On cite Sankara en 1960) : Le problème vient de votre Prompt ou du Modèle (Génération).
Dans la Partie 2, nous verrons comment piloter ces scores en production.
