콘텐츠로 이동

EncouRAGe - 로컬 RAG 평가 치트시트

EncouRAGe - 로컬 RAG 평가 치트시트

EncouRAGe는 검색-증강 생성 (RAG) 파이프라인을 평가하기 위한 오픈소스 프레임워크로, 로컬에서, 빠르게, 안정적으로 실행하는 것을 강조한다. 많은 RAG 평가기가 호스팅된 심판 모델을 호출하는 반면, EncouRAGe는 자신의 하드웨어에서 검색 및 생성 메트릭을 계산하도록 설계되었으므로 평가 데이터를 비공개로 유지하고 결과를 재현 가능하게 한다. 2026 패턴에 맞추어 RAG 품질이 분위기가 아닌 측정 가능한 엔지니어링 속성으로 취급되는 경우다.

평가 프레임워크는 빠르게 발전한다. 아래 명령을 워크플로우의 형태로 취급하고 정확한 플래그에 대해 현재 문서를 확인하라.

설치

방법명령어
pippip install encourage
소스에서리포지토리를 git clone한 다음 pip install -e .
로컬 심판 모델로컬 런타임 (예: Ollama/vLLM)을 통해 모델 가져오기
확인python -c "import encourage; print('ok')"

로컬 평가의 이유

이점중요한 이유
프라이버시문서/쿼리가 머신을 떠나지 않음
재현성동일한 모델 + 시드 → 동일한 점수
비용평가당 API 청구 없음
속도속도 제한 없이 로컬에서 배치

측정되는 것

RAG 평가는 파이프라인의 두 절반으로 분할된다.

절반메트릭
검색컨텍스트 정확도, 컨텍스트 재현율, 히트율, MRR/NDCG
생성충실도 (근거), 답변 관련성, 정확도
종단 간최종 답변이 맞는지 및 지원되는지

핵심 워크플로우

# 개념적 흐름: 데이터 세트 조립, RAG 실행, 점수 지정
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",   # 로컬에서 실행
)

print(results.summary())     # 메트릭별 점수
results.to_json("eval.json")
단계목적
Dataset질문 + (선택적) 근거 진실 + 검색된 컨텍스트
Metrics점수할 검색/생성 측면
Judge modelLLM-as-judge 메트릭에 사용할 로컬 LLM
Results집계 + 개별 예 점수, 내보낼 수 있음

평가 데이터 세트 빌드

필드의미
question사용자 쿼리
contexts검색기가 반환한 청크
answer파이프라인의 생성된 답변
ground_truth참고 답변 (정확도/재현율용)

프로덕션 추적에서 실제 질문을 수집하여 평가를 대표적으로 만들자.

결과 해석

증상가능한 원인
낮은 컨텍스트 재현율검색기가 관련 청크 놓침 (청킹/임베딩)
낮은 컨텍스트 정확도너무 많은 관련 없는 컨텍스트 검색 (순위 재지정 추가)
낮은 충실도모델이 컨텍스트 너머로 환각 (프롬프트/쿼리 문제)
낮은 답변 관련성답변이 질문에서 벗어남

CI에 맞추기

# 평가 점수에 대한 RAG 변경 게이트
python run_eval.py --dataset eval.jsonl --min-faithfulness 0.85 \
  --min-context-recall 0.8 || exit 1

모든 검색/프롬프트/모델 변경에서 동일한 평가 세트를 실행하여 회귀가 배송 전에 포착되도록 하자.

EncouRAGe vs 다른 RAG 평가기

측면EncouRAGeRAGASTruLensDeepEval
강조로컬, 빠름, 재현 가능참고 없는 RAG 메트릭모니터링 + OTel 추적유닛 테스트 마인드셋, CI
Judge로컬 모델설정 가능설정 가능설정 가능
최고프라이빗, 온프레미스 평가빠른 RAG 점수프로덕션 모니터링Pytest-스타일 CI 게이트

RAGAS, TruLens, DeepEval과 개념적으로 페어링 — 로컬 프라이버시, 빠른 메트릭, 모니터링 또는 CI 게이팅이 필요한지에 따라 선택.

자료