기업 내부 문서 검색 프로젝트를 진행하면서 단순 벡터 검색 대비 Hybrid RAG가 훨씬 낫다는 결론을 내렸습니다. 직접 실험한 데이터를 공개합니다.
왜 벡터 검색만으로는 부족한가
시맨틱 검색(벡터 검색)은 의미적으로 유사한 문서를 잘 찾습니다. "퇴직금 지급 기준"을 검색하면 "퇴직급여"나 "근속연수 산정" 같은 연관 문서를 잘 잡아냅니다. 하지만 정확한 조항 번호나 특정 코드명을 검색할 때는 오히려 정확도가 떨어집니다. "제23조 제4항"을 찾아야 하는데 의미 유사도 기반으로 엉뚱한 조항이 올라오는 상황이 실제로 자주 발생했습니다.
실험 설계
대형 금융사 내규 문서 3,200페이지를 대상으로 세 가지 검색 방식을 비교했습니다. 순수 BM25(키워드), 순수 Dense Retrieval(벡터), 그리고 두 방식을 결합한 Hybrid(RRF 앙상블). 평가 질문은 실제 준법감시팀 직원들이 자주 묻는 질문 200개를 사용했고, 정답 문서는 사전에 수동으로 레이블링했습니다.
실험 결과 요약
RRF(Reciprocal Rank Fusion) 적용 방법
RRF는 두 검색 결과의 순위를 결합하는 간단하지만 강력한 방법입니다. 각 검색 방식에서 나온 순위를 1/(rank + k) 공식으로 점수화하고 합산합니다. k=60이 일반적으로 잘 작동합니다. 복잡한 가중치 튜닝 없이 안정적인 성능을 냅니다.
어떤 경우에 어떤 방식이 유리한가
조항 번호, 코드명, 고유명사 검색: BM25가 압도적. 개념적 질문("임원 보수 관련 규정은?"): Dense Retrieval이 강함. 혼재된 실제 업무 질문: Hybrid가 일관되게 가장 좋음. 결론적으로 예측 불가능한 실제 사용자 쿼리에는 Hybrid를 기본값으로 사용하는 것이 안전합니다.
