두 pipeline, 두 실패 mode, 4 metric
RAG system 은 단계 둘과 적어도 4가지 fail 방법 가져. Retrieval 단계가 wrong 또는 insufficient doc 가져올 수 있고; generation 단계가 hallucinate, summarize wrong, wrong 질문 답할 수 있어. 각 단계 독립적으로 평가해야 해.
Retrieval-단계 metric
- Recall@k — top k 에서 retrieve 된 relevant doc 의 fraction.
- Precision@k — top-k doc 중 relevant 한 fraction.
- nDCG@k — normalized Discounted Cumulative Gain. 더 높이 ranked 된 relevant doc 보상.
- MRR — Mean Reciprocal Rank. 첫 relevant doc 의 1/rank 평균.
Generation-단계 metric
- Faithfulness — 답이 retrieved context 에 의해 supported 된 claim 만들어?
- Answer Relevancy — 답이 user 의 질문 다뤄?
- Citation accuracy — system 이 source cite 하면, citation 이 실제 supporting passage 에 link?
왜 분해된 metric 이 중요해
Aggregate "RAG quality score" 는 디버깅에 무용. Per-stage metric 이 정확히 어디 engineering effort 쓸지 알려줘:
- 낮은 recall → retriever 고침 (better embedding, hybrid search, query rewriting).
- 높은 recall, 낮은 faithfulness → generator prompt 고침, temperature 낮춤, citation 강제.
- 높은 faithfulness, 낮은 relevance → retriever 가 옳은 doc 찾는데 generator 가 다른 질문에 답 — 보통 prompt issue.
원칙: RAG 에서 retrieval 과 generation 항상 독립적으로 측정. Composite score 는 거짓말, per-stage metric 이 truth.
RAG eval set 만들기
각 case 에 대해 캡처: question, expected_relevant_doc_ids, reference_answer. 첫째가 retrieval score 가능하게; 셋째가 generation score 가능하게. 가운데가 bridge. 셋 다 없으면 eval 의 절반만 가능.