Zum Inhalt springen

EncouRAGe - Lokale RAG-Evaluierungs-Spickzettel

EncouRAGe - Lokale RAG-Evaluierungs-Spickzettel

EncouRAGe ist ein quelloffenes Framework zur Evaluierung von Retrieval-Augmented-Generation (RAG)-Pipelines mit Schwerpunkt auf die Ausführung lokal, schnell und zuverlässig. Während viele RAG-Evaluierer an gehostete Judge-Modelle anrufen, ist EncouRAGe darauf ausgelegt, Abruf- und Generierungsmetriken auf Ihrer eigenen Hardware zu berechnen, Evaluierungsdaten privat zu halten und Ergebnisse reproduzierbar zu machen. Es passt zum 2026-Muster, bei dem RAG-Qualität als messerbare Engineeringeigenschaft behandelt wird, anstatt als Vibe.

Evaluierungs-Frameworks entwickeln sich schnell. Behandeln Sie die folgenden Befehle als die Form des Workflows und bestätigen Sie exakte Flags gegen die aktuellen Dokumentationen.

Installation

MethodeBefehl
pippip install encourage
Aus QuelleRepo git clone, dann pip install -e .
Lokale Judge-ModelleModelle über Ihre lokale Laufzeit ziehen (z.B. Ollama/vLLM)
Verifizierenpython -c "import encourage; print('ok')"

Warum lokale Evaluierung

VorteilWarum es wichtig ist
DatenschutzDeine Dokumente/Anfragen verlassen nie deinen Computer
ReproduzierbarkeitGleiches Modell + Seed → gleiche Scores
KostenKeine Pro-Eval-API-Abrechnung
GeschwindigkeitBatch lokal ohne Rate-Limits

Was wird gemessen

Die RAG-Evaluierung spaltet sich in die zwei Hälften der Pipeline.

HälfteMetriken
AbrufContext-Präzision, Context-Rückruf, Hit-Rate, MRR/NDCG
GenerierungTreue (Verankerung), Antwort-Relevanz, Korrektheit
End-zu-EndOb die endgültige Antwort richtig und unterstützt ist

Kern-Workflow

# Konzeptioneller Fluss: Datensatz zusammenstellen, RAG ausführen, Punktzahl erhalten
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",   # runs locally
)

print(results.summary())     # per-metric scores
results.to_json("eval.json")
SchrittZweck
DatensatzFragen + (optional) Ground-Truth + abgerufene Kontexte
MetrikenWelche Abruf-/Generierungsdimensionen zu bewerten
Judge-ModellDas lokale LLM, das für LLM-as-Judge-Metriken verwendet wird
ErgebnisseAggregat + Pro-Example-Scores, exportierbar

Evaluierungs-Datensatz bauen

FeldBedeutung
questionDie Benutzerabfrage
contextsChunks, die Ihr Retriever zurückgegeben hat
answerDie generierte Antwort Ihrer Pipeline
ground_truthReferenz-Antwort (für Korrektheit/Rückruf)

Ernte echte Fragen aus Produktions-Traces, um die Evaluierung repräsentativ zu machen.

Ergebnisse interpretieren

SymptomWahrscheinliche Ursache
Niedriger Context-RückrufRetriever verpasst relevante Chunks (Chunking/Embedding)
Niedrige Context-PräzisionZu viel irrelevanter Context abgerufen (Reranking hinzufügen)
Niedrige TreueModell halluziniert über den Kontext hinaus
Niedrige Antwort-RelevanzAntwort driftet von der Frage weg (Prompt/Query-Thema)

Integration in CI

# Gate eine RAG-Änderung auf Evaluierungs-Scores
python run_eval.py --dataset eval.jsonl --min-faithfulness 0.85 \
  --min-context-recall 0.8 || exit 1

Führe denselben Evaluierungssatz bei jeder Abruf-/Prompt-/Modelländerung durch, sodass Rückgänge vor dem Versand gefangen werden.

EncouRAGe im Vergleich zu anderen RAG-Evaluierern

AspektEncouRAGeRAGASTruLensDeepEval
BetonungLokal, schnell, reproduzierbarReferenzlose RAG-MetrikenMonitoring + OTel-TracingUnit-Test-Denkweise, CI
JudgeLokale ModelleKonfigurierbarKonfigurierbarKonfigurierbar
Best fürPrivate, On-Prem-EvalSchnelle RAG-BewertungProduction-MonitoringPytest-Style-CI-Gates

Konzeptuell Paarung mit RAGAS, TruLens und DeepEval — wähle basierend auf, ob du lokale Datenschutz, schnelle Metriken, Monitoring oder CI-Gating benötigst.

Ressourcen