Multi-RAG Orchestration
Multi-RAG Orchestration은 도메인·형식·접근 권한이 서로 다른 복수의 RAG 파이프라인을 상위 오케스트레이터가 통합 조율하는 아키텍처다. 단일 파이프라인으로 커버할 수 없는 이질적인 데이터 소스와 복잡한 쿼리를 처리하기 위해 사용된다.
핵심 개념
Multi-RAG Orchestration의 핵심 아이디어는 "전문화된 RAG를 여러 개 만들고, 이를 지휘하는 오케스트레이터를 두는 것"이다. 각 RAG 파이프라인은 특정 도메인이나 데이터 형식에 특화되어 있으며, 오케스트레이터는 쿼리를 분석해 어떤 파이프라인을 실행할지 결정하고 결과를 통합한다.
아키텍처 구성
오케스트레이터 (Orchestrator)
오케스트레이터는 전체 흐름을 제어하는 중앙 컴포넌트다. 주요 역할은 다음과 같다.
- 쿼리 분석: 의도·도메인·복잡도 파악
- 파이프라인 선택: 어떤 RAG 파이프라인을 실행할지 결정
- 실행 관리: 순차 또는 병렬 실행 조율
- 결과 병합: 복수 파이프라인의 출력을 통합 및 재순위화
전문화된 RAG 파이프라인
각 파이프라인은 독립적으로 운영되며 특정 용도에 최적화된다.
Orchestrator
├── Legal RAG (법률 문서, 판례 인덱스)
├── Technical RAG (코드, API 문서, 기술 명세)
├── Financial RAG (재무제표, 공시 데이터)
└── General RAG (일반 지식, 위키, 뉴스)
실행 전략
Sequential Orchestration
오케스트레이터가 파이프라인을 순서대로 실행하며, 이전 결과를 다음 파이프라인의 입력으로 사용한다. 멀티홉 추론(multi-hop reasoning)이 필요한 복잡한 쿼리에 적합하다.
Query → RAG-A → [중간 결과] → RAG-B → [최종 결과]
Parallel Orchestration
복수의 파이프라인을 동시에 실행하고 결과를 병합한다. 레이턴시를 낮추고 재현율을 높이지만 결과 병합 로직이 필요하다.
Query → RAG-A ──┐
→ RAG-B ──┼→ Merger → Final Result
→ RAG-C ──┘
Conditional Orchestration
첫 번째 파이프라인의 결과 품질에 따라 추가 파이프라인 실행 여부를 결정한다. 비용 효율이 높다.
결과 병합 (Result Merging)
복수 파이프라인의 검색 결과를 하나의 컨텍스트로 통합하는 것이 핵심 과제다.
Reciprocal Rank Fusion (RRF)
각 파이프라인에서의 순위를 기반으로 통합 스코어를 계산한다. 스코어 스케일이 다른 파이프라인을 공정하게 병합할 수 있다.
def rrf_score(ranks: list[int], k: int = 60) -> float:
return sum(1 / (k + r) for r in ranks)LLM 기반 재순위화
병합된 후보 문서를 LLM이 쿼리 관련성 기준으로 재순위화한다. 정밀도가 높지만 추가 레이턴시가 발생한다.
관련 개념
- RAG Routing: 단일 파이프라인 내에서의 경로 분기
- Federated Retrieval: 분산된 데이터 소스에 동시 쿼리하는 검색 전략
- Agentic RAG: LLM 에이전트가 검색 전략을 동적으로 계획하고 실행하는 패턴