Tan Kim

reranker-centric

Reranker-centric

Reranker-centric은 복수의 retriever로 넓게 후보를 수집한 뒤(broad recall), 별도의 reranker 모델이 쿼리와 각 문서의 관련성을 정밀하게 평가하여 최종 순위를 결정하는 병합 방식이다. 1차 검색의 병합 방식(Naive/RRF/Score Fusion)에 무관하게 최종 품질을 reranker가 보장한다.

핵심 개념

Retriever(bi-encoder)는 쿼리와 문서를 독립적으로 임베딩해 코사인 유사도를 계산한다. 속도가 빠르지만 쿼리-문서 상호작용을 포착하지 못한다. Reranker(cross-encoder)는 쿼리와 문서를 함께 입력받아 관련성 점수를 계산한다. 느리지만 정밀도가 훨씬 높다.

Reranker-centric은 이 두 모델의 역할을 분리한다. Retriever는 재현율(recall)을 책임지고, Reranker는 정밀도(precision)를 책임진다.

[복수의 Retriever]  →  후보 Pool (top-100~1000)
        │
        ▼
[Reranker]          →  최종 상위 문서 (top-5~20)
        │
        ▼
[LLM]               →  최종 답변

Reranker 모델 유형

Cross-encoder

쿼리와 문서를 [CLS] query [SEP] document [SEP] 형태로 이어 붙여 BERT 계열 모델에 입력하고, 관련성 점수를 출력한다. 정밀도가 높지만 후보 수에 비례해 레이턴시가 증가한다.

from sentence_transformers import CrossEncoder
 
reranker = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-6-v2")
 
def rerank(query: str, candidates: list[Document]) -> list[Document]:
    pairs = [(query, doc.content) for doc in candidates]
    scores = reranker.predict(pairs)
    ranked = sorted(zip(candidates, scores), key=lambda x: x[1], reverse=True)
    return [doc for doc, _ in ranked]

LLM 기반 Reranker

LLM에게 후보 문서들의 관련성 순위를 매기도록 요청한다. 비용이 높지만 복잡한 추론이 필요한 경우 가장 정밀하다. Listwise Reranking 방식(목록 전체를 한 번에 평가)과 Pairwise 방식(두 문서씩 비교)이 있다.

프롬프트: 다음 쿼리에 대해 아래 문서들을 관련성이 높은 순으로 정렬하라.
쿼리: {query}
문서 목록: {candidates}

Learned Sparse Reranker (SPLADE 등)

희소 벡터 기반으로 확장된 쿼리-문서 매칭을 수행한다. Cross-encoder보다 빠르면서 BM25보다 정밀하다.

후보 풀 크기 결정

Reranker는 후보 수만큼 모델을 실행하므로 후보 풀이 클수록 레이턴시와 비용이 증가한다. 일반적으로 다음 기준을 사용한다.

환경 권장 후보 수
실시간 응답 (< 1초) 20~50
준실시간 응답 (< 3초) 50~200
배치/오프라인 200~1000

병합 전략과의 조합

Reranker-centric은 1차 병합 전략에 독립적이다. 어떤 방식으로 후보를 모아도 reranker가 최종 정렬을 맡는다.

[Naive Merge 또는 RRF 또는 Score Fusion]
                    │
                    ▼
              후보 Pool
                    │
                    ▼
               Reranker
                    │
                    ▼
              최종 결과

RRF로 후보를 모으고 Cross-encoder로 재순위화하는 조합이 실전에서 가장 많이 사용된다.

장단점

항목 내용
장점 최고 수준의 정밀도, 1차 병합 방식에 무관하게 품질 보장
단점 추가 레이턴시 (후보 수 × reranker 추론 시간)
단점 1차 검색에서 누락된 문서는 복구 불가

관련 개념

  • Reciprocal Rank Fusion: Reranker-centric의 1차 병합 단계로 자주 사용되는 방식
  • Hierarchical Retrieval: 계층적으로 후보를 좁혀가는 방식 (마지막 단계로 Reranker 배치 가능)
  • Score Fusion: 점수 기반의 1차 병합 방식