8.3.1 검색 품질 평가 지표의 오라클 활용: Recall@K, MRR(Mean Reciprocal Rank)

8.3.1 검색 품질 평가 지표의 오라클 활용: Recall@K, MRR(Mean Reciprocal Rank)

과거 구글(Google) 검색 엔진 초창기나 엘라스틱서치(Elasticsearch)와 같은 전통적인 정보 검색(Information Retrieval, IR) 분야에서 수십 년간 수학적으로 갈고닦아온 검색 평가 지표들은, 이제 현대 애플리케이션 아키텍처 환경에서 RAG 파이프라인의 전반부 DB 품질을 교차 검증하는 ’리트리버 오라클(Retriever Oracle)’의 가장 핵심적인 생명선 코드로 편입되었다.

다만, 화면에 나열된 검색 리스트를 보고 유저 자신이 직접 클릭하여 문서를 걸러내는 고전적 C2C 검색과 달리, RAG 생태계에서는 ’LLM’이라는 편식 심하고 어텐션 한계가 명확한 기계 독자가 인간을 대신해 문서를 강제로 욱여넣어 읽는 구조이므로, 이 지표들을 해석하고 배포 임계값(Threshold)을 설정하는 오라클 시스템의 평가 렌즈는 과거보다 훨씬 무자비하고 냉혹해야만 한다.

1. Recall@K (재현율): 시스템 근거 무결성의 마지노선

Recall@K는 Vector DB 쿼리 시스템이 추출하여 가져온 Top-K개의 문서(청크) 묶음 페이로드 안에, 타겟이 정답을 연역적으로 생성하는 데 필수불가결한 ’골든 문서(Golden Document)’가 적어도 하나 이상 확실하게 포함(Intersection)되어 있는가를 측정하는 생존 지표다.

이를 수학적 식(Formula)으로 정의하면,
Recall@K = \frac{\vert 시스템이 반환한 Top-K 문서 \cap 실제 정답 골든 문서 \vert}{\vert DB 전체에 존재하는 관련 골든 문서의 총합 \vert} 가 된다.

여기서 오라클 판사가 가장 중요하게 감시하고 제어해야 하는 MLOps 하이퍼파라미터는 바로 저 상수 K의 크기 한계치다.

  • 만약 엔지니어가 비용을 아끼려 K를 너무 작게 잡는다면(예: Recall@1), 벡터 DB가 완벽하게 1등으로 문서를 꽂아 넣은 경우가 아니라면 가엾은 타겟 LLM은 완전히 배경 지식이 없는 채로 노출되므로, 허구의 지식을 지어내는 외재적 환각(Extrinsic Hallucination) 비율이 수직으로 치솟게 된다.
  • 반대로 이 Recall@K 지표를 어거지로 100% 임계치로 맞추기 위해 K를 무식하게 크게 벌려버리면(예: Recall@30) 어떤 대참사가 벌어질까? 리트리버 오라클은 절대 이를 훌륭한 검색이라고 칭찬하지 않으며, 도리어 프롬프트 독성 초과(Prompt Toxicity Overload) 에러를 발생시켜 CI/CD 파이프라인을 정지시킨다. 왜냐하면 타겟 생성 LLM의 메커니즘 특성상 30개의 길고 긴 컨텍스트 문서를 한 방에 구겨 넣으면 필연적으로 **‘가운데 토큰 무시 현상(Lost in the Middle Effect)’**이 기하급수적으로 터져, 결국 정답 문서가 가운데 끼어 있어도 이를 멍청하게 읽지 못하고 환각을 뿜어내는 ’문맥 익사(Context Drowning)’에 빠지기 때문이다.
  • 결론적으로 리트리버 오라클은 K=3 혹은 최대 K=5라는 LLM 시신경이 소화 가능한 매우 제한적인 윈도우 환경 구조 하에서, Recall 스코어가 0.95(95%)를 우직하게 돌파하는지 수학적으로 증명해 내는 가혹한 테스터 역할을 수행한다.

2. MRR (Mean Reciprocal Rank): 어텐션 최적화를 위한 랭킹 오라클

Recall이 ’정답이 일단 이 바구니(Top-K) 안에 들어는 있는가?’를 묻는 느슨한 존재론적 질문이라면, MRR 메트릭스는 **‘그 귀중한 정답이 쓸데없는 쓰레기들을 제치고 얼마나 가장 윗줄(Top-Rank)에 밀집되어 배치되어 있는가?’**를 서늘하게 따져 묻는 순위(Ranking) 하드코어 지표다.

쿼리 트랜잭션 집합 Q 내의 특정한 i번째 질문 Q_i에 대하여, 오라클이 지목한 골든 정답 문서가 처음으로 위에서부터 등장한 물리적 순위를 rank_i라고 할 때, 시스템 전체의 MRR은 그 역수(Reciprocal)들의 수학적 평균을 구한다.
MRR = \frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{rank_i}

  • Vector 쿼리가 정답 청크를 최상단 1등 리스트에 꽂아 넣었다면 점수는 1/1 = 1.0만점이다. 하지만 3등으로 밀려나면 1/3 \approx 0.33, 5등 밖에 있다면 그 트랜잭션 점수는 사실상 자비 없는 0점(Fail) 수치에 수렴해 버린다.
  • LLM 파라미터의 랭킹 편향성(Position Bias) 통제: LLM 트랜스포머 아키텍처는 설계 구조적으로 입력 프롬프트 텍스트의 ’가장 맨 위(Top)와 맨 아래(Bottom)’에 위치한 정보 노드에 가장 극단적으로 큰 가중치(Attention Weight)를 몰아주는 극심한 위치 편향(Positional Bias) 성질을 갖는다.
  • 이러한 아키텍처 특성 때문에 지식 기반 RAG 오라클은, 설령 Recall@5 점수가 1.0 만점이 나오더라도 MRR 점수가 0.6 이하로 처참하게 떨어지는 검색 로직 패치를 발견하면 컨텍스트 오염 선고를 내리고 자동 서버 배포를 즉각 중단(Block)시킨다.
    아무리 정답이 바구니(Top-5) 안에 생존해 있다고 한들, 검색 엔진이 가져온 쓰레기 노이즈 문서들이 1, 2등 상단 인덱스를 차지하고 배부르게 드러누워 정답 문서를 5등 구석으로 찌그러뜨려 놓으면, 정작 타겟 타겟 LLM은 집중력을 상실하고 이 랭킹 낮은 진짜 답을 통째로 무시(Omission)해 버릴 확률이 비정상적으로 폭증하기 때문이다.

이처럼 현대의 리트리버 오라클은 문서의 단순한 존재 여부 매칭을 아득히 넘어서, 딥러닝 트랜스포머 어텐션 메커니즘의 토큰 컨텍스트 한계를 역으로 계산해 낸 고도로 정밀한 순위 역학(Ranking Dynamics) 수식을 연산함으로써, 엔터프라이즈 RAG 파이프라인의 검색 무결성을 흔들림 없이 통제하고 지탱한다.