Évaluation RAG : Tester la récupération avant d'ajuster le LLM
Tech
AI
RAG
Evaluation
Machine Learning

Évaluation RAG : Tester la récupération avant d'ajuster le LLM

Un flux de travail basé sur la recherche pour déterminer si un système RAG a échoué à la récupération, à l'ancrage, à l'abstention ou aux opérations.

Uygar DuzgunUUygar Duzgun
Jul 26, 2026
Mis à jour 31 juil. 2026
13 min read

L'évaluation RAG devrait commencer par la récupération. Si les bonnes preuves n'atteignent jamais le modèle, l'ajustement des invites et les mises à jour du modèle ne font que rendre le mauvais contexte plus convaincant. Testez la récupération, la génération et les opérations comme des étapes séparées. Conservez un petit ensemble de régression versionné qui échoue lorsque l'une des étapes s'aggrave.

Niveau de lecteur : Intermédiaire. Ce guide suppose que vous savez que la génération augmentée par récupération, ou RAG, trouve des documents avant de demander à un modèle de langage de répondre.

Dans ce guide

L'évaluation RAG a trois surfaces d'échec séparées

Une application RAG est un pipeline. Un score pour la réponse finale cache quel composant a besoin de travail.

CoucheQuestion à répondreMétriques de départ utiles
---------
RécupérationLe système a-t-il trouvé et classé les preuves nécessaires à la question ?taux de réussite ou rappel@k, précision@k, MRR ou NDCG
GénérationLe modèle a-t-il utilisé cette preuve correctement ?ancrage, exhaustivité, pertinence, abstention
OpérationsLe pipeline a-t-il fonctionné sous des contraintes réelles ?latence p95, coût, taux d'erreur, fraîcheur, échecs de contrôle d'accès

L'ordre est important. La récupération est en amont. Un générateur ne peut pas citer un paragraphe de politique qui n'est jamais entré dans son contexte, et une réponse fluide ne prouve pas que le récupérateur a fonctionné.

La documentation actuelle de l'évaluateur RAG de Microsoft fait la même séparation en termes d'implémentation. Elle fournit des mesures de récupération de documents pour des preuves classées, puis évalue l'ancrage, la pertinence et l'exhaustivité de la réponse au niveau de la réponse. L'évaluateur de récupération de documents inclut la fidélité, le NDCG, le XDCG, la pertinence maximale et les jugements de pertinence manquants.

Diagramme de récupération, génération et métriques opérationnelles dans un flux de travail d'évaluation RAG
Diagramme de récupération, génération et métriques opérationnelles dans un flux de travail d'évaluation RAG

_Une carte de score RAG utile garde la récupération, la génération et les vérifications opérationnelles visibles comme des couches séparées._

Pourquoi un score de bout en bout donne des preuves de débogage faibles

Plusieurs cadres de recherche atteignent la même conclusion pratique sous différents angles.

RAGChecker évalue le comportement du récupérateur et du générateur séparément. Ses auteurs ont comparé huit systèmes RAG à travers dix domaines. Leurs métriques incluent le rappel des revendications et la précision du contexte pour la récupération, plus l'utilisation du contexte, la sensibilité au bruit, l'hallucination et la fidélité pour la génération. Dans une méta-évaluation de 280 paires, le score d'évaluation globale de RAGChecker avait une corrélation de Spearman de 0.609 avec la préférence humaine. Les deux annotateurs humains ont atteint 0.689. L'évaluation automatisée était utile, mais elle n'a pas éliminé l'écart humain.

Ragas a proposé des mesures sans référence pour la fidélité, la pertinence des réponses et la pertinence du contexte. Dans ses comparaisons WikiEval, l'accord avec les préférences humaines était de 0.95 pour la fidélité, 0.78 pour la pertinence des réponses et 0.70 pour la pertinence du contexte. Les auteurs ont trouvé que la pertinence du contexte était la plus difficile à juger. Considérez ces chiffres comme des résultats de cette étude, et non comme des taux de précision universels pour chaque juge, ensemble de données ou domaine.

