Pular para o conteúdo

EncouRAGe - Cheatsheet de Avaliação Local de RAG

EncouRAGe - Cheatsheet de Avaliação Local de RAG

EncouRAGe é um framework open-source para avaliar pipelines retrieval-augmented generation (RAG) com ênfase em executar localmente, rápido e confiavelmente. Onde muitos avaliadores de RAG chamam modelos juízes hospedados, EncouRAGe é projetado para computar métricas de retrieval e geração no seu próprio hardware, mantendo os dados de avaliação privados e resultados reproduzíveis. Encaixa-se no padrão 2026 onde qualidade RAG é tratada como uma propriedade de engenharia mensurável em vez de uma vibe.

Frameworks de avaliação evoluem rapidamente. Trate os comandos abaixo como a forma do fluxo de trabalho e confirme exatas flags contra os docs atuais.

Instalação

MethodCommand
pippip install encourage
De sourcegit clone o repo, depois pip install -e .
Modelos juízes locaispuxe modelos via seu runtime local (ex. Ollama/vLLM)
Verificarpython -c "import encourage; print('ok')"

Por Que Avaliação Local

BenefícioPor que importa
PrivacySeus documentos/queries nunca saem de sua máquina
ReproducibilityMesmo modelo + seed → mesmos scores
CostSem billing por avaliação de API
SpeedBatch localmente sem limites de taxa

O Que Fica Medido

Avaliação RAG divide-se nas duas metades do pipeline.

HalfMétricas
RetrievalPrecisão de contexto, context recall, hit rate, MRR/NDCG
GenerationFaithfulness (grounding), answer relevance, correctness
End-to-endSe a resposta final está correta e é apoiada

Fluxo de Trabalho Principais

# Fluxo conceitual: monte um dataset, rode seu RAG, pontue-o
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",   # roda localmente
)

print(results.summary())     # scores por métrica
results.to_json("eval.json")
StepPropósito
DatasetQuestões + (opcional) ground truth + contextos recuperados
MetricsQuais dimensões de retrieval/geração pontuar
Judge modelO LLM local usado para métricas LLM-as-judge
ResultsScores agregados + por-exemplo, exportável

Construindo um Dataset de Avaliação

FieldSignificado
questionA query do usuário
contextsChunks seu retriever retornou
answerResposta gerada pelo seu pipeline
ground_truthResposta de referência (para correctness/recall)

Colha questões reais de traços de produção para tornar a avaliação representativa.

Interpretando Resultados

SintomaProvável causa
Context recall baixaRetriever perde chunks relevantes (chunking/embedding)
Context precision baixaContexto irrelevante demais recuperado (adicione reranking)
Faithfulness baixaModelo alucina além do contexto
Answer relevance baixaResposta desvia da questão (prompt/query issue)

Encaixando Numa CI

# Gate uma mudança RAG em scores de avaliação
python run_eval.py --dataset eval.jsonl --min-faithfulness 0.85 \
  --min-context-recall 0.8 || exit 1

Execute o mesmo conjunto eval em toda mudança retrieval/prompt/modelo para que regressões sejam apanhadas antes de enviar.

EncouRAGe vs Outros Avaliadores RAG

AspectoEncouRAGeRAGASTruLensDeepEval
ÊnfaseLocal, rápido, reproduzívelMétricas RAG sem referênciaMonitoramento + OTel tracingMentalidade unit-test, CI
JudgeModelos locaisConfigurávelConfigurávelConfigurável
Melhor paraAvaliação privada, on-premScoring rápido de RAGMonitoramento de produçãoGates CI estilo pytest

Pares conceitualmente com RAGAS, TruLens e DeepEval — escolha se você precisa de privacidade local, métricas rápidas, monitoramento ou gates CI.

Recursos