같은 질문도 표현 방법은 여러 가지잖아요. "서울 맛집"이라고 검색하는 것과 "서울에서 밥 잘하는 곳", "서울 유명 식당"은 같은 뜻이지만 검색 결과가 다릅니다. 이 방식은 하나의 질문을 여러 가지 표현으로 바꿔서 각각 검색한 뒤, 결과를 합쳐서 가장 좋은 답을 찾아냅니다.
예를 들어 "갤럭시 배터리 오래 쓰는 법"이라고 물으면, "갤럭시 배터리 절약 팁", "삼성 폰 배터리 수명 연장"으로 바꿔서 검색해요. 각 검색 결과에서 공통으로 상위에 뜨는 자료가 가장 믿을 만한 자료일 가능성이 높겠죠.
쿠팡이나 네이버 쇼핑에서 상품 검색할 때를 생각해보세요. "운동화"로만 검색하면 놓치는 결과가, "러닝화", "조깅 신발"로도 검색하면 더 잘 찾아지는 것과 같아요. 기업 내부 문서 검색에서도 같은 내용을 부서마다 다른 용어로 작성하는 경우가 많아서 이 방식이 효과가 큽니다.
📚 선수학습: 이 내용을 이해하려면 RAG (Retrieval-Augmented Generation)를 먼저 읽으면 좋습니다.
RAG Fusion은 단일 질의로 한 번 검색하는 대신, LLM을 활용해 다양한 관점의 질의를 여러 개 생성한 뒤, 각 질의의 검색 결과를 Reciprocal Rank Fusion(RRF)1으로 통합하는 기법이다. 2023년 Raudaschl이 제안했으며, 핵심 아이디어는 "하나의 질문을 여러 방식으로 물어보면 더 나은 답을 찾을 수 있다"는 것이다.
전체 파이프라인:
원본 질의 q
│
▼
LLM 질의 생성 (n개)
│
├─ q₁: "RAG의 핵심 구성요소는?"
├─ q₂: "검색 증강 생성 아키텍처 설명"
├─ q₃: "RAG에서 retriever와 generator의 역할"
└─ q₄: "RAG 시스템의 데이터 흐름"
│
▼ (각각 독립적으로 검색)
┌──────┬──────┬──────┬──────┐
│결과₁ │결과₂ │결과₃ │결과₄ │
└──┬───┴──┬───┴──┬───┴──┬───┘
│ │ │ │
└──────┴──────┴──────┘
│
▼
RRF 통합 + 재순위
│
▼
LLM 생성 → 답변
Reciprocal Rank Fusion(RRF) 공식은 각 문서의 순위 역수를 합산한다:
여기서 은 생성된 질의 수, 는 번째 질의에서 문서 의 순위, 는 상수(보통 )다. 값은 상위 문서와 하위 문서 간의 점수 차이를 조절하는 감쇠 파라미터2 역할을 한다.
RRF의 핵심 장점은 점수 정규화가 불필요하다는 것이다. 서로 다른 검색 시스템의 결과도 순위만 있으면 바로 결합할 수 있어, 이종 검색 엔진 통합에 이상적이다.
RAG Fusion의 효과는 질의 다양성에서 비롯된다. 원본 질의 하나로는 놓칠 수 있는 관련 문서를 다각도 질의로 포착한다:
| 지표 | 단일 질의 RAG | RAG Fusion (n=4) | 향상 |
|---|---|---|---|
| Recall@10 | 0.72 | 0.86 | +19.4% |
| MRR@10 | 0.58 | 0.67 | +15.5% |
| 답변 포괄성 | 보통 | 높음 | 체감 ↑↑ |
질의 수 에 따른 수확 체감 법칙: 에서 가성비가 최적이며, 이면 중복 질의가 늘어 효과가 감소한다.
장점:
한계:
Modular RAG