Évaluer un pipeline RAG avec Ragas : métriques, installation et tutoriel pratique

Ragas évalue votre pipeline RAG via des métriques de 0 à 1.

  • Faithfulness : réponse fidèle au contexte, sans hallucination.
  • Answer relevancy : adéquation sémantique question-réponse.
  • Context Precision : détecte les contextes superflus du retrieveur.
  • Context Recall : un score de 0.8+ est excellent.
  • Framework open source : principe du LLM as a Judge.

Métriques clés de Ragas pour évaluer votre pipeline RAG

Métrique Question évaluée Score idéal
Faithfulness La réponse est-elle fidèle au contexte fourni ? Proche de 1 (0 à 1)
Answer Relevancy La réponse répond-elle réellement à la question ? Proche de 1 (0 à 1)
Context Precision Les contextes récupérés sont-ils tous pertinents ? Proche de 1 (0 à 1)
Context Recall Tous les contextes pertinents ont-ils été récupérés ? Proche de 1 (0 à 1)

Chaque métrique retourne un score entre 0 et 1. Un score élevé en faithfulness indique que la réponse est strictement basée sur le contexte fourni, sans hallucination. L’answer relevancy mesure l’adéquation sémantique entre la question posée et la réponse générée.

Pour le Context Recall, un Recall@5 de 0.8+ est excellent : la plupart des documents pertinents sont récupérés. Entre 0.5 et 0.8, le résultat est acceptable mais améliorable. En dessous de 0.5, la récupération est problématique et doit être revue.

La Context Precision complète le recall : elle vérifie que parmi les 20 contextes pertinents retournés pour une requête donnée, aucun n’est superflu ou hors sujet. Un bon pipeline doit atteindre un équilibre entre les deux. Ces quatre métriques permettent de diagnostiquer précisément chaque étape du pipeline : la récupération documentaire d’un côté, la génération de réponse de l’autre, à l’image des approches de RAG multimodal qui étendent l’évaluation aux images et tableaux. Un score faible en precision indique un problème de retrieveur, tandis qu’une faithfulness basse signale un défaut du générateur, qui s’écarte du contexte imposé, une étape souvent complétée par une architecture de reranking pour affiner les candidats.

Présentation de Ragas et de son utilité pour l’évaluation RAG

évaluer un rag avec ragas

Ragas (Retrieval-Augmented Generation Assessment) est un framework open source devenu une référence pour évaluer les pipelines RAG. Son approche repose sur le principe du LLM as a Judge : un modèle de langage analyse votre système pour juger la qualité de ses réponses. Contrairement aux métriques classiques comme BLEU et ROUGE, limitées sur le plan sémantique, Ragas évalue séparément la phase de récupération (retrieval) et celle de génération.

Cette distinction est cruciale : elle permet d’identifier les faiblesses à chaque étape de votre pipeline. Si un score est bas, vous savez immédiatement si le problème vient des documents récupérés, de la formulation de la réponse ou de la pertinence globale. Pour un déploiement fiable, visez un dataset de 100+ questions représentatives de votre cas d’usage, un volume qui offre une photographie statistiquement significative des performances, tout en gardant à l’esprit les contraintes d’une architecture RAG en streaming pour la latence. L’outil étant open source, il s’intègre aussi bien avec LangChain qu’avec des LLM hébergés ou spécialisés, le choix du LLM étant crucial, comme le montre le comparatif Gemini vs Llama pour RAG.

Installation et configuration de Ragas pour votre environnement

L’installation de Ragas se fait simplement via `pip install ragas`, mais l’environnement mérite votre attention, notamment le choix des, souvent automatisé avec des outils d’automatisation devops comme docker pour l’intégration continue, souvent automatisé avec des outils d’automatisation devops embeddings pour RAG, comme dans les solutions sans code type GPT et Airtable. Le tutoriel officiel d’IBM utilise Python 3.11.9, une version stable qui garantit la compatibilité avec l’ensemble des dépendances. Avant de lancer votre première évaluation, prévoyez d’installer les bibliothèques nécessaires à votre pile RAG, qu’il s’agisse de LangChain, des wrappers LLM comme WatsonxLLM pour les modèles Granite, ou encore des connecteurs vectoriels comme Milvus, en gardant à l’esprit l’impact de la taille des chunks sur la qualité. Si vous travaillez dans Google Colab, un redémarrage du runtime est indispensable après l’installation des dépendances pour éviter les conflits de versions. Côté services cloud, l’intégration avec watsonx.ai nécessite un compte IBM Cloud, un projet au plan Lite gratuit, ainsi que votre clé API et ID de projet des informations que vous retrouverez dans les paramètres de votre espace de travail. Prenez le temps de valider chaque import avant de passer à l’implémentation, car une configuration propre élimine la majorité des erreurs rencontrées lors des évaluations.

Implémentation pratique : code et exemples d’évaluation d’un pipeline RAG

