콘텐츠로 이동

Evaluation

RAG 시스템은 답변이 자연스러운지보다 먼저 올바른 근거를 찾았는지 평가해야 합니다.

평가 실행

python scripts/run_eval.py

또는 API로 실행합니다.

curl -X POST http://127.0.0.1:8010/eval/run \
  -H 'Content-Type: application/json' \
  -d '{
    "path": "data/evaluation/evaluation_cases.jsonl",
    "top_k": 5
  }'

평가 케이스 형식

{
  "id": "policy-001",
  "question": "국내 출장이 3일 미만이면 누구의 승인이 필요한가요?",
  "expected_sources": ["internal-travel-policy.md"],
  "expected_answer_points": ["manager approval"],
  "must_not_include": [],
  "domain_profile": "internal-policy"
}

핵심 지표

지표 의미
retrieval top-k success rate 기대 문서가 top-k 검색 결과에 포함되는 비율
abstention success rate 문서에 없는 질문을 근거 없음으로 처리하는 비율
citation presence 답변에 출처가 붙는지 여부

회사 문서 적용 전 체크리스트

  • 각 문서 묶음마다 최소 10개 이상의 질문을 만든다.
  • 실제 직원이 묻는 표현을 평가 질문에 포함한다.
  • 문서에 없는 질문도 반드시 포함한다.
  • 기대 문서뿐 아니라 기대 섹션이나 조항도 가능하면 기록한다.
  • top-k를 3, 5, 8로 바꿔 검색 품질을 비교한다.

평가 결과 해석

retrieval 성공률이 낮으면 다음을 점검합니다.

  • 문서 파싱 결과가 비어 있지 않은가?
  • 청크가 너무 크거나 작지 않은가?
  • 질문에 문서에 있는 용어가 포함되어 있는가?
  • domain profile이 문서 유형과 맞는가?
  • Top K가 너무 낮지 않은가?

abstention 성공률이 낮으면 검색 임계값과 답변 거절 정책을 조정해야 합니다.