Ir al contenido

EncouRAGe - Evaluación Local de RAG

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étodoComando
pippip install encourage
Desde código fuentegit clone el repo, luego pip install -e .
Modelos juez localesextrae modelos vía tu runtime local (p. ej. Ollama/vLLM)
Verificarpython -c "import encourage; print('ok')"

Why Local Evaluation

BeneficioPor qué importa
PrivacidadTus documentos/consultas nunca dejan tu máquina
ReproducibilidadMismo modelo + seed → mismas puntuaciones
CostoSin facturación de API por evaluación
VelocidadLote localmente sin límites de tasa

What Gets Measured

La evaluación de RAG se divide en las dos mitades del pipeline.

MitadMétricas
RecuperaciónPrecisión de contexto, recall de contexto, tasa de acierto, MRR/NDCG
GeneraciónFidelidad (fundamento), relevancia de respuesta, corrección
De extremo a extremoSi 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")
PasoPropósito
DatasetPreguntas + (opcional) verdad fundamental + contextos recuperados
MétricasQué dimensiones de recuperación/generación puntuar
Modelo juezEl LLM local utilizado para métricas de LLM-as-judge
ResultadosPuntuaciones agregadas + por ejemplo, exportables

Building an Eval Dataset

CampoSignificado
questionLa consulta del usuario
contextsFragmentos que devolvió tu recuperador
answerLa respuesta generada de tu pipeline
ground_truthRespuesta 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íntomaCausa probable
Recall de contexto bajoEl recuperador pierde fragmentos relevantes (chunking/embedding)
Precisión de contexto bajaDemasiado contexto irrelevante recuperado (añade reranking)
Fidelidad bajaEl modelo alucina más allá del contexto
Relevancia de respuesta bajaLa 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

AspectoEncouRAGeRAGASTruLensDeepEval
ÉnfasisLocal, rápido, reproducibleMétricas de RAG sin referenciaMonitoreo + rastreo OTelMentalidad unit-test, CI
JuezModelos localesConfigurableConfigurableConfigurable
Mejor paraEvaluación privada, on-premPuntuación rápida de RAGMonitoreo de producciónCompuertas 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