Pour évaluer votre pipeline, Ragas s’appuie sur quatre paramètres essentiels : le da, taset contenant vos questions, les métriques à calculer, le LLM qui joue le rôle de juge, et le modèle d’embedding utilisé pour la comparaison sémantique, dont le choix peut s’inspirer des comparatifs comme OpenAI vs Cohere embeddings. Voici comment les assembler concrètement.

Exemple complet : évaluation d’un pipeline simple avec LangChain

Prenons un cas d’implémentation avec LangChain et OpenAI, une configuration éprouvée pour démarrer.

Classe RAG : définissez une classe avec trois méthodes essentielles `load()` pour charger vos documents, `retrieve()` pour la recherche de contextes pertinents, et `answer()` pour générer la réponse finale à partir de ces contextes.
Configuration LangChain : initialisez le LLM via `langchain_openai` (par exemple GPT-4o-mini) et le modèle d’embedding (text-embedding-3-small). Pour une alternative open source, le tutoriel IBM utilise Python 3.11.9 avec les modèles Granite d’IBM via le wrapper `WatsonxLLM` et l’API embeddings Slate.
Appel d’évaluation : passez à Ragas votre dataset, la liste des métriques, votre LLM et votre modèle d’embedding. La classe `evaluate()` se charge du reste.
Récupération des scores : lancez le test et récupérez un dictionnaire contenant chaque métrique la valeur retournée se situe toujours entre 0 et 1, ce qui facilite l’interprétation.
Scoring Langfuse : si vous utilisez Langfuse pour le suivi, deux modes existent le score par trace (évaluation individuelle de chaque requête) ou le score par batch (évaluation groupée sur l’ensemble du dataset).

Interprétation des scores et prochaines itérations

L’interprétation des résultats dépend de la métrique et du seuil observé. Pour le Context Recall@5, un score de 0.8 ou plus indique que la plupart des documents pertinents ont été récupérés excellent. Un score entre 0.5 et 0.8 reste acceptable mais suggère des améliorations possibles côté retrieval. En dessous de 0.5, le système manque des documents clés : il faut revoir la stratégie de chunking ou les paramètres de recherche.

Un bon réflexe consiste à constituer un dataset d’évaluation d’au moins 100 questions couvrant vos cas d’usage réels. Si la faithfulness est élevée mais la context precision faible, le problème vient du retrieval, pas de la génération. Cette distinction vous permet d’itérer précisément sur la brique défaillante par exemple, passer à un index vectoriel plus performant comme Zilliz Cloud propulsé par Milvus, dont la vitesse d’indexation peut s’avérer 10 fois plus rapide que les solutions locales, sans impacter la pertinence.

Création d’un dataset d’évaluation pour Ragas

Structure du dataset : format et contenu requis

Pour lancer une évaluation avec Ragas, votre dataset doit suivre un format spécifique. Chaque entrée repose sur trois colonnes obligatoires issues de votre pipeline RAG en conditions réelles.

  • Questions : représentatives de l’usage réel, avec un minimum de 100+ questions pour des résultats statistiquement fiables.
  • Réponses générées LLM : sortie produite par votre système pour chaque question du jeu de données.
  • Contextes récupérés : passages renvoyés par votre système de retrieval avant génération, avec un exemple type de 20 contextes pertinents pour une requête donnée.

La vérité terrain (réponse attendue rédigée par un humain) reste optionnelle : elle n’est requise que pour les métriques de retrieval comme Context Recall, qui mesurent la proportion de documents pertinents effectivement récupérés.

Stratégies de constitution : génération assistée vs validation humaine

Construire ce dataset à la main représente un travail conséquent. Ragas propose une génération assistée par LLM qui produit automatiquement des questions synthétiques à partir de vos documents sources. Cette approche accélère la création du jeu de données, mais exige une validation humaine systématique pour garantir la pertinence des questions générées et leur alignement avec vos cas d’usage réels.

Le dataset doit refléter fidèlement la diversité des requêtes de vos utilisateurs finaux. Pour diagnostiquer précisément les faiblesses de votre pipeline, prévoyez des scénarios variés : questions simples, requêtes ambiguës, demandes multi-sources. Si votre contexte métier inclut un cache RAG réduisant de 80% les coûts LLM, intégrez également des questions qui déclenchent ces chemins de réponse optimisés.

Enfin, structurez vos données dans le format attendu par la classe d’évaluation de Ragas : un objet Dataset avec des colonnes nommées question, answer et contexts. Cette préparation rigoureuse vous permettra d’interpréter chaque score entre 0 et 1 avec une vision claire des axes d’amélioration de votre pipeline.


Pour industrialiser ces évaluations, il est pertinent de les intégrer dans un pipeline CI/CD, qui automatisera les tests de performance à chaque modification du code. Les bonnes pratiques CI/CD garantissent une traçabilité et une reproductibilité essentielles en production.