Un cadre plus récent, RAGe, ajoute la sélection de composants et la télémétrie matérielle. Il évalue les configurations de pipeline à travers le fractionnement, l'intégration, la récupération, le stockage et la génération tout en élaguant les combinaisons qui dépassent les limites de latence ou de VRAM. Le document utilise par défaut Natural Questions, NewsQA et TriviaQA et prend en charge des ensembles de données CSV ou JSON personnalisés. Sa principale contribution est une manière de comparer la qualité avec des contraintes de ressources ; il n'établit pas une configuration qui gagne à travers les domaines.

Ensemble, ces articles soutiennent une approche diagnostique. Ils ne prouvent pas qu'une métrique ou une bibliothèque particulière est suffisante pour la production.

Construire un ensemble de test avant de choisir des métriques

Commencez avec 40 à 60 questions du domaine que vous servez. Cette plage est un point de départ pratique plutôt qu'une loi statistique. Elle est suffisamment grande pour exposer plusieurs types d'échecs et suffisamment petite pour qu'un humain puisse revoir après chaque changement matériel.

Incluez au moins cinq classes de requêtes :

Recherche directe : un passage contient la réponse.
Multi-document : la réponse nécessite des preuves de deux sources ou plus.
Ambigu : le système devrait demander des clarifications.
Inrépondable : le corpus ne contient pas suffisamment de preuves.
Frais ou restreint : le résultat correct dépend de la date du document ou des autorisations de l'utilisateur.

Les journaux de production peuvent suggérer des questions, mais retirez les données personnelles et les secrets avant d'ajouter des exemples à un ensemble d'évaluation. Une récente discussion de praticiens sur l'évaluation RAG en production souligne également les requêtes fixes, les configurations versionnées et les vérifications de récupération et de génération séparées. Cette discussion est une preuve anecdotiques sur la douleur du flux de travail, pas une preuve que l'approche fonctionne dans chaque système.

Conservez les jugements contre des ID de document stables aux côtés de tout texte copié. Les limites de fractionnement changent lorsque vous ajustez un fractionneur. Un ID de source canonique permet au même test de survivre à ce changement.

{ "query_id": "refund-window-01", "query": "Combien de temps un client a-t-il pour retourner un article non ouvert ?", "relevant_document_ids": ["returns-policy-v4"], "required_claims": ["Les articles non ouverts peuvent être retournés dans les 30 jours."], "must_abstain": false, "allowed_roles": ["customer", "support"], "as_of": "2026-07-01" }

Pour un cas inrépondable, définissez `relevant_document_ids` sur une liste vide et `must_abstain` sur `true`. Pour un cas restreint, exécutez la même requête sous deux rôles. L'utilisateur autorisé devrait récupérer le document ; l'utilisateur non autorisé ne devrait pas apprendre le contenu de ce document.

Les équipes construisant leur propre corpus et couche d'application devraient versionner le contrat de contenu aux côtés de l'ensemble de test. La même règle s'applique aux systèmes de données personnalisés construits avec Next.js et AI : un changement de schéma ou de contenu peut altérer la récupération sans toucher à l'invite.

Étape 1 : évaluer la récupération sans générer de réponse

Exécutez chaque requête à travers le récupérateur et enregistrez les ID de résultats classés, les scores, les horodatages et les décisions d'accès. Ne faites pas encore appel au modèle de langage.

Choisissez des métriques qui correspondent à la forme des preuves

Utilisez taux de réussite@k lorsque un document correct suffit. Cela demande si au moins une source pertinente apparaît dans les premiers `k` résultats.

Utilisez rappel@k lorsque la réponse nécessite plusieurs sources. Cela mesure combien de documents pertinents connus sont apparus dans les premiers `k`.

Utilisez précision@k lorsque le contexte non pertinent est coûteux ou distrayant. Un haut rappel avec une faible précision peut inonder le générateur de bruit.

