앞 편에서 하이브리드 검색의 여러 파라미터(BM25의 k₁·b, beta, top-K…)를 봤다. 이것들을 튜닝하려면 먼저 retriever가 얼마나 잘하는지 측정할 수 있어야 한다. 이번 편은 검색 성능을 재는 대표 지표들 — Precision·Recall·MAP·MRR — 을 정리한다.
1. 무엇을, 무엇으로 평가하는가
retriever도 소프트웨어이므로 latency·throughput·자원 사용량으로도 평가할 수 있지만, 결국 중요한 건 검색 품질 — 관련 문서를 잘 찾는가다. 대부분의 품질 지표에는 세 가지 재료가 필요하다.
- 프롬프트 — retriever는 어떤 프롬프트엔 잘하고 어떤 프롬프트엔 못할 수 있다.
- 순위 목록 — 그 프롬프트에 대해 retriever가 반환한 문서들.
- ground truth — knowledge base에서 반환됐어야 할 모든 관련 문서의 목록.
즉 retriever를 채점하려면 정답을 알고 있어야 한다.

2. Precision과 Recall

- Precision(정밀도) — 검색한 문서 중 관련 문서의 비율. 무관한 문서를 반환한 것에 패널티 → 결과가 얼마나 믿을 만한가.
- Recall(재현율) — KB의 관련 문서 중 실제로 찾아낸 비율. 관련 문서를 빠뜨린 것에 패널티 → 얼마나 포괄적인가.

3. 예시 — 트레이드오프
KB에 어떤 프롬프트와 관련된 문서가 10개 있다고 하자(직접 표시해 둠).
- 1차 — 12개를 반환, 그중 8개가 관련. Precision = 8/12 = 66%, Recall = 8/10 = 80%.
- 2차(설정 조정 후) — 15개를 반환, 그중 9개가 관련. 지난번보다 3개를 더 반환했지만 관련 문서는 1개만 늘었다. Precision = 9/15 = 60%(↓), Recall = 9/10 = 90%(↑).
즉 Precision을 조금 내주고 Recall을 얻은 것이다. 완벽한 Precision·Recall을 동시에 얻으려면 관련 문서를 최상위에 두고 그것만 반환해야 하며, 보통은 둘 사이에서 트레이드오프한다.

4. Top-K로 표준화 — Precision@K, Recall@K
검색 지표는 몇 개를 반환하느냐에 좌우된다. 그래서 보통 상위 K개(top-K) 기준으로 이야기한다.

예를 들어 어떤 순위 목록에서 상위 5개 중 2개가 관련이면 Precision@5 = 40%, 상위 10개 중 6개가 관련이면 Precision@10 = 60%다. KB에 관련 문서가 8개라면 Recall@10 = 6/8 = 75%다. 엄격한 기준이 필요하면 top-1·2·5를, 보통은 top-5 ~ top-15를 자주 쓴다.

5. MAP@K — Mean Average Precision
더 종합적인 시각을 주는 지표다. 먼저 관련 지표인 Average Precision(AP@K)를 계산해 보자. 상위 K개(예: 6개)를 나열하고 각 행마다 Precision@K를 구한 뒤, 관련 문서가 있는 행의 precision만 더하고, 상위 K 안의 관련 문서 수로 나눈다. 예시에서 관련 문서가 1·4·5행에 있어 precision이 각각 1, 0.5, 0.6이라면 → (1 + 0.5 + 0.6) / 3 = 0.7이 AP다.
MAP는 이 AP를 여러 프롬프트에 대해 평균낸 값이다. MAP는 관련 문서를 높은 순위에 두는 것을 보상한다 — 무관 문서가 상위에 끼면 그 아래 모든 관련 문서의 precision을 낮춰 전체 평균을 떨어뜨리기 때문이다. 그래서 MAP가 높다는 건 찾은 관련 문서를 순위 상단에 잘 배치한다는 좋은 신호다.

6. Reciprocal Rank와 MRR
Reciprocal Rank는 반환 목록에서 첫 번째 관련 문서의 순위를 본다. 첫 관련 문서가 2등이면 1/2 = 0.5, 4등이면 0.25다. 첫 관련 문서가 아래에 있을수록 값이 나빠진다.

이를 여러 프롬프트에 대해 평균낸 것이 MRR(Mean Reciprocal Rank)다. MRR은 "평균적으로 얼마나 빨리 관련 항목을 만나는가"를 반영하며, 적어도 하나의 관련 문서를 최대한 위에 두는 것의 중요성을 강조한다. 예를 들어 4번 검색에서 첫 관련 문서가 1·3·6·2등에 나왔다면, (1 + 1/3 + 1/6 + 1/2) / 4 = 0.5가 MRR이다.

7. 지표를 함께 쓰는 법
- Recall(@K) — 가장 기초적이고 가장 많이 인용된다. retriever의 근본 목표인 "관련 문서 찾기"를 포착한다.
- Precision · MAP — 그 위에서 무관 문서를 얼마나 섞는지, 순위를 얼마나 효과적으로 매기는지를 본다.
- MRR — 조금 특화된 지표로, 순위 최상단에서의 성능을 짚는다.

이 지표들은 retriever 성능 평가뿐 아니라, 내가 한 조정이 효과가 있는지 판단하는 데도 쓴다. 예컨대 하이브리드에서 시맨틱/키워드 가중치를 바꾼 뒤, 샘플 프롬프트 모음에 대한 recall·precision 변화를 보면 된다.

이로써 Module 2(정보 검색의 기초)를 마친다 — 리트리버 구조부터 metadata·키워드(TF-IDF·BM25)·시맨틱(임베딩)·하이브리드(RRF)·평가까지 다뤘다. 다음 Module 3에서는 이 검색을 실제로 빠르게 돌리는 벡터 데이터베이스의 세계 — 근사 최근접 이웃(ANN), 청킹, 쿼리 파싱, 리랭킹 — 로 들어간다.
'AI > RAG' 카테고리의 다른 글
| Vector Database (0) | 2026.07.02 |
|---|---|
| 근사 최근접 이웃 (ANN) (0) | 2026.07.02 |
| Hybrid Search & RRF (0) | 2026.07.02 |
| How to train Embedding Model (0) | 2026.07.02 |
| Semantic Search & Embedding (0) | 2026.07.02 |
