Aller au contenu
RAG

Évaluer le RAG

Mesurer la qualité (fidélité, pertinence, précision et rappel du contexte), l'étanchéité des permissions et la latence, sur un jeu de test par dossier fictif, et boucler sur l'amélioration.

Hypothèse#rag#benchmark#permissions#avocatsPublié le 16 sept. 2026Mis à jour le 16 sept. 2026Vérifié le 16 sept. 2026À revérifier le 15 déc. 2026

L'essentiel

  • Sans jeu de test, chaque choix de la section RAG (parseur, taille de chunk, modèle d'embeddings, reranker, top-k, base) reste une opinion. Le jeu de test est le premier livrable, avant tout réglage.
  • Trois familles de mesures : qualité (fidélité, pertinence de la réponse, précision et rappel du contexte), sécurité (aucune fuite entre dossiers, testée mécaniquement), performance (latence de recherche, TTFT, débit sous 1 à 3 utilisateurs).
  • Outils : Ragas, DeepEval, TruLens, avec un LLM juge local (jamais un service externe sur des documents de cabinet, même fictifs par habitude).
  • Le corpus est fictif mais réaliste : dossiers A à E, pièces variées (scans, mails, tableaux), canaris uniques par dossier pour détecter les fuites.
  • La boucle : mesurer, changer une seule chose, remesurer, consigner dans les expérimentations et les benchmarks.

Métriques de qualité

MétriqueQuestion poséeRagas 1DeepEval 2TruLens 3
Fidélité (faithfulness, groundedness)la réponse est-elle entièrement soutenue par les passages fournis ?FaithfulnessFaithfulness : « whether the LLM's output factually aligns with the contents of your RAG's retrieval context »Groundedness
Pertinence de la réponserépond-elle à la question posée ?Response RelevancyAnswer RelevancyAnswer Relevance
Précision du contexteles passages récupérés sont-ils utiles, et bien classés ?Context PrecisionContextual PrecisionContext Relevance
Rappel du contexteles passages nécessaires ont-ils tous été récupérés ?Context RecallContextual Recall
Sensibilité au bruitun passage hors sujet fait-il dériver la réponse ?Noise Sensitivity
Exactitude des citationschaque citation soutient-elle la phrase qui la porte ?— (à construire)— (à construire)

La dernière ligne est la plus importante pour un avocat et la moins outillée : une étude mesure « up to 57% of citations being post-rationalized » 4. On la mesure à la main sur un échantillon (l'avocat relit vingt réponses) et automatiquement par recouvrement lexical entre phrase et passage cité.

Métriques de recherche pure, sans LLM, à calculer sur les chunks : recall@k et MRR (le bon chunk est-il dans les k premiers, à quel rang). Elles permettent de comparer embeddings, chunking et rerankers vite et sans juge.

Jeu de test à constituer

Corpus fictif

Cinq dossiers (A à E) et une zone administrative, reproduisant les accès du cas de référence (associés : tout ; avocat A : A, B, C ; avocat B : D, E ; secrétariat : administratif). Chaque dossier contient 20 à 50 pièces de types variés : contrats (Word et PDF natif), courriers scannés (PDF image, qualités variables), mails (.eml, .msg, un .pst), tableaux (Excel, décomptes), jugements (PDF longs), photos de pièces. Les noms, montants, dates et faits sont inventés ; aucun document réel n'entre dans le corpus.

Canaris

Chaque dossier contient des canaris : chaînes uniques et improbables (un nom de société inventé, un montant à trois décimales, une phrase codée) placées dans des pièces de types différents (un dans un scan, un dans un mail, un dans un tableau). Ils servent au test de fuite : si le canari du dossier D apparaît dans une réponse ou dans les chunks récupérés pour l'avocat A, le test échoue.

Questions

Par dossier, 20 à 40 questions avec réponse attendue et passages de référence (identifiants de chunks), réparties en :

  • factuelles (« quel est le montant de la clause pénale du contrat X ? ») ;
  • de localisation (« dans quelle pièce figure la mise en demeure du 12 mars ? ») ;
  • de synthèse (« résume les échanges avec la partie adverse sur la livraison ») ;
  • multi-pièces (« la date du courrier correspond-elle à celle indiquée dans le tableau ? ») ;
  • pièges (« que dit le dossier D sur… » posée par l'avocat A : la bonne réponse est l'absence de réponse) ;
  • hors corpus (« quel est l'article du code applicable ? » : le système doit dire que ce n'est pas dans les documents).

Les questions sont écrites par une personne connaissant le métier ; le jeu est versionné dans le dépôt de la Box, avec le corpus.

Tests de fuite de permissions

Compléments : test de révocation (retirer un droit, vérifier que la requête suivante ne renvoie plus rien, cf. « Access revocation is ineffective for RAG content » dans la CVE-2026-44560 5) ; test de suppression (supprimer une pièce, vérifier la disparition de ses chunks dans le délai annoncé) ; test de déplacement (déplacer une pièce du dossier A au dossier D, vérifier le changement d'ACL) ; test des liens de citation (un lien vers une pièce hors portée doit être refusé par la visionneuse).

Mesures de latence et de charge

MesureCommentCible provisoire (hypothèse)
Latence de recherche filtrée (vecteurs + BM25 + fusion)percentile 95 sur les questions du jeu, par utilisateur de testmoins de 200 ms
Rappel filtré vs non filtrérecall@20 pour un utilisateur à 10 % de portée, contre un associé ; problème documenté par pgvector 6au moins 90 % du rappel non filtré
Latence du reranker40 candidats, CPU et GPUmoins de 500 ms
TTFT completde la question au premier token, contexte 6 000 à 8 000 tokensà mesurer sur la machine candidate (benchmarks)
Débit sous charge1, 2, 3 utilisateurs simultanés posant des questions RAGvoir multi-utilisateurs
Durée d'ingestionpages par minute (OCR, parsing, embeddings) sur CPU, puis GPUà mesurer
Délai de propagation ACLde la modification source à l'effet sur la rechercheà mesurer et afficher

Ces cibles sont des points de départ, pas des engagements ; elles seront révisées après les premières mesures et fixées dans le POC.

Boucle d'amélioration

  1. Figer le jeu de test (corpus, questions, canaris) et sa version.
  2. Mesurer la configuration de référence (Docling, chunk hybride 400 à 800, bge-m3, pgvector, RRF k = 60, bge-reranker, top-k 8) : recall@k, MRR, fidélité, latences, test de fuite.
  3. Changer une variable (par exemple le modèle d'embeddings), remesurer, consigner dans une fiche d'expérimentation avec hypothèse, procédure, résultat, conclusion.
  4. Collecter en production : signalements « citation fausse » et « réponse incomplète » par les utilisateurs, ajoutés au jeu de test après anonymisation ; requêtes à portée vide (candidates au refus explicite).
  5. Rejouer tout le jeu à chaque mise à jour de brique (interface, base, modèle) avant bascule ; le test de fuite est bloquant, les métriques de qualité tolèrent une régression bornée à définir.

Questions ouvertes

Ce qu'il reste à tester

Sources

  1. 1Ragas — métriques disponiblesDocumentation officielleFiabilité hauteRagas · publié lu le 16/09/2026 · consulté le 16 sept. 2026 · fiche source
  2. 2DeepEval — Faithfulness et guide d'évaluation RAGDocumentation officielleFiabilité hauteConfident AI (DeepEval) · publié lu le 16/09/2026 · consulté le 16 sept. 2026 · fiche source
  3. 3TruLens — RAG triadDocumentation officielleFiabilité hauteTruLens · publié lu le 16/09/2026 · consulté le 16 sept. 2026 · fiche source
  4. 4Citations et fidélité en RAG (arXiv 2412.18004, 2409.11242)ÉtudeFiabilité moyennearXiv · publié 2024 · consulté le 16 sept. 2026 · fiche source
  5. 5Open WebUI — Advisory GHSA-h36f-rqpx-j5wx / CVE-2026-44560 (accès non autorisé à des knowledge bases via la recherche vectorielle)GitHubFiabilité hauteOpen WebUI (GitHub Security Advisories) · publié 2026-05-05 · consulté le 16 sept. 2026 · fiche source
  6. 6pgvector — README (filtrage, HNSW, iterative scan 0.8.0)GitHubFiabilité hautepgvector · publié v0.8.6 (README) ; 0.8.0 annoncé sur postgresql.org · consulté le 16 sept. 2026 · fiche source
content/docs/rag/evaluation.md1341 mots