두 단계, 여러 실패 방식, 일곱 가지 지표
RAG 시스템은 두 단계로 이루어져 있고, 실패 방식은 적어도 4가지야. 검색 단계에서는 잘못되거나 불충분한 문서를 가져올 수 있어. 생성 단계에서는 환각을 일으키거나, 내용을 잘못 요약하거나, 엉뚱한 질문에 답할 수 있지. 각 단계는 독립적으로 평가해야 해.
검색 단계 지표
- 재현율@k — 전체 관련 문서 가운데 상위 k개 결과로 검색된 문서의 비율을 측정해.
- 정밀도@k — 상위 k개 문서 가운데 관련 문서가 차지하는 비율을 측정해.
- nDCG@k — 정규화 할인 누적 이득이야. 관련 문서가 더 높은 순위에 배치될수록 높은 점수를 줘.
- MRR — 평균 역순위야. 첫 번째 관련 문서 순위의 역수인 1/순위를 사례별로 구한 뒤 평균을 내.
생성 단계 지표
- 충실성 — 답변의 주장이 검색된 맥락에 근거하고 있어?
- 답변 관련성 — 답변이 사용자의 질문을 제대로 다뤄?
- 인용 정확도 — 시스템이 출처를 인용한다면, 인용 링크가 실제 근거가 있는 문단을 가리켜?
왜 분해된 지표가 중요해
하나로 합친 "RAG 품질 점수"는 디버깅에 도움이 되지 않아. 단계별 지표를 보면 개발 노력을 어디에 집중해야 할지 정확히 알 수 있어:
- 낮은 재현율 → 검색기를 개선해. 더 나은 임베딩, 혼합 검색, 질의 재작성 등을 적용할 수 있어.
- 높은 재현율, 낮은 충실성 → 생성기 프롬프트를 개선하고, 온도를 낮추거나, 인용을 강제해.
- 높은 충실성, 낮은 관련성 → 검색기는 올바른 문서를 찾았지만 생성기가 다른 질문에 답하고 있어. 보통 프롬프트 문제야.
원칙: RAG에서는 검색과 생성을 항상 독립적으로 측정해. 종합 점수는 문제를 감추지만, 단계별 지표는 원인을 알려줘.
RAG 평가 모음 만들기
각 사례에 question, expected_relevant_doc_ids, reference_answer를 기록해. 질문으로 검색을 실행하고, 기준 답변으로 생성 결과를 채점하며, 관련 문서 ID가 두 단계를 이어 줘. 셋 중 하나라도 없으면 평가할 수 있는 범위가 줄어들어.