여러분은 ‘방배동 맛집 추천’을 검색했을 때, 수많은 결과 중에서 실제로 몇 개의 식당을 방문하시나요? 아마 대부분은 첫 페이지에 나오는 몇 곳이 전부일 겁니다.

하지만 그 결과가 항상 기대를 충족시키나요? 때로는 광고글에 묻혀 실제 방문객들의 후기를 찾기 어렵고, 원하던 분위기의 식당을 발견하기 위해 여러 페이지를 넘겨야 했던 경험, 다들 있으실 겁니다. 이처럼 검색 결과의 순위가 우리의 정보 접근성과 만족도에 큰 영향을 미치기 때문에, 검색 결과의 정확도를 높이는 것은 매우 중요한 문제입니다.
1. Re-rank모델의 등장
기본적인 검색 시스템은 사용자가 원하는 정보를 빠르고 정확하게 찾을 수 있도록 다음과 같은 단계를 거쳐 작동합니다.
- 인덱싱(Indexing): 웹 페이지, 문서 등을 미리 분석해서 데이터베이스에 저장해두고
- 검색(Retrieval): 사용자가 입력한 쿼리와 관련된 문서들을 빠르게 찾아와
- 순위화(Ranking): 가져온 문서들을 중요도와 관련성에 따라 정렬하는 방식이죠.
과거에는 주로 TF-IDF, BM25 같은 전통적인 알고리즘으로 단어 빈도나 중요도에 기반해 순서를 정했지만, 이런 방식은 문장의 의미나 문맥까지 완벽하게 이해하지 못한다는 한계가 있었습니다.
이 한계를 보완하기 위해 등장한 것이 바로Re-rank 모델입니다.
Re-rank 모델은 간단히 말해 검색 결과를 더 정확하게 정렬하는 역할을 합니다. 단어의 표면적 일치가 아닌, 문맥과 의미를 깊이 이해하여 정말 사용자의 의도에 맞는 유의미한 결과들을 상위로 끌어올리죠.
예를 들어, ‘애플 신제품’을 검색했다면 단어 빈도보다는 실제로 애플의 최신 제품 정보를 담고 있는 문서를 식별해 상위에 노출시키고, ‘서울 야경 명소’라고 검색했다면 단순히 두 단어가 많이 등장하는 문서가 아니라 실제로 서울의 야경을 감상할 수 있는 장소 정보를 담은 문서를 우선적으로 보여주는 것이죠.
이처럼 Re-rank 모델은 검색 결과의 품질을 한 단계 끌어올려, 사용자가 진정으로 원하는 정보를 더 빠르게 찾을 수 있도록 도와줍니다.
2. Re-rank 모델의 동작원리
그럼 Re-rank 모델이 어떻게 동작하는지 알아보겠습니다.

Re-rank 모델의 과정은 크게 5단계로 나눠볼 수 있습니다.
- 인덱싱 (Indexing): 모든 문서들(Document collection)을 미리 분석하여 검색 가능한 형태로 데이터베이스에 저장합니다.
- 쿼리 임베딩 (Query Embedding): 사용자가 검색어(User-query)를 입력하면, Bi-Encoder 모델을 사용해 해당 쿼리를 벡터로 변환합니다. Bi-Encoder는 쿼리와 문서를 각각 독립적인 벡터로 변환하는 모델로 빠른 검색 속도를 위해 사용됩니다.
- 1차 검색 (Initial Retrieval): 벡터 DB/검색 엔진에서 쿼리 벡터와 가장 유사한 문서 벡터들을 찾아 상위 N개(보통 10~100개)의 후보 문서를 추출합니다. 이 단계에서는 속도가 중요하기 때문에 정밀한 분석보다는 빠른 검색에 초점을 맞춥니다.
- 정밀 분석 (Detailed Analysis): 1차 검색으로 선별된 후보 문서들에 대해 Cross-Encoder 모델을 적용합니다. Cross-Encoder는 쿼리와 문서를 하나의 쌍으로 묶어 함께 분석하는 모델로, Bi-Encoder보다 정확도가 높지만 속도가 느립니다. 이 과정에서 각 문서에 더 정교한 관련성 점수가 매겨집니다.
- 최종 순위화 (Final Ranking): Cross-Encoder가 부여한 점수에 따라 문서들을 재정렬하여 최종 검색 결과(Ranked hits)를 사용자에게 제공합니다. 일반적으로 상위 3~10개 정도의 결과만 표시됩니다.
이렇게 Re-rank 모델은 두 가지 모델(Bi-Encoder, Cross-Encoder)을 통해 속도와 정확성을 동시에 고려하면서, 정확한 검색 결과를 사용자에게 제공합니다.
3. 대표적인 Re-rank모델들
그렇다면, 실제로 많이 사용되는 Re-rank 모델들은 어떤 것들이 있을까요?
i. BERT 기반 Re-ranker
- MS MARCO/CrossEncoder: BERT를 기반으로 한 Cross-Encoder 모델로, 마이크로소프트의 MS MARCO 데이터셋으로 훈련되었습니다. 검색 결과 재순위화의 표준 모델로 널리 사용됩니다.
- MonoT5: Google의 T5 모델 아키텍처를 활용한 모델로, 검색 결과 재순위화에 특화되었습니다.
- ColBERT: 문서와 쿼리의 토큰별 상호작용을 모델링하여 세밀한 관련성 평가가 가능합니다.
ii. 상용 API 서비스
- Cohere Rerank: 대표적인 상용 Re-rank API로, 쿼리와 문서 목록을 입력하면 재정렬된 결과와 관련성 점수를 제공합니다. 간단한 API 호출만으로도 강력한 재순위화 기능을 활용할 수 있어 많은 기업들이 도입하고 있습니다.
- Azure AI Search Reranker: 마이크로소프트에서 제공하는 검색 서비스의 재순위화 기능으로, 엔터프라이즈 환경에 최적화되어 있습니다.
- Amazon Kendra Rescore: AWS의 엔터프라이즈 검색 서비스에 포함된 재순위화 기능으로, 특히 기업 내부 문서 검색에 강점을 보입니다.
iii. LLM 기반 재순위화
- 선택기(Selector) LLM: 작은 크기의 LLM을 활용해 후보 문서의 관련성을 판단하는 접근법으로, 최근 RAG 시스템에서 주목받고 있습니다.
- Generation 기반 재순위화: LLM이 직접 “이 질문에 가장 도움이 될 문서는 무엇인가?”를 판단하여 문서를 선택하는 방식입니다.
- HyDE(Hypothetical Document Embeddings): 질문에서 가상의 이상적인 답변을 먼저 생성한 후, 이 가상 답변을 기준으로 문서를 검색하는 창의적인 접근법입니다.
각 모델들은 속도, 정확도, 리소스 요구사항 등에서 서로 다른 특성을 가지고 있기 때문에, 사용 목적과 환경에 가장 적합한 모델을 선택하는 것이 중요합니다.
4. RAG 시스템에서의 Re-rank 활용
최근 AI 기술의 발전으로 기업들의 RAG(Retrieval-Augmented Generation) 시스템 도입이 많아지고 있는데요. RAG는 대규모 언어 모델(LLM)이 외부 지식 베이스에서 정보를 검색(Retrieval)하고, 이를 바탕으로 텍스트를 생성(Generation)하는 방식으로, LLM이 외부 정보를 참조하여 더 정확하고 최신 정보를 제공하도록 돕습니다.
RAG 시스템의 기본 흐름은 다음과 같습니다.