Utilisez MRR lorsque le premier résultat pertinent est le plus important. Utilisez NDCG lorsque plusieurs résultats notés doivent apparaître dans un ordre utile. Microsoft documente le NDCG et les mesures de récupération classées connexes dans son évaluateur, tandis que RAGChecker utilise le rappel des revendications et la précision du contexte pour relier les preuves récupérées aux revendications dont une réponse a besoin.

Ne collectez pas chaque métrique par défaut. Choisissez une mesure de couverture et une mesure de classement ou de bruit. Ajoutez une métrique uniquement lorsqu'elle change une décision.

Classifiez les échecs avant de changer le modèle

Les échecs de récupération tombent généralement dans un petit ensemble :

Le document n'a jamais été ingéré.
Le document existe, mais sa version actuelle est obsolète.
Le fractionnement a séparé la question du fait nécessaire.
La requête et le document utilisent un vocabulaire différent.
Les filtres de métadonnées ont supprimé la bonne source.
Le classement a placé la bonne source en dessous de `k`.
Les contrôles d'accès ont exposé ou supprimé le mauvais document.

Chaque échec a un propriétaire différent. La réintégration ne peut pas réparer un document manquant. Un modèle de langage plus grand ne peut pas réparer un filtre d'autorisations. Un reranker peut aider lorsque la preuve est présente mais mal ordonnée.

Pour les applications connectées aux outils, conservez la demande de récupération, les filtres, les ID de résultats et la réponse de l'outil dans la trace. Cela s'inscrit dans le modèle de contrôle plus large décrit dans les flux de travail des développeurs MCP : inspectez le contrat, la transition d'état et la prose finale.

Étape 2 : évaluer la génération sur des preuves fixes

Une fois que la récupération atteint son seuil, figez les contextes récupérés et rejouez-les contre le générateur. Cela isole les changements d'invite ou de modèle des changements d'index.

Mesurez quatre comportements :

Ancrage : chaque affirmation factuelle dans la réponse est soutenue par le contexte fourni.
Exhaustivité : la réponse couvre les revendications requises.
Pertinence : la réponse aborde la question de l'utilisateur sans matériel non pertinent.
Abstention : le système refuse ou demande des clarifications lorsque les preuves sont manquantes, conflictuelles, obsolètes ou non autorisées.

Une réponse de référence peut aider à l'exhaustivité. Elle est moins utile en tant que seule source de vérité car plusieurs formulations peuvent être correctes. Conservez les revendications requises et les ID de documents de soutien lorsque cela est possible.

Exécutez un deuxième test de génération avec un contexte délibérément incomplet. Un système fiable devrait exposer l'incertitude plutôt que de combler les lacunes à partir de la mémoire du modèle. Cela est important lorsque le corpus contient des faits privés, changeants ou spécifiques à un domaine.

Le choix du modèle affecte toujours la qualité de la réponse, la latence et le coût, mais cela vient après les preuves de récupération. Si le même contexte fixe échoue à travers les générateurs, comparez les compromis entre modèles et API. Si le contexte lui-même est incorrect, changer le générateur est un mouvement inutile.

Ajouter des cas de sécurité et de conflit à l'ensemble de récupération

Les tests de pertinence ordinaires manquent de preuves adversariales ou conflictuelles.

Un article de juillet 2026 sur le poisoning sybil polymorphe dans RAG a testé des groupes de passages lexicalement différents qui soutenaient la même réponse sélectionnée par l'attaquant. Dans la configuration d'exposition forcée de l'article, les passages polymorphes ont produit un taux de détournement de 22.8 % contre 4.0 % pour les passages monomorphes répétés. Le filtrage par chevauchement de tokens a capturé tous les clusters monomorphes et aucun des clusters polymorphes.

