RAG 검색이 전반적인 성능을 개선하지만, 중요한 질의에서는 실패하는 경우
요약
RAG 애플리케이션의 검색 지표가 전반적으로 개선되더라도, 중요한 특정 질의에서 성능 저하(regression)가 발생할 수 있습니다. 이를 정확히 평가하기 위해 오픈 소스 툴킷인 OpenRAG Bench를 소개합니다. 이 벤치마크는 다양한 검색 지표와 품질 정책을 제공하여 배포 전 신뢰성 검증에 도움을 줍니다.
핵심 포인트
- 전체 평균 점수만으로는 중요한 질의에서의 성능 저하를 놓칠 수 있습니다.
- OpenRAG Bench는 RAG 평가를 위한 오픈 소스 Python 툴킷입니다.
- Precision@k, Recall@k 등 다양한 검색 지표와 품질 정책을 제공합니다.
- LangChain, LlamaIndex 사용자들의 피드백이 필요하며 지속적으로 개선될 예정입니다.
RAG 검색이 전반적인 성능을 개선하지만, 중요한 질의에서는 실패하는 경우
검색 증강 생성(Retrieval-Augmented Generation, RAG) 애플리케이션을 구축할 때, 임베딩 모델, 청킹 전략 또는 리트리버를 변경하면 전체 검색 지표가 향상될 수 있습니다.
하지만 이것이 모든 중요한 질의에서 더 잘 작동한다는 것을 의미할까요?
반드시 그렇지는 않습니다.
문제점
세 가지 질의(개인 정보 보호, 설치, 보증)를 가진 RAG 애플리케이션을 상상해 보세요.
검색 시스템을 업데이트한 후 다음과 같은 일이 발생합니다:
| 질의 | 기준선 Hit@1 | 후보군 Hit@1 |
|---|---|---|
| 개인 정보 보호 (중요) | 1 | 0 |
| ... |
평균 검색 점수는 향상되지만, 개인 정보 보호 질의가 관련 문서를 잃게 됩니다.
단지 집계된 지표만을 기반으로 한 배포 결정은 이러한 성능 저하(regression)를 놓칠 수 있습니다.
OpenRAG Bench 소개
저는 RAG 검색 결과를 평가하고 비교하기 위한 오픈 소스, MIT 라이선스의 Python 툴킷인 OpenRAG Bench을 개발하고 있습니다.
이 툴킷은 다음 기능을 제공합니다:
- Precision@k, Recall@k, MRR, MAP, NDCG를 포함한 검색 지표
- 기준선 및 후보군 비교
- OpenRAG Guard를 사용한 구성 가능한 품질 정책
- 인간의 관련성 라벨링을 위한 Golden Dataset Studio
- 저장된 검색 결과를 평가하기 위한 캡처 및 리플레이(Capture & Replay)
- 오프라인 HTML 및 JSON 보고서
핵심 평가는 LLM API 키나 GPU를 필요로 하지 않습니다.
로컬에서 사용해 보기
현재 GitHub 소스 코드를 사용하여 중요한 질의 성능 저하 예제를 재현할 수 있습니다.
git clone https://github.com/ilker-Akbal/openrag-bench.git
dcd openrag-bench
...
그런 다음 열기:
reports/first-demo/guard.html
이 예제는 작은 합성 문서 컬렉션에 대한 실제 키워드 기반 검색을 수행합니다.
후보군은 평균 NDCG@1은 개선했지만, 중요한 개인 정보 보호 문서를 잃었습니다.
예상 결과: 차단됨(BLOCKED)
이 예제 스크립트는 Guard가 후보군을 올바르게 차단했는지 확인할 때 성공적으로 종료됩니다. 직접적인 차단 리플레이 명령은 종료 코드 2를 반환합니다.
이 데모는 배포된 v0.6.0 휠만으로는 사용할 수 없으며, 현재 GitHub 소스 체크아웃에서 이용 가능합니다.
실제 데이터 평가 (Real-data evaluation)
저는 또한 5,183개의 문서와 300개의 심사된 질의를 포함하는 BEIR SciFact 테스트 데이터셋을 사용하여 어휘적 검색 접근 방식(lexical retrieval approaches)도 평가했습니다.
측정된 NDCG@10 결과는 다음과 같습니다:
| 방법 (Method) | NDCG@10 |
|---|---|
| TF-IDF | 0.6329 |
| BM25 | 0.6605 |
이러한 결과는 특정 데이터셋에서 차이를 보여줍니다. 이는 보편적인 모델 우수성이나 통계적 유의성을 입증하는 것은 아닙니다.
다음 단계 (What comes next?)
OpenRAG Bench v0.6.0은 공개 GitHub 알파 릴리스로 이용 가능합니다.
다음 우선순위는 독립적인 개발자 피드백이며, 특히 LangChain, LlamaIndex, FAISS 또는 사용자 지정 검색 파이프라인을 사용하는 사람들의 피드백이 필요합니다.
설치, 안정적인 문서 ID, 통합 문제점, 그리고 혼란스러운 평가 결과에 대한 피드백을 주시면 감사하겠습니다.
GitHub: https://github.com/ilker-Akbal/openrag-bench
빠른 시작 (Quickstart): https://github.com/ilker-Akbal/openrag-bench/blob/main/docs/DEMO_60_SECONDS.md
피드백 (Feedback): https://github.com/ilker-Akbal/openrag-bench/issues/4
OpenRAG Bench는 검색 관련성(retrieval relevance)을 측정합니다. 생성된 답변의 사실성(factuality), 환각(hallucinations), 또는 전반적인 LLM 안전성을 직접적으로 평가하지는 않습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기