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 성공률이 낮으면 검색 임계값과 답변 거절 정책을 조정해야 합니다.