Le résultat ne mesure pas à quelle fréquence cette attaque réussit en production. Les auteurs ont fixé le mélange récupéré à six passages d'attaque, deux passages d'or et deux remplisseurs pour isoler le comportement du lecteur. Ils rapportent également des limitations autour d'une classe d'attaque, du risque de contamination des ensembles de données, d'une ablation de 500 questions et de vérification basée sur LLM.

La leçon d'évaluation utile est plus étroite : classifiez plus que "correct" et "cible de l'attaquant". L'article suit quatre résultats :

réponse d'or,
réponse détournée,
abstention,
dérive non pertinente.

Ajoutez des cas de conflit à votre propre ensemble. Incluez des revendications dupliquées avec des formulations différentes, une source obsolète qui contredit la politique actuelle, et une source de confiance inférieure qui entre en conflit avec une source autoritaire. Enregistrez si le système répond, s'abstient ou dérive.

Calibrer les juges LLM avant de faire confiance à leurs scores

Les juges LLM rendent les tests de régression moins coûteux, surtout pour l'ancrage et la couverture des revendications. Ils restent des dépendances logicielles avec des invites, des versions de modèle, un comportement d'analyse et des angles morts connus.

Utilisez quatre contrôles :

Aveugler la comparaison. Retirez les noms de modèle et de fournisseur des sorties candidates.
Conservez une tranche étiquetée par des humains. Examinez au moins un petit sous-ensemble stable pour chaque changement de juge ou d'invite.
Versionnez le juge. Enregistrez le modèle de juge, l'invite, la température, l'analyseur et l'implémentation de la métrique.
Inspectez les désaccords. Échantillonnez des cas proches du seuil de réussite et des cas où deux juges ne sont pas d'accord.

Les études Ragas et RAGChecker montrent toutes deux pourquoi la calibration est importante. L'accord varie selon la dimension, et les corrélations automatisées restent en dessous de l'accord humain. Un score numérique devrait déclencher une inspection, pas la terminer.

Les versions open-source actuelles montrent également un travail actif autour des évaluateurs. DeepEval 4.1.3, publié le 12 juillet 2026, a ajouté des vérifications déterministes pour les boucles d'agents et les autorisations d'outils tout en corrigeant l'intégration de Ragas. TruLens 2.9.0, publié le 23 juillet, a ajouté des ensembles de juges, des tests de critères A/B, une analyse de distribution des scores et une génération d'ensemble d'or. L'activité de publication est une preuve d'un travail d'ingénierie maintenu, pas une preuve que l'une ou l'autre bibliothèque est le bon choix pour votre pile.

Un flux de travail de régression RAG minimal

Utilisez la même séquence pour chaque changement matériel de pipeline :

Figez la version de l'ensemble de test et l'instantané du corpus.
Enregistrez les versions du fractionneur, du modèle d'intégration, des paramètres d'index, des filtres, du reranker, de l'invite, du générateur et du juge.
Exécutez uniquement la récupération. Arrêtez-vous si la couverture, le classement, la fraîcheur ou les vérifications d'accès régresse.
Rejouez les contextes approuvés à travers le générateur.
Évaluez l'ancrage, l'exhaustivité, la pertinence et l'abstention.
Examinez la tranche étiquetée par des humains et le seuil des désaccords.
Enregistrez la latence p50 et p95, le coût par requête, les délais d'attente et les résultats vides.
Changez un composant, puis répétez.

Un enregistrement de résultats compact peut ressembler à ceci :

{ "run_id": "rag-2026-07-26-b", "test_set": "support-v7", "corpus_snapshot": "2026-07-25T22:00:00Z", "retrieval": { "recall_at_5": 0.91, "ndcg_at_5": 0.84, "unauthorized_hits": 0 }, "generation": { "grounded_pass_rate": 0.94, "complete_pass_rate": 0.87, "abstention_pass_rate": 0.90 }, "operations": { "p95_ms": 1380, "cost_per_query_usd": 0.0042 } }

Ces chiffres sont illustratifs. Définissez des seuils en fonction de votre risque, de votre référence et de votre coût d'erreur. Un assistant de connaissances médicales et un assistant de recherche de produits ne devraient pas partager la même porte de sortie.

