EncouRAGe - Evaluación Local de RAG
EncouRAGe es un framework de código abierto para evaluar pipelines de generación aumentada por recuperación (RAG) con énfasis en ejecutar localmente, rápido y de forma confiable. Donde muchos evaluadores de RAG llaman a modelos juez hospedados, EncouRAGe está diseñado para calcular métricas de recuperación y generación en tu propio hardware, manteniendo los datos de evaluación privados y los resultados reproducibles. Se ajusta al patrón 2026 donde la calidad de RAG se trata como una propiedad de ingeniería medible en lugar de una vibra.
Los frameworks de evaluación evolucionan rápidamente. Trata los comandos a continuación como la forma del flujo de trabajo y confirma banderas exactas contra la documentación actual.
Installation
| Método | Comando |
|---|
| pip | pip install encourage |
| Desde código fuente | git clone el repo, luego pip install -e . |
| Modelos juez locales | extrae modelos vía tu runtime local (p. ej. Ollama/vLLM) |
| Verificar | python -c "import encourage; print('ok')" |
Why Local Evaluation
| Beneficio | Por qué importa |
|---|
| Privacidad | Tus documentos/consultas nunca dejan tu máquina |
| Reproducibilidad | Mismo modelo + seed → mismas puntuaciones |
| Costo | Sin facturación de API por evaluación |
| Velocidad | Lote localmente sin límites de tasa |
What Gets Measured
La evaluación de RAG se divide en las dos mitades del pipeline.
| Mitad | Métricas |
|---|
| Recuperación | Precisión de contexto, recall de contexto, tasa de acierto, MRR/NDCG |
| Generación | Fidelidad (fundamento), relevancia de respuesta, corrección |
| De extremo a extremo | Si la respuesta final es correcta y está apoyada |
Core Workflow
# Flujo conceptual: ensambla un dataset, ejecuta tu RAG, puntúalo
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")
| Paso | Propósito |
|---|
| Dataset | Preguntas + (opcional) verdad fundamental + contextos recuperados |
| Métricas | Qué dimensiones de recuperación/generación puntuar |
| Modelo juez | El LLM local utilizado para métricas de LLM-as-judge |
| Resultados | Puntuaciones agregadas + por ejemplo, exportables |
Building an Eval Dataset
| Campo | Significado |
|---|
question | La consulta del usuario |
contexts | Fragmentos que devolvió tu recuperador |
answer | La respuesta generada de tu pipeline |
ground_truth | Respuesta de referencia (para corrección/recall) |
Cosecha preguntas reales de trazas de producción para hacer que la evaluación sea representativa.
Interpreting Results
| Síntoma | Causa probable |
|---|
| Recall de contexto bajo | El recuperador pierde fragmentos relevantes (chunking/embedding) |
| Precisión de contexto baja | Demasiado contexto irrelevante recuperado (añade reranking) |
| Fidelidad baja | El modelo alucina más allá del contexto |
| Relevancia de respuesta baja | La respuesta se desviante de la pregunta (problema de prompt/consulta) |
Fitting It Into CI
# Puertas un cambio de RAG sobre puntuaciones de evaluación
python run_eval.py --dataset eval.jsonl --min-faithfulness 0.85 \
--min-context-recall 0.8 || exit 1
Ejecuta el mismo conjunto de evaluación en cada cambio de recuperación/prompt/modelo para que las regresiones sean capturadas antes de que se envíen.
EncouRAGe vs Other RAG Evaluators
| Aspecto | EncouRAGe | RAGAS | TruLens | DeepEval |
|---|
| Énfasis | Local, rápido, reproducible | Métricas de RAG sin referencia | Monitoreo + rastreo OTel | Mentalidad unit-test, CI |
| Juez | Modelos locales | Configurable | Configurable | Configurable |
| Mejor para | Evaluación privada, on-prem | Puntuación rápida de RAG | Monitoreo de producción | Compuertas de CI estilo Pytest |
Se empareja conceptualmente con RAGAS, TruLens, y DeepEval — elige según si necesitas privacidad local, métricas rápidas, monitoreo, o compuertas de CI.
Resources