이전 포스팅에서는 Retrieval Augmented Generation(RAG)의 개념과 구조에 대해서 알아보았습니다. 이번 포스팅에서는 RAG 파이프라인의 성능을 한 단계 높여주는 핵심 컴포넌트인 ReRanker에 대해 알아보겠습니다.
1. ReRanker란?
ReRanker는 이름 그대로 '순위 재조정(Re-Ranking)'을 담당하는 컴포넌트입니다. 이는 RAG 파이프라인에서 초기 검색 단계에서 찾아낸 문서들의 순위를 더 정교하게 재평가하여 관련성이 가장 높은 문서들을 선별해내는 역할을 합니다.
2. Basic RAG Pipeline의 문제점
먼저, 이전 포스팅에서 RAG의 핵심 요소로 두 가지의 모델(임베딩 모델, 응답 생성 모델)과 그리고 Retrieval 알고리즘(유사도 기반 문서 검색 알고리즘)에 대한 서술을 했었습니다. 만약 기본적인 RAG 파이프라인을 구축한 상황에서 프로덕션 수준의 요구사항을 만족시키기 위해 RAG자체의 성능을 높여야 되는 시기라면 각 요소에 대해 다음과 같은 문제을 고민할 것입니다.
- 임베딩 모델의 정보 손실: 문서를 벡터로 변환하는 과정에서 불가피하게 정보 손실이 발생합니다. 수백 페이지의 문서 내용을 수백 차원의 벡터로 압축하면서 미묘한 의미나 맥락이 소실됩니다.
- 검색 알고리즘의 정확도-속도 트레이드오프: 대규모 벡터 데이터베이스에서는 정확한 유사도 검색보다 속도를 우선시하는 근사 최근접 이웃(ANN) 알고리즘을 사용합니다. 이는 실시간 응답이 필요한 프로덕션 환경에서는 불가피한 선택이지만, 검색 정확도를 일부 희생하게 됩니다.
- 응답 생성 모델의 컨텍스트 제한: 모델이 처리할 수 있는 컨텍스트 길이는 제한적입니다. 단순히 유사도가 높은 문서를 많이 전달하는 것보다 '정확히 관련된' 문서를 선별하는 것이 더 중요합니다.
이러한 문제점 중 3번 문제에 대해 심도있게 분석한 연구가 있었습니다(그림 1). 이 연구는 응답 생성 모델에 쓰이는 LLM에 대해 질문에 대한 관련 문서가 컨텍스트 중간에 위치할 경우, LLM의 응답 정확도가 낮아진다라는 연구 결과와 컨텍스트 내에서 그 순서 또한 앞 혹은 뒤쪽에 위치하고 있어야 한다라는 연구 결과를 보였었습니다.
3. ReRanker를 통한 문제해결
결국 응답 생성 모델의 성능에 있어서 관련 문서들의 순서와 배치가 핵심적인 역할을 한다는 사실이 입증되었습니다. 그래서 이 문제를 해결하기 위해 연구자들은 기존에 분리된 임베딩 모델과 검색 알고리즘 과정을 통합하는 Cross-encoder 모델로 대체함으로써 해결하려 하였습니다
그림2에서 볼 수 있듯이, 기존 RAG 파이프라인에서는 Bi-encoder구조를 사용했습니다.
이 구조는 다음과 같은 구조를 가집니다.
- 질문(Document A)과 참조 문서(Document B)를 각각 독립적으로 임베딩 모델에 통과후 벡터화 수행
- 두 문서의 임베딩 벡터 간 유사도를 계산하여 관련된 문서 검색
반면, ReRanker가 사용하는 Cross-encoder구조는 다음과 같습니다.
- 질문과 문서를 하나의 입력으로 결합하여 모델에 제공
- 모델이 두 텍스트 간의 관계를 직접적으로 분석하여 보다 정교한 유사도 점수를 산출하면서 문서의 순서도 재배치
- BERT 기반 모델들이 많이 쓰임 (MonoBERT, DuoBERT)
이러한 방식으로 좀 더 정교한 문서 집합(context)을 응답 생성 모델에 전달할 수 있었고, 이는 응답 생성 모델(LLM)의 정확도가 크게 향상되는 결과를 가져올 수 있었습니다.
Two-stage Retrieval
하지만 Cross-encoder 구조 또한 프로덕션 측면에서 질문이 들어올 때 모든 문서들이 모델의 입력으로 들어가야 했기 때문에, 시간적 비용이 많이 소모됩니다. 이를 해결하기 위해 도입된 전략이 바로 Two-stage Retrieval(2단계 전략)입니다.
2단계전략의 경우 기존의 유사도 기반 검색을 활용하여 여러 문서들을 빠르게 한번 훑어서 필터링(1단계) 한 뒤 필터링한 문서들을 바탕으로 가장 관련성 높은 문서들 위주로 재정렬(2단계)를 진행하게 됩니다. 다음은 각 단계를 정리한 내용입니다.
1단계: 초기 검색 (Retrieval)
- 목적: 대규모 문서 데이터베이스에서 빠르게 후보 문서들을 추출
- 방법: 주로 벡터 유사도 기반 검색(ANN) 또는 키워드 기반 검색(BM25) 사용
- 특징: 계산 효율성을 위해 설계되어 수백만 개의 문서에서 수십~수백 개의 잠재적 관련 문서 추출
- 트레이드오프: 속도를 위해 약간의 정확도 희생
2단계: 재순위화 (Re-ranking)
- 목적: 1단계에서 선별된 후보 문서들을 바탕으로 더 정교하게 평가하여 가장 관련성 높은 문서들을 선택 후 재정렬
- 방법: Cross-Encoder 모델 또는 LLM 기반 평가 사용
- 특징: 쿼리와 문서를 함께 분석하여 더 복잡한 의미적 관계 파악
- 장점: 계산 비용이 높지만 제한된 후보군에만 적용되므로 전체 시스템은 여전히 효율적
이번 포스팅에서는 이전에 살펴본 RAG의 개념과 파이프라인 구조에 이어, 기존 RAG 시스템의 성능을 한 단계 끌어올릴 수 있는 ReRanker 컴포넌트에 대해 알아보았습니다. 단순한 벡터 유사도 검색의 한계를 넘어, Cross-encoder 방식으로 문서와 질의의 관계를 더 깊이 이해하는 ReRanker는 특히 응답 생성 모델의 정확도를 높이는데에 효과적입니다. 프로덕션 환경에서 기본적인 RAG 시스템이 구축되었다면, 비교적 적은 추가 비용으로 ReRanker를 도입하여 응답 품질을 크게 향상시킬 수 있습니다.
Referece
'AI > RAG' 카테고리의 다른 글
Model Context Protocol (MCP) (0) | 2025.04.02 |
---|---|
RAG 시스템 성능, 어떻게 평가할까? RAGAS로 살펴보는 네 가지 핵심 지표 (1) | 2025.03.25 |
RAG 프레임워크 비교하기: Haystack, RAGFlow, txtai (1) | 2025.03.04 |
Retrieval Augmented Generation (RAG) (4) | 2025.02.28 |