Skip to main content
이 문서는 RAG 섹션의 일부입니다.

개념

Re-ranking은 초기 검색 결과를 Cross-encoder 모델로 재정렬하여 정밀도를 높이는 2단계 검색 전략입니다.
  • 1단계 (Retriever): 빠르게 후보군을 추출 (recall 중심, Top-20~50)
  • 2단계 (Reranker): 후보군을 정밀하게 재정렬 (precision 중심, Top-3~5)

Reranking 전략 심층 비교

아래 표는 주요 Reranking 전략을 비교합니다.

Cross-encoder vs Bi-encoder

Cohere Reranker 활용

BGE Reranker 활용 (오픈소스)

bge-reranker-v2-m3는 다국어를 지원하므로 한국어 문서에도 효과적입니다. Databricks Model Serving에 배포하여 사용할 수도 있습니다.

ColBERT (Late Interaction) 활용

ColBERT는 Cross-Encoder의 정확도와 Bi-Encoder의 속도를 절충한 Late Interaction(지연 상호작용) 방식입니다. 일반 Bi-encoder는 질문과 문서를 각각 하나의 벡터로 압축하여 비교하지만, ColBERT는 토큰(단어) 단위로 벡터를 유지 한 채 비교합니다. “Interaction(상호작용)“이 인코딩 이후에 일어나기 때문에 “Late”라고 부르며, 문서 토큰 벡터를 미리 계산해둘 수 있어 Cross-Encoder보다 빠르면서도 토큰 수준의 정밀한 매칭이 가능합니다.

LLM 기반 Reranking (RankGPT)

주의 LLM 기반 Reranking은 문맥 이해가 가장 뛰어나지만, 비용과 지연 시간이 매우 높습니다(문서당 수백~수천 토큰 소비). 고가치 쿼리나 배치 처리에만 사용하고, 실시간 서비스에는 Cross-Encoder나 ColBERT를 권장합니다.

Re-ranking 전략 상세: 언제, 얼마나 Rerank할 것인가

Re-ranking의 효과를 극대화하려면 초기 검색 범위최종 반환 수 를 적절히 설정해야 합니다.
주의 Reranker는 쿼리-문서 쌍별로 추론을 수행하므로, 초기 검색 결과가 많을수록 지연 시간이 증가합니다. P95(전체 요청의 95%가 이 시간 이내에 완료되는 기준) 지연 시간 목표를 기준으로 Top-K를 설정하세요. 일반적으로 K=20이면 Reranking에 100~300ms가 추가됩니다.