- 사용자가 질문을 입력합니다 (예: “우리 회사의 2023년 휴가 정책은 어떻게 되나요?”)
- 시스템이 관련 문서나 지식을 검색합니다 (1차 검색)
- 검색된 문서 중 가장 관련성 높은 것을 선별합니다 (Re-ranking)
- 선별된 정보를 바탕으로 LLM이 응답을 생성합니다
여기서 3단계, 즉 Re-ranking이 매우 중요합니다. 만약 이 단계가 정확하지 않다면 LLM은 관련 없는 정보를 바탕으로 그럴듯하지만 부정확한 답변을 생성할 위험이 있기 때문입니다.
또한, RAG 시스템의 1차 검색 단계의 검색 방식에 따라Re-rank 모델의 역할도 달라집니다:
- 풀텍스트 검색 방식
전통적인 키워드 매칭(BM25 등)을 사용하는 검색 시스템에서는 Re-rank가 의미적 관련성을 평가하는 핵심 역할을 합니다. 예를 들어 “자동차 고장” 검색 시 “차량 문제”와 같은 동의어가 포함된 문서들도 Re-rank 단계에서 상위로 끌어올릴 수 있습니다. - 벡터 검색 기반 RAG
임베딩 기반 검색(의미적 유사성)에서는 이미 의미적 유사성이 어느 정도 반영되어 있지만, Re-rank 모델은 더 정교한 컨텍스트 이해와 질문-문서 간 관계 분석을 담당합니다. 특히 복잡한 질문이나 다중 조건 질의에서 효과적입니다. - 하이브리드 검색 기반 RAG
키워드와 벡터 검색을 함께 사용하는 하이브리드 시스템에서 Re-rank는 두 접근법의 단점을 보완하고 결과를 통합하는 역할을 합니다. 다양한 소스에서 검색된 문서들의 최종 우선순위를 결정합니다.
이처럼 RAG 시스템에서 Re-rank 모델은 검색 방식과 상관없이 항상 중요한 역할을 담당하며, 특히 최종 응답의 정확도와 신뢰성을 결정짓는 핵심 단계입니다.
5.마무리하며
마무리하며 이번 글에서는 Re-rank 모델의 개념, 작동 원리, 다양한 종류 및 RAG 시스템에서의 활용까지 살펴보았습니다. Re-rank 모델은 검색 시스템의 정확도를 높이는 핵심 기술이며, 앞으로 LLM과의 융합을 통해 더욱 발전하여 사용자의 검색 경험을 혁신할 것으로 기대됩니다. 꼭 복잡한 모델을 직접 구현하지 않더라도, 검색 시스템을 설계하거나 개선할 때 Re-rank 모델의 중요성을 기억하고, 이를 적극적으로 활용해 보시기를 바랍니다.
