Optimizing RAG at Scale: Chunking, Retrieval, and the Bayesian Search That Cut Latency 40%

개요

RAG(Retrieval-Augmented Generation) 시스템에서 고정된 토큰 크기 청킹, 단일 검색 방식, 수동 튜닝의 한계를 극복하고, 문서 구조를 고려한 청킹, 하이브리드 검색, 질의 변환, 베이지안 최적화를 통해 검색 지연 시간을 40% 단축하고 검색 성능을 개선하는 방안을 제시합니다.

주요 내용

* 청킹 전략: 문서 유형별로 최적화된 청킹 전략을 적용합니다.
* 법률 계약서: 재귀적 청킹 (절 단위)
* API 레퍼런스: 재귀적 청킹 (함수 단위)
* 고객 지원 티켓: 의미론적 청킹 + 대화 턴 고려
* 내부 위키: 에이전트 기반 청킹 (LLM 활용)
* 하이브리드 검색: 순수 벡터 검색의 부정확성과 BM25의 의미론적 한계를 보완하기 위해 BM25, 벡터 검색, Cross-encoder Reranker를 결합하여 사용합니다.
* RRF(Reciprocal Rank Fusion)를 사용하여 복수의 검색 결과 통합
* Cross-encoder Reranker를 통해 상위 50개의 결과를 5개로 줄여 관련성 높은 결과 선별
* 질의 변환: 사용자의 모호하거나 불완전한 질의를 LLM을 통해 여러 개의 구체적인 검색 질의로 확장하거나, 다단계 질의를 하위 질의로 분해하여 검색 정확도를 높입니다.
* 베이지안 최적화: chunk\_size, overlap, top\_k, 검색 가중치 등의 하이퍼파라미터를 고정된 값 대신 베이지안 최적화 기법(Optuna)을 사용하여 검색 성능(recall@10)과 지연 시간 간의 최적 균형점을 탐색하고, 이를 통해 시스템을 지속적으로 튜닝합니다.
* 지표 측정 및 개선: Prometheus 라이브러리를 사용하여 검색 지연 시간, recall@10, 질의 확장 횟수, Reranker 지연 시간 등의 지표를 실시간으로 추적하고, A/B 테스트 프레임워크를 통해 변경 사항을 검증합니다.
* 주요 결과: 최적화된 RAG 시스템은 기존 방식 대비 recall@10을 78%에서 95%로, p95 지연 시간을 850ms에서 320ms로 개선하였으며, 환각(hallucination) 발생률을 12%에서 3%로, 쿼리당 비용을 38% 감소시켰습니다.

시사점

RAG 시스템의 성능은 청킹, 검색, 질의 처리 등 각 구성 요소의 최적화에 크게 의존하며, 문서 특성에 맞는 전략 적용, 다양한 검색 방법 결합, 자동화된 튜닝 및 모니터링이 대규모 RAG 시스템의 신뢰성과 효율성을 보장하는 핵심 요소입니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions