?
OutilintermédiaireVérifié le 2025-05

RAGAS : évaluer un pipeline RAG

Mettre en place RAGAS pour mesurer la fidélité, pertinence et complétude de votre RAG.

RAGAS : le standard pour l'évaluation RAG

RAGAS (Retrieval Augmented Generation Assessment) est un framework open source pour évaluer les pipelines RAG de manière automatisée. Il mesure la qualité du retrieval et de la génération sans nécessiter de labels humains.

Métriques principales

Faithfulness (Fidélité)

Mesure si la réponse générée est fidèle au contexte récupéré (pas d'hallucinations).

  • Score 0-1 : proportion des affirmations vérifiables dans le contexte
  • Détecte les hallucinations et inventions du LLM

Answer Relevancy (Pertinence de la réponse)

Mesure si la réponse est pertinente par rapport à la question posée.

  • Génère des questions à partir de la réponse et compare avec la question originale
  • Pénalise les réponses hors sujet ou incomplètes

Context Precision

Mesure si les documents récupérés pertinents sont bien classés en haut.

  • Évalue la qualité du ranking du retriever
  • Un bon retriever met les documents pertinents en premier

Context Recall

Mesure si tous les éléments nécessaires pour répondre sont présents dans le contexte.

  • Nécessite une ground truth (réponse de référence)
  • Identifie les manques dans le retrieval

Installation et utilisation

pip install ragas
from ragas import evaluate
from ragas.metrics import (
    faithfulness,
    answer_relevancy,
    context_precision,
    context_recall
)
from datasets import Dataset

# Préparer les données
data = {
    "question": ["Qu'est-ce que le RAG ?"],
    "answer": ["Le RAG est une technique qui..."],
    "contexts": [["Le Retrieval Augmented Generation..."]],
    "ground_truth": ["Le RAG combine retrieval et génération..."]
}

dataset = Dataset.from_dict(data)

# Évaluer
result = evaluate(
    dataset,
    metrics=[faithfulness, answer_relevancy, context_precision, context_recall]
)

print(result)
# {'faithfulness': 0.92, 'answer_relevancy': 0.88, ...}

Évaluation en batch

# Évaluer sur un dataset complet
from ragas.testset.generator import TestsetGenerator

generator = TestsetGenerator.from_langchain(llm, embeddings)
testset = generator.generate_with_langchain_docs(
    documents, test_size=50
)

result = evaluate(testset, metrics=[faithfulness, answer_relevancy])

Interprétation des scores

  • Faithfulness < 0.8 : Problème d'hallucination, revoir le prompt ou le contexte
  • Answer Relevancy < 0.7 : La réponse ne traite pas la question, revoir le prompt
  • Context Precision < 0.7 : Le retriever ramène trop de bruit, ajouter un reranker
  • Context Recall < 0.7 : Le retriever manque des documents, revoir le chunking

Intégration CI/CD

Exécutez RAGAS dans votre pipeline CI pour détecter les régressions après chaque changement de prompt, modèle ou stratégie de chunking.

Sources

evalRAGASRAG