Ressources · 09
Qualité RAG : évaluer un assistant documentaire sur preuves
Mesurer corpus, récupération, citations, réponse, abstention et dérive séparément pour savoir réellement ce qui doit être corrigé.
· 12 min
Ce que ce guide permet
- Savoir si l’échec vient du corpus, du retrieval ou du modèle
- Contrôler chaque citation
- Valoriser une bonne abstention
- Détecter la dérive après changement
Contrôle express
- La source de référence est-elle autorisée et à jour ?
- Le bon passage apparaît-il dans les premiers résultats ?
- Chaque affirmation décisive est-elle étayée ?
- L’assistant sait-il dire qu’il ne sait pas ?
- Les cas sensibles sont-ils escaladés ?
Méthode pas à pas
- 01
Définir les tâches utiles
Collectez des questions réelles, leurs variantes et le résultat métier attendu. Ajoutez ambiguïtés, conflits de sources, documents périmés et demandes hors périmètre.
Livrable : taxonomie de cas et risques.
- 02
Assainir le corpus
Attribuez propriétaire, droits, date de validité et statut à chaque source. Retirez doublons, fragments orphelins et documents dont l’autorité est inconnue.
Livrable : registre de corpus.
- 03
Évaluer la récupération
Mesurez si les passages nécessaires sont retrouvés et correctement ordonnés avant d’évaluer la formulation finale. Inspectez aussi les requêtes sans preuve disponible.
Livrable : mesures de couverture et pertinence.
- 04
Évaluer réponse et citations
Vérifiez exactitude par rapport aux passages, complétude, limites, lien entre citation et affirmation, ainsi que la capacité à signaler une contradiction.
Livrable : grille de fidélité et utilité.
- 05
Tester refus et attaques
Ajoutez injection indirecte, demande de données interdites, source malveillante, faux document prioritaire et action irréversible. Définissez les escalades humaines.
Livrable : résultats sécurité et garde-fous.
- 06
Surveiller les changements
Versionnez corpus, index, paramètres, modèle et consignes. Rejouez le jeu stable à chaque évolution et analysez les retours réels sans conserver plus de données que nécessaire.
Livrable : tableau de dérive et procédure de revue.
Comprendre · essayer · décider
Réponses IA : rendre visibles les abstentions et les dénominateurs
Le profil génératif du NIST traite notamment les risques de confabulation et l’évaluation en contexte. Pour un assistant documentaire, nous proposons de compter séparément les questions testées, les réponses produites et les réponses validées à partir des documents. Les formules suivantes constituent une grille pédagogique CIE, sans seuil universel.
Définissez « validée » avant le test : réponse exacte, citation qui soutient réellement l’affirmation, source autorisée et suffisamment à jour pour la question. Un lien présent dans le texte ne satisfait pas automatiquement ces critères. Notez la version du modèle, du corpus et de la consigne.
Séparez questions ordinaires, documents absents, sources contradictoires et demandes hors périmètre. Une abstention attendue sur une question insoluble peut être correcte. Le simulateur décrit seulement le sous-ensemble où une réponse était attendue ; les abstentions attendues et les erreurs critiques demandent des résultats distincts.
Repères et preuves à conserver
| Repère | Ce que vous pouvez conclure | Preuve à conserver |
|---|---|---|
| Questions testées | Périmètre où une réponse était attendue | Jeu de questions et règle d’évaluation |
| Réponses produites | Part des questions ayant reçu une réponse | Réponses et abstentions conservées |
| Réponses validées | Réponses respectant le critère annoncé | Verdict et passage documentaire justificatif |
| Questions sans réponse | Questions testées − réponses produites | Motif et examen de l’abstention |
Du constat à la décision
- Définir la vérité attendue
- Figer corpus et version
- Vérifier chaque réponse
- Comparer par famille
Décomposer un résultat avant de décider
La même série de cent questions peut donner 90 % de qualité parmi les réponses et seulement 72 % de réussite sur l’ensemble. La décomposition suivante utilise les valeurs de l’exemple fictif, avec une réponse attendue pour chaque question. Elle n’est ni un benchmark fournisseur ni une note NIST.
- Réponses validées
- 72 / 10072 % du jeu
- Réponses non validées
- 8 / 1008 % du jeu
- Questions sans réponse
- 20 / 10020 % du jeu
- 72 / 100 · Validées
- 8 / 100 · Non validées
- 20 / 100 · Sans réponse
100 = 72 + 8 + 20. Parmi les 80 réponses produites, 72 sont validées : 90 %. Les vingt absences restent visibles.
| Famille fictive | Testées / produites / validées | Lecture |
|---|---|---|
| Questions ordinaires | 80 / 78 / 72 | Qualité 72/78 ≈ 92,31 % ; couverture 78/80 = 97,5 %. |
| Questions sensibles | 20 / 2 / 0 | Qualité 0/2 = 0 % ; couverture 2/20 = 10 %. |
| Ensemble | 100 / 80 / 72 | Qualité 90 % ; couverture 80 % ; réussite 72 %. |
Ces effectifs illustrent une différence de sous-groupes. Leur petite taille ne permet pas de généraliser à toutes les futures questions.
Contrôles avant de conclure
- Classer séparément erreur factuelle, citation non justificative, source périmée, accès indu et abstention. Une moyenne ne décrit pas la gravité.
- Pour un passage cité, vérifier la présence de la preuve et son lien avec l’affirmation. Tester aussi les documents retirés ou accessibles à un autre rôle.
- Conserver un jeu de questions à réponse attendue et un autre à abstention attendue ; annoncer les deux dénominateurs et leurs règles.
- Après changement du corpus, du modèle ou des droits, rejouer les mêmes cas avec les versions consignées. Traiter les erreurs critiques avant de fixer un seuil métier.
Décision : enquêter sur la famille sensible et les huit réponses non validées. Le 90 % global ne constitue pas une autorisation de mise en production.
Règle de calcul
Qualité = validées / produites. Couverture = produites / testées. Réussite sur le jeu = validées / testées. Un dénominateur nul donne un résultat non calculable.
Changer une hypothèse
Un taux de réponses plus élevé, une qualité conditionnelle plus faible
Deux configurations sont comparées sur les mêmes cent questions fictives avec les mêmes critères de validation.
- Configuration A
60 réponses, dont 54 validées : 90 % des réponses et 54 % du jeu complet.
- Configuration B
90 réponses, dont 63 validées : 70 % des réponses et 63 % du jeu complet.
- Arbitrage
B fournit neuf réponses validées de plus, mais aussi davantage de réponses non validées.
Exercice de lecture : les variantes décrivent des situations fictives.
La configuration B est-elle automatiquement meilleure ?
- Nouvel élément
- A compte six réponses non validées ; B en compte vingt-sept.
- Ce que cela change
- Comparer conséquences et coût de revue des erreurs, pas uniquement couverture ou qualité conditionnelle. Fixer la politique d’abstention en fonction de l’usage.
Et si les questions ont servi au réglage ?
- Nouvel élément
- Les consignes ont été ajustées en relisant ce même jeu.
- Ce que cela change
- Conserver ces résultats comme résultats de réglage et évaluer aussi un jeu distinct. Éviter de présenter le même ensemble comme une épreuve indépendante.
Exemple d’application
Situation illustrative
Un assistant interne répond à partir de procédures dont certaines sont expirées. Le jeu d’essai contient des questions courantes, ambiguës et sans réponse ; chaque citation est contrôlée contre la version du document.
Décision et preuve attendue
Le déploiement attend que les sources périmées soient écartées, que les réponses non étayées soient refusées et que le propriétaire du corpus soit identifié.
Indicateurs de pilotage
| Indicateur | Ce qu’il mesure | Première action |
|---|---|---|
| Couverture retrieval | Questions dont les passages nécessaires sont retrouvés | Corriger corpus, découpage ou requête avant le modèle |
| Fidélité | Affirmations réellement soutenues par les sources citées | Bloquer ou reformuler les réponses non étayées |
| Abstention utile | Cas sans preuve correctement refusés ou escaladés | Ajuster les seuils de confiance |
| Régression | Écart de qualité entre deux versions sur le même jeu | Identifier la modification responsable |
Erreurs fréquentes
- Mesurer uniquement la fluidité du texte
- Mélanger échec de retrieval et hallucination
- Utiliser un jeu trop facile
- Changer plusieurs composants sans test comparatif
Questions fréquentes
Combien de questions faut-il ?
Commencez avec un ensemble représentatif et versionné couvrant les risques importants. Sa diversité et sa qualité comptent davantage qu’un grand volume artificiel.
Une métrique automatique suffit-elle ?
Non. Elle accélère le tri, mais les cas sensibles, ambigus et métier nécessitent des critères explicites et une revue humaine.
Faut-il conserver toutes les conversations ?
Non. Ne gardez que les traces nécessaires, avec finalité, accès et durée définis. Préférez des cas anonymisés pour l’amélioration.
RAG : droits, citations et caches
Évaluer une réponse avec ses droits documentaires
Une citation pertinente peut soutenir une réponse exacte tout en révélant un document interdit. L’évaluation RAG doit distinguer fidélité, fraîcheur et autorisation des passages effectivement fournis au modèle.
- Annoter les documents permis pour chaque identité de test.
- Retirer un groupe puis rejouer une conversation et une citation existantes.
- Conserver séparément réponse erronée, absence de preuve et exposition hors périmètre.
Explorer la matrice de droits RAG et ses cas de test →
Références consultées le · OWASP · LLM08:2025 Vector and Embedding Weaknesses OWASP · API1:2023 Broken Object Level Authorization
IA : contrôler un résultat JSON
Une référence récupérée ne prouve pas la valeur extraite
Un RAG peut trouver le bon document et produire un JSON conforme qui en déforme un champ. Séparer le test de récupération, le contrat de sortie et le rapprochement avec le passage permet d’identifier l’étape à corriger.
- Garder une référence indépendante pour les champs décisifs.
- Tester valeur absente, contradiction et document non fourni.
- Conserver les contrôles non exécutés comme tels, sans les compter comme réussis.
Comparer les 14 sorties et leur motif →
Sources relues le · IETF · RFC 8259 · JSON Schema · Object reference · JSON Schema · Draft 2020-12 validation · Python 3.12 · json decoder · python-jsonschema · Schema validation · OWASP · LLM05:2025 Improper Output Handling
RAG : pertinence et classement
Un RAG peut récupérer des documents utiles et produire malgré tout une réponse incorrecte. Évaluer la recherche demande donc son propre jeu de questions, ses jugements de pertinence et une profondeur de lecture définie. Ce dossier explique quatre mesures de classement et montre comment les lire sans les confondre avec la fidélité de la réponse, les droits d’accès ou une garantie de résultat métier.
Repères documentaires : Stanford CS276, support d’évaluation de l’archive 2019, et définition du rang réciproque dans NIST TREC. L’atelier CIE utilise des jugements binaires et une seule requête à la fois. RR@k est ici tronqué à k ; MRR désigne une moyenne de RR sur plusieurs requêtes, qui n’est pas calculée dans cet atelier.
Stanford CS276 · Retrieval evaluation · 2019 course archive · PDF pp. 3, 5–6 · consulted 2026-10-23
Quatre mesures, quatre questions différentes
| Mesure | Calcul dans l’atelier | Lecture utile | Condition ou limite |
|---|---|---|---|
| Precision@k | Pertinents parmi les k premiers / k | Mesure la proportion utile dans la fenêtre examinée. | Indisponible si un jugement manque dans les k premiers. |
| Recall@k | Pertinents parmi les k premiers / R | R désigne le nombre de pertinents dans tout le petit corpus jugé. | Si R est inconnu, la valeur n’est publiée que lorsqu’elle reste définie et identique dans tous les cas possibles. |
| RR@k | 1 / rang du premier pertinent dans les k premiers | Vaut 0 si aucun pertinent n’apparaît dans cette fenêtre entièrement jugée. | Un document non jugé avant le premier pertinent rend ce rang incertain. |
| nDCG@k | DCG@k / IDCG@k | Compare le gain du classement à celui de l’ordre idéal à même k. | La valeur reste indisponible si elle change entre les cas possibles ou si l’un d’eux a un idéal nul. |
Convention explicite : jugement rᵢ = 0 ou 1 ; DCG@k = Σᵢ₌₁ᵏ rᵢ / log₂(i + 1). En binaire, le gain 2ʳⁱ − 1 vaut aussi rᵢ. IDCG@k place d’abord min(R, k) documents pertinents avec le même discount. nDCG@k = DCG@k / IDCG@k si cet idéal est défini et non nul. Conserver gain, discount, profondeur et conventions avec tout score publié.
NIST TREC · Reciprocal rank definition · Repository snapshot 35cf096ba6d5ae08ca4803c056b31ed61a56a6d4 · consulted 2026-10-23
Un corpus fictif de six documents, avec jugements déclarés
Les titres et les jugements ci-dessous sont créés pour l’exercice. Ils ne résultent ni d’une recherche réelle ni d’un jugement automatique fondé sur le titre. 1 signifie pertinent, 0 non pertinent et ? non jugé. Les colonnes Q1 à Q5 correspondent aux besoins affichés dans l’atelier.
- Q1 · Préparer un test de restauration
- Q2 · Autoriser une lecture documentaire
- Q3 · Contrôler un capteur quantique
- Q4 · Test de restauration : jugement C manquant
- Q5 · Restauration : B à juger, autres pièces hors sujet
| Document fictif | Q1 | Q2 | Q3 | Q4 | Q5 |
|---|---|---|---|---|---|
| A · Procédure de restauration | 1 | 0 | 0 | 1 | 1 |
| B · Budget de reprise | 1 | 0 | 0 | 1 | ? |
| C · Journal de test de restauration | 1 | 0 | 0 | ? | 0 |
| D · Guide des comptes et permissions | 0 | 1 | 0 | 0 | 0 |
| E · Politique d’archivage | 0 | 0 | 0 | 0 | 0 |
| F · Calendrier de publication | 0 | 0 | 0 | 0 | 0 |
Atelier de classement documentaire
Choisir un besoin puis saisir une liste ordonnée d’identifiants A à F séparés par des virgules. Faire varier k pour observer uniquement les k premiers résultats. La liste peut omettre des documents, mais chaque identifiant doit être unique et k ne peut pas dépasser sa longueur. Les calculs restent locaux, sans collecte, import, transfert, stockage ou export.
Ce lecteur n’interroge aucun moteur, corpus privé ou modèle d’IA. Il ne mesure ni véracité de réponse, ni citation correcte, ni sécurité des permissions. Les scores portent sur les jugements déclarés dans ce petit univers fictif. Ne pas présenter une valeur de cet exercice comme un benchmark de votre système ou comme un seuil universel de mise en production.
A à F, sans doublon, séparés par des virgules ; espaces ASCII autorisés. k est un entier de 1 à 6, au plus égal à la longueur de la liste.
Résultat
Non jugé et non pertinent sont deux états distincts ↓
| Rang | Document fictif | Jugement | Discount | Contribution DCG |
|---|
Non jugé et non pertinent sont deux états distincts
| Situation | Convention pédagogique CIE |
|---|---|
| Jugement manquant dans les k premiers | La précision peut varier. Le rang réciproque reste connu si le premier pertinent est identifié avant les documents non jugés. |
| Jugement manquant ailleurs | R devient un intervalle de possibilités. Ne pas supposer que rappel et nDCG sont toujours inconnus : leur valeur peut rester constante, par exemple si l’ordre demeure idéal dans tous les cas. |
| Aucun pertinent dans un corpus entièrement jugé | Precision@k et RR@k valent 0. Le lecteur affiche Recall@k et nDCG@k indisponibles pour ce cas de dénominateur nul. |
| Règle de publication CIE | Explorer toutes les affectations binaires des jugements manquants, au plus 64 avec six documents. Publier une mesure seulement si elle est définie et identique dans chaque affectation. Ce sont des possibilités, sans probabilité attribuée ni imputation réelle. |
Dix scénarios commentés, disponibles sans JavaScript
K01 · Pertinents en tête
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q1 | A,B,C,D,E,F | 3 | Precision@3 = 1, Recall@3 = 1, RR@3 = 1 et nDCG@3 = 1 dans ce corpus entièrement jugé. |
K02 · Pertinents après la coupure
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q1 | D,E,F,A,B,C | 3 | Les quatre mesures valent 0 à k = 3. Les documents pertinents existent, mais sont placés après la fenêtre observée. |
K03 · Premier pertinent au deuxième rang
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q1 | D,A,E,B,F,C | 3 | Precision@3 et Recall@3 valent 1/3 ; RR@3 vaut 1/2. nDCG tient compte de la position et de l’ordre idéal. |
K04 · Documents pertinents omis
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q1 | A,D,E,F | 3 | R reste égal à 3 dans le corpus, même si B et C sont absents de la liste. Le rappel ne doit pas être calculé sur les seuls résultats renvoyés. |
K05 · Identifiant dupliqué
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q1 | A,A,B | 3 | Saisie refusée : A ne doit pas être compté deux fois. Corriger le classement au lieu de gonfler le nombre de pertinents. |
K06 · Non jugé avant le premier pertinent
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q4 | C,A,D,E,B,F | 3 | C n’est pas jugé. Precision@3, Recall@3, RR@3 et nDCG@3 sont indisponibles dans les conventions déclarées. |
K07 · Non jugé après la fenêtre
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q4 | A,B,D,E,F,C | 3 | Precision@3 vaut 2/3 et RR@3 vaut 1. Recall@3 et nDCG@3 restent indisponibles car le jugement de C manque dans le corpus. |
K08 · Besoin sans document pertinent
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q3 | A,B,C,D,E,F | 3 | Precision@3 et RR@3 valent 0. Le rappel et nDCG restent indisponibles ; ce choix est une convention explicite, pas une division par zéro. |
K09 · Changer la profondeur de lecture
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q2 | A,D,B,C,E,F | 1 | À k = 1, aucun pertinent n’est visible. À k = 2, D apparaît : précision 1/2, rappel 1 et RR@2 = 1/2. |
K10 · Pertinence inconnue, ordre toujours idéal
| Besoin | Ordre fourni | k | Lecture attendue |
|---|---|---|---|
| Q5 | A,B,C,D,E,F | 2 | B peut être pertinent ou non. Dans les deux cas, tous les pertinents sont dans les deux premiers rangs et l’ordre reste idéal : rappel, RR et nDCG valent 1. La précision reste inconnue. |
Préparer une évaluation reproductible
| Contrôle proposé | Élément à conserver |
|---|---|
| Besoins | Questions représentatives et questions sans réponse ; préciser le besoin documentaire derrière chaque formulation. |
| Corpus | Version des documents et de l’index, périmètre accessible et règles de suppression ou de révocation. |
| Jugements | Règle de pertinence, évaluateurs, désaccords et statut non jugé ; ne pas assimiler les clics à une vérité documentaire. |
| Protocole | Même k, mêmes filtres, mêmes données et mêmes conventions avant/après un changement de recherche. |
| Régression | Résultats par requête et par famille de besoins, cas qui gagnent ou perdent, hypothèse et contrôle des nouveaux documents. |
| Réponse finale | Évaluer séparément fidélité, citations, refus utiles et autorisations ; un meilleur score de recherche ne valide pas cette étape. |
Pour une décision lisible, associer au score la question, le classement, les jugements, k et les limites du corpus. Une moyenne unique peut masquer une régression sur un besoin critique. Le suivi des erreurs et la revue des réponses restent nécessaires, même lorsque les premiers documents sont pertinents.
Sources, éditions et crédits
Explications, six documents, cinq besoins, jugements et scénarios originaux CIE. Références conceptuelles : cours Stanford CS276 et définition NIST TREC du rang réciproque. Aucun graphique, exemple de classement ni code de ces sources n’est reproduit. Le programme CIE et ses conventions de valeurs indisponibles ne constituent pas une implémentation complète de trec_eval.
Stanford CS276 · Retrieval evaluation · 2019 course archive · PDF pp. 3, 5–6 · consulted 2026-10-23
SHA-256 : be38261a8cdbc95551a502504d0a1c146ea453ffd9712243ea067ac8538c1826
NIST TREC · Reciprocal rank definition · Repository snapshot 35cf096ba6d5ae08ca4803c056b31ed61a56a6d4 · consulted 2026-10-23
SHA-256 : 64159909e6e1e4e9e4dd3c569b119fdc90696d0b03cd902e6a9358dcd6e84677
Références officielles
Date de consultation des références : . La méthode et la fiche de travail proposent des contrôles à adapter à votre contexte ; elles ne constituent pas une certification.
- NIST — AI Risk Management Framework
- NIST — Generative AI Profile
- OWASP · LLM08:2025 Vector and Embedding Weaknesses
- OWASP · API1:2023 Broken Object Level Authorization
- IETF · RFC 8259
- JSON Schema · Object reference
- JSON Schema · Draft 2020-12 validation
- Python 3.12 · json decoder
- python-jsonschema · Schema validation
- OWASP · LLM05:2025 Improper Output Handling
- Stanford CS276 · Retrieval evaluation
- NIST TREC · Reciprocal rank definition
