피드로 돌아가기
Search bug or model bug - testing a RAG system to tell them apart
Dev.toDev.to
AI/ML

RAG 오류 분리를 위한 5단계 테스트 스위트로 Retrieval-Generation 병목 정밀 진단

Search bug or model bug - testing a RAG system to tell them apart

Sara Bezjak2026년 6월 9일10intermediate

Context

사용자 관점에서 동일하게 보이는 RAG의 오답 원인이 Retrieval 실패인지 Generator의 추론 오류인지 구분하기 어려운 한계 존재. 단순 결과 검증만으로는 시스템의 어느 지점을 수정해야 할지 판단할 수 없는 불확실성 해결 필요.

Technical Solution

  • Vector Search와 BM25 Search를 병행하고 RRF(Reciprocal Rank Fusion)로 통합한 후 Reranker를 통해 Top 5 청크를 선정하는 다단계 Retrieval 파이프라인 구축
  • Retrieval, Generation, Refusal, Citation, Hallucination의 5개 그룹으로 테스트 케이스를 분리하여 오류 발생 지점을 명확히 정의
  • Hallucination 탐지를 위해 모델이 생성한 모든 ID를 인덱스와 대조하여 존재하지 않는 참조를 식별하는 검증 로직 적용
  • Reranker가 Topical Relevance(주제 관련성)와 Actual Relevance(실제 정답 적합성)를 혼동하여 개요 페이지를 우선순위로 두는 랭킹 왜곡 현상 식별
  • 단순 함수명 쿼리 시 Vector Search의 컨텍스트 부족과 BM25의 낮은 변별력으로 인해 검색 단계에서 누락되는 병목 지점 파악
  • 알려진 실패 사례를 pytest.xfail로 고정하여 시스템의 한계를 문서화하고 회귀 테스트 기반 마련

- RAG 테스트 시 결과값이 아닌 '오류 발생 단계(Retrieval vs Generation)'를 기준으로 테스트 그룹을 분리할 것 - Hallucination 검증 시 모델의 출력을 필터링한 후 검사하지 말고, 원본 출력을 인덱스와 직접 대조하여 가공된 참조를 찾아낼 것 - Reranker의 성능 과신을 지양하고, 쿼리 확장(Query Expansion)이나 인덱싱 전략 수정을 통해 Retrieval 상위 단계의 정밀도를 높일 것 - 해결 불가능한 Edge Case는 xfail 설정을 통해 가시화하고 기술 부채로 관리할 것

원문 읽기
Search bug or model bug - testing a RAG system to tell them apart | Devpick