Salta ai contenuti

EncouRAGe - Cheatsheet Local RAG Evaluation

EncouRAGe - Cheatsheet Local RAG Evaluation

EncouRAGe è un framework open-source per valutare retrieval-augmented generation (RAG) pipeline con un”enfasi su esecuzione localmente, velocemente, e affidabilmente. Dove molti RAG evaluator chiamano fuori verso hosted judge models, EncouRAGe è progettato per calcolare metriche di retrieval e generation sul tuo hardware, mantenendo i dati di valutazione privati e i risultati riproduttibili. Si adatta al pattern 2026 dove la qualità RAG è trattata come una proprietà engineering misurabile piuttosto che un vibe.

I framework di valutazione evolvono velocemente. Tratta i comandi sotto come la forma del workflow e conferma i flag esatti contro la documentazione attuale.

Installazione

MetodoComando
pippip install encourage
From sourcegit clone il repo, poi pip install -e .
Local judge modelstira model via il tuo runtime locale (e.g. Ollama/vLLM)
Verificapython -c "import encourage; print(''ok'')"

Perché Valutazione Locale

BeneficioPerché importa
PrivacyI tuoi documenti/query non lasciano mai la tua macchina
ReproducibilityStesso modello + seed → stessi scores
CostNessuna per-eval API billing
SpeedBatch localmente senza rate limits

Cosa Viene Misurato

La valutazione RAG si divide nelle due metà della pipeline.

MetàMetriche
RetrievalContext precision, context recall, hit rate, MRR/NDCG
GenerationFaithfulness (grounding), answer relevance, correctness
End-to-endSe la risposta finale è giusta e supportata

Workflow Principale

# Flusso concettuale: assembla un dataset, esegui il tuo RAG, segnalo
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",   # esegue localmente
)

print(results.summary())     # per-metric scores
results.to_json("eval.json")
PassoScopo
DatasetDomande + (opzionale) ground truth + retrieved contexts
MetricsQuali dimensioni di retrieval/generation segnare
Judge modelL”LLM locale usato per LLM-as-judge metrics
ResultsAggregate + per-example scores, esportabili

Costruire un Dataset di Eval

FieldSignificato
questionLa query dell”utente
contextsChunk che il tuo retriever ha ritornato
answerLa risposta generata dalla tua pipeline
ground_truthRisposta di riferimento (per correctness/recall)

Raccogli domande vere da tracce di produzione per rendere l”eval rappresentativo.

Interpretare i Risultati

SintomoProbabile causa
Low context recallIl retriever manca chunk rilevanti (chunking/embedding)
Low context precisionTroppo contesto irrilevante recuperato (aggiungi reranking)
Low faithfulnessIl modello allucinisce oltre il contesto
Low answer relevanceLa risposta diverge dalla domanda (prompt/query issue)

Montare in CI

# Gate il cambio RAG su score di valutazione
python run_eval.py --dataset eval.jsonl --min-faithfulness 0.85 \
  --min-context-recall 0.8 || exit 1

Esegui lo stesso set eval su ogni retrieval/prompt/model change così le regressioni sono catturate prima che shippino.

EncouRAGe vs Altri RAG Evaluator

AspettoEncouRAGeRAGASTruLensDeepEval
EmphasisLocal, fast, reproducibleReference-free RAG metricsMonitoring + OTel tracingUnit-test mindset, CI
JudgeLocal modelsConfigurableConfigurableConfigurable
Best forPrivate, on-prem evalQuick RAG scoringProduction monitoringPytest-style CI gates

Pair concettualmente con RAGAS, TruLens, e DeepEval — scegli se hai bisogno di privacy locale, metriche veloci, monitoring, o gating CI.

Risorse