Décidez de la solution à partir de la couche échouée

SymptômePreuve à inspecterAction probable à entreprendre
---------
Document pertinent absentstatut d'ingestion, ID canonique, filtresréparer l'ingestion ou les métadonnées
Document pertinent classé trop bastrace de classement, termes de requête, scorestester la réécriture de requête, la récupération hybride ou le reranking
Preuve correcte plus revendication non soutenuecartographie revendication-contexteresserrer l'instruction de génération ou la porte d'ancrage
Réponse correcte mais incomplètecouverture des revendications requisesréviser l'assemblage de contexte ou l'invite de réponse
Réponses lorsque les preuves sont manquantestest négatif et trace d'abstentionajouter une porte de suffisance de preuves
Bonne qualité mais lentetemps de phase et télémétrie des ressourcesoptimiser le goulet d'étranglement mesuré
Source non autorisée récupéréeidentité, filtre, ID de résultatsbloquer la sortie et réparer l'autorisation

Ce tableau est le point de l'évaluation RAG : un score échoué devrait identifier la prochaine expérience. S'il ne peut pas, la métrique est trop éloignée du composant que vous devez changer.

Ce que les preuves soutiennent

Les articles ont mesuré des systèmes et des ensembles de données spécifiques. RAGChecker a trouvé que les métriques modulaires peuvent corréler avec les préférences humaines et exposer les compromis entre récupérateur et générateur. Ragas a trouvé que l'accord des juges variait selon la fidélité, la pertinence des réponses et la pertinence du contexte. RAGe a démontré un cadre qui combine des métriques de qualité avec des contraintes de latence et de mémoire. Le benchmark de poisoning a montré qu'une configuration d'attaque contrainte produisait des modèles distincts de détournement, d'abstention et de dérive.

Les preuves n'établissent pas de seuils universels, d'évaluateur universellement meilleur, ou de prévalence d'attaques en production. Mon interprétation pratique est de séparer les étapes, de garder une tranche calibrée par des humains et d'exiger que chaque métrique pointe vers une action d'ingénierie.

Vérifications des revendications

RevendicationPreuve de soutienLimite vérifiée
---------
La récupération doit être mesurée séparément de la qualité de la réponseÉvaluateurs RAG de Microsoft ; RAGCheckerOrientation architecturale, pas une garantie universelle
RAGChecker a comparé huit systèmes à travers dix domainesArticle RAGCheckerLes résultats dépendent de son benchmark et de sa configuration de métriques
Ragas a rapporté 0.95, 0.78 et 0.70 d'accord humain à travers trois dimensionsArticle Ragas, Tableau 1Précision pairwise spécifique à l'étude
RAGe inclut la télémétrie matérielle et l'élagage de configurationArticle RAGeContribution du cadre, pas une preuve de la meilleure configuration
Les passages polymorphes ont produit 22.8 % de détournement contre 4.0 % dans l'ablation de l'articleArticle sur le poisoning sybilExposition forcée 6:2:2 ; pas de prévalence en production
DeepEval et TruLens ont expédié des fonctionnalités d'évaluation récentesNotes de publication officielles de GitHubSignal de maintenance, pas de preuve d'adoption ou de qualité

Sources

Ragas : Évaluation automatisée de la génération augmentée par récupération — article de recherche principal, révisé le 28 avril 2025.
Un benchmark de mode d'échec pour le poisoning sybil polymorphe dans RAG — article de recherche principal, 4 juillet 2026.
Évaluateurs RAG de Microsoft Foundry — documentation produit officielle.
Référence des métriques Ragas — documentation officielle du cadre.
Notes de publication de DeepEval 4.1.3 — publication officielle du dépôt.
Notes de publication de TruLens 2.9.0 — publication officielle du dépôt.
Comment évaluez-vous la qualité RAG en production ? — discussion de praticiens ; signal anecdotique.