단계적 검색으로 RAG 성능 극대화
초록
본 논문은 대규모 문서 데이터베이스에서 Retrieval‑Augmented Generation(RAG)의 검색 효율성을 높이기 위해, 저차원 임베딩으로 후보를 빠르게 축소한 뒤 점진적으로 차원을 늘려 최종 결과를 도출하는 ‘진보적(Progressive) 검색’ 알고리즘을 제안한다. 실험 결과, 동일 혹은 유사한 Top‑1 정확도를 유지하면서 기존의 단일 단계 truncation 검색에 비해 2배~5배 빠른 응답 시간을 달성하였다.
상세 분석
본 연구는 RAG 시스템에서 가장 핵심적인 검색 단계의 비용을 최소화하고자 하는 실용적 목표를 갖는다. 먼저 저차원 임베딩(예: 64, 128 차원)으로 전체 1백만 문서 집합을 한 번 탐색해 K개의 후보를 추출한다. 이때 K는 초기 단계에서 비교적 크게 설정해 후보군을 충분히 포괄하도록 한다. 이후 차원을 2배씩 증가시키며 후보군을 재필터링하고, 각 단계마다 K를 절반 혹은 최소 1까지 감소시켜 연산량을 점진적으로 축소한다. 최종 단계에서는 목표 차원(예: 3072 또는 3584)에서 1‑NN 검색을 수행해 최종 문서를 선택한다.
핵심 아이디어는 “차원‑대‑정확도” 트레이드오프를 단계별로 최적화한다는 점이다. 저차원에서는 거리 계산 비용이 급격히 낮아지지만, 표현력 손실로 인해 정확도가 떨어질 위험이 있다. 그러나 후보군을 충분히 크게 잡고, 이후 고차원 단계에서 정밀 검증을 수행함으로써 초기 손실을 보완한다. 이와 같은 다단계 구조는 전통적인 KNN 기반 검색이 데이터 규모에 비례해 선형 시간 복잡도를 갖는 문제를 로그에 가까운 복잡도로 완화한다.
실험 설계는 두 종류의 임베딩 모델(OpenAI text‑embedding‑3‑large, Alibaba‑NLP gte‑Qwen2‑7B‑instruct)을 사용해 1백만 문서와 2,470개의 질의‑정답 쌍을 구축하였다. 차원 축소 방법으로는 PCA보다 구현이 간단하고 오버헤드가 적은 단순 truncation을 채택했으며, HNSW와 같은 그래프 기반 인덱스는 구축 비용이 과도해 비교에서 제외하였다. 평가 지표는 Top‑1 정확도와 median 검색 시간이며, 각 실험을 10회 반복해 평균값을 보고한다.
결과적으로, 동일 차원에서 단일 단계 truncation 검색이 94% 수준의 Top‑1 정확도를 보이는 반면, progressive 검색은 초기 차원을 128로 잡고 K=128, 최종 차원을 3584로 설정했을 때 95%에 근접하면서도 전체 실행 시간이 20초 수준으로 크게 단축된다. 특히 2048 차원 구간에서는 5배 이상 빠른 속도를 기록한다. 이는 초기 저차원 탐색이 전체 시간의 대부분을 차지하고, 이후 단계는 후보 수가 급감하기 때문에 가능한 현상이다.
한계점으로는 현재 실험이 CPU 기반 Google Colab 환경에 국한돼 있어 GPU 가속이나 대규모 분산 환경에서의 성능 변화를 검증하지 못했다는 점이다. 또한, 후보군 K 값을 어떻게 자동 튜닝할지에 대한 메타‑학습적 접근이 부족하다. 향후 연구에서는 동적 K 조정, 비선형 차원 축소(PCA‑autoencoder 결합) 및 멀티모달 임베딩에 대한 적용 가능성을 탐색할 여지가 있다.
전반적으로, 본 논문은 고차원 임베딩 검색의 비용 문제를 단계적 차원 확대와 후보 필터링으로 효과적으로 완화함으로써, RAG 파이프라인의 실시간 응답성을 크게 향상시킬 수 있음을 실증하였다.
댓글 및 학술 토론
Loading comments...
의견 남기기