Aller au contenu

EncouRAGe - Cheatsheet Évaluation Locale RAG

EncouRAGe - Cheatsheet Évaluation Locale RAG

EncouRAGe est un framework open-source pour évaluer les pipelines de retrieval-augmented generation (RAG) avec un accent sur l”exécution locale, rapide et fiable. Alors que de nombreux évaluateurs RAG font appel à des modèles juges hébergés, EncouRAGe est conçu pour calculer les métriques de retrieval et génération sur votre propre matériel, en gardant les données d”évaluation privées et les résultats reproductibles. Il s”adapte au modèle 2026 où la qualité RAG est traitée comme une propriété d”ingénierie mesurable plutôt que comme une sensation.

Les frameworks d”évaluation évoluent rapidement. Traitez les commandes ci-dessous comme la forme du flux de travail et confirmez les drapeaux exacts par rapport à la documentation actuelle.

Installation

MéthodeCommande
pippip install encourage
Depuis la sourcegit clone le dépôt, puis pip install -e .
Modèles juge locauxtirer les modèles via votre runtime local (ex. Ollama/vLLM)
Vérificationpython -c "import encourage; print(''ok'')"

Pourquoi lӃvaluation Locale

AvantagePourquoi c”est important
ConfidentialitéVos documents/requêtes ne quittent jamais votre machine
ReproductibilitéMême modèle + seed → mêmes scores
CoûtAucune facturation API par évaluation
VitesseLots localement sans limites de débit

Ce Qui est Mesuré

L”évaluation RAG se divise en les deux moitiés du pipeline.

MoitiéMétriques
RetrievalContext precision, context recall, hit rate, MRR/NDCG
GénérationFaithfulness (grounding), answer relevance, correctness
Bout-en-boutSi la réponse finale est correcte et supportée

Flux de Travail Principal

# Flux conceptuel : assembler un dataset, exécuter votre RAG, le scorer
import encourage

dataset = encourage.load_dataset("eval_questions.jsonl")  # question, ground_truth, contexts

results = encourage.evaluate(
    dataset=dataset,
    metrics=["faithfulness", "answer_relevance",
             "context_precision", "context_recall"],
    judge_model="local/llama-3.1-8b-instruct",   # s''exécute localement
)

print(results.summary())     # scores par métrique
results.to_json("eval.json")
ÉtapeObjectif
DatasetQuestions + (optionnellement) vérité de base + contextes récupérés
MétriquesQuelles dimensions de retrieval/génération scorer
Modèle jugeLe LLM local utilisé pour les métriques LLM-as-judge
RésultatsScores agrégés + par exemple, exportables

Construire un Dataset dӃvaluation

ChampSignification
questionLa requête utilisateur
contextsChunks que votre retriever a retourné
answerLa réponse générée par votre pipeline
ground_truthRéponse de référence (pour la correction/recall)

Récolter les vraies questions à partir des traces en production pour rendre l”évaluation représentative.

Interpréter les Résultats

SymptômeCause probable
Context recall faibleLe retriever manque des chunks pertinents (chunking/embedding)
Context precision faibleTrop de contexte non pertinent récupéré (ajouter le reranking)
Faithfulness faibleLe modèle hallucine au-delà du contexte
Answer relevance faibleLa réponse dévie de la question (problème de prompt/requête)

L”Adapter dans CI

# Gater un changement RAG sur les scores d''évaluation
python run_eval.py --dataset eval.jsonl --min-faithfulness 0.85 \
  --min-context-recall 0.8 || exit 1

Exécuter le même ensemble d”évaluation à chaque changement de retrieval/prompt/modèle pour que les régressions soient détectées avant expédition.

EncouRAGe vs Autres Évaluateurs RAG

AspectEncouRAGeRAGASTruLensDeepEval
EmphaseÉvaluation locale, rapide, reproductibleMétriques RAG sans référenceMonitoring + tracing OTelMentalité unittest, CI
JugeModèles locauxConfigurableConfigurableConfigurable
Meilleur pourÉvaluation privée, on-premScore RAG rapideMonitoring productionGates CI style pytest

Conceptuellement associable avec RAGAS, TruLens et DeepEval — choisir selon que vous ayez besoin de confidentialité locale, de métriques rapides, du monitoring ou des gates CI.

Ressources