쉽게 말하면, 리랭킹은 검색 엔진이 먼저 대충 골라 온 후보 문서들을 더 꼼꼼한 모델이 다시 채점해서 가장 관련 있는 문서를 맨 위로 올리는 과정이다. 많이 빨리 찾는 단계와 느리지만 정확하게 고르는 단계를 나눠서 속도와 정확도를 함께 얻는다. 검색 증강 생성(RAG)에서 AI가 참고할 자료를 고를 때도 이 단계가 쓰인다.
| 분류 | 정보 검색 파이프라인의 2단계 재정렬 절차2,3 |
|---|---|
| 앞 단계 | BM25 또는 이중 인코더 기반 1단계 검색(재현율 확보)3 |
| 대표 방식 | 교차 인코더, 후기 상호작용(ColBERT), 시퀀스-투-시퀀스(monoT5), LLM 목록형 리랭커4,5,6,7 |
| 주요 적용처 | 웹 검색, 기업 검색, 추천 시스템, RAG2,3 |
| 상용 제공 예 | Cohere Rerank, Voyage rerank-2, Jina Reranker v28,9,10 |
1. 개요
리랭킹(re-ranking, 재순위화라고도 함)은 두 단계로 이뤄진 정보 검색 파이프라인의 두 번째 단계다. 빠른 1단계 검색기가 약 50~1,000개의 후보 문서를 가져오면, 더 느리지만 더 정확한 모델이 그 후보들만 다시 점수 매겨 가장 관련 있는 항목이 위로 오게 한다. 1단계는 보통 BM25나 이중 인코더(two-tower 모델)가 벡터 데이터베이스를 조회하는 방식이고, 2단계는 보통 질의와 각 후보를 함께 읽는 교차 인코더(cross-encoder)다. 리랭킹은 웹 검색, 기업 검색, 추천 시스템, 그리고 검색 증강 생성(RAG)에서 표준으로 쓰인다. RAG에서는 재정렬된 상위 결과가 답변 생성을 위해 대규모 언어 모델에 전달된다.2,3
이 구조의 핵심은 속도와 정밀도의 맞바꿈이다. 질의와 모든 문서를 교차 어텐션으로 전부 비교하는 모델은 수백만 개 문서에 돌리기에는 너무 느리다. 반면 질의와 문서를 각각 독립된 벡터로 압축하는 이중 인코더 검색기는 둘 사이의 세밀한 상호작용을 놓친다. 두 단계로 나누면 값싼 재현율 확보를 먼저 하고 비싼 정밀도 판단을 나중에 해서 양쪽의 장점을 함께 얻는다.
Reimers와 Gurevych는 Sentence-BERT 논문에서 이 분할의 효과를 분명하게 보였다. BERT로 문장 1만 개 가운데 가장 비슷한 쌍을 찾으면 추론 실행에 약 65시간이 걸리는데, 이중 인코더를 쓰면 정확도를 일부 잃는 대신 5초로 줄어든다. Sentence-Transformers 문서는 이 이득을 이렇게 정리한다. Cross-Encoder 기반 리랭커는 사용자가 받는 최종 결과를 크게 개선할 수 있다.2,11
2. 두 단계 검색 구조
현대 검색 파이프라인은 거의 항상 최소 두 단계를 갖춘다. 일부 시스템은 LLM 판정기나 결과 융합 단계를 더해 세 번째 단계를 둔다.
| 단계 | 목표 | 대표 방식 | 지연 예산 | 처리 항목 수 |
|---|---|---|---|---|
| 1. 검색 | 재현율: 관련 가능성이 있는 것을 모두 찾기 | BM25, 밀집 검색(two-tower 이중 인코더), 희소·밀집 혼합, ColBERT 근사 최근접 이웃 | 100밀리초 미만 | 수백만~수십억 건 |
| 2. 리랭킹 | 정밀도: 상위 K개 순서 정하기 | 교차 인코더, 후기 상호작용(ColBERT), monoT5, LLM 목록형 리랭커, 풍부한 특징을 쓰는 학습 기반 순위화 | 100밀리초에서 수 초 | 상위 50~1,000개 후보 |
| 3. (선택) 후처리 | 다양성, 비즈니스 규칙, 중복 제거 | 최대 한계 관련성(MMR), 상호 순위 융합(RRF), 사용자 정의 혼합기 | 수십 밀리초 | 상위 10~100개 |
이 구분은 실제 운영되는 RAG 시스템의 방식과도 맞는다. 하이브리드 검색은 BM25나 밀집 검색 중 하나만으로는 놓칠 후보를 모으고, 교차 인코더가 실제 의미 일치도를 기준으로 그것들을 다시 정렬한다. 그다음 상위 3~10개 청크를 LLM의 컨텍스트 창에 넣는다. Sentence-Transformers 문서가 권장하는 방식도 같다. 효율적인 이중 인코더로 질의와 가장 비슷한 상위 100개 문장을 찾은 뒤, 교차 인코더로 (질의, 결과) 조합마다 점수를 계산해 이 100개를 다시 정렬하라는 것이다.3,11
3. 단일 단계 대신 두 단계를 쓰는 이유
질의 하나마다 백만 개 문서 전체에 교차 인코더를 돌리면 트랜스포머 순전파(forward pass)를 백만 번 해야 한다. 순전파 한 번에 10밀리초가 걸린다면 GPU 한 대에서 질의 하나에 약 3시간이 걸린다. 이중 인코더는 문서를 오프라인에서 한 번 인코딩해 벡터 인덱스에 저장해 두므로, 질의 시점에는 빠른 최근접 이웃 조회만 하면 된다. 대가는 정보 손실이다. 질의와 문서가 독립적으로 압축되어 모델이 둘을 함께 보는 일이 없기 때문이다.
교차 인코더는 그 반대다. 질의와 문서를 이어 붙여 함께 처리하므로 어텐션이 질문의 단어를 후보 안의 어떤 토큰과도 맞춰 볼 수 있다. 품질은 올라가고 처리량은 떨어진다. 그래서 이중 인코더가 고른 상위 K개만 리랭킹하는 것이 깔끔한 절충안이다. 사전 계산은 재현율 문제를 맡고, K개 쌍에 대한 교차 어텐션은 정밀도 문제를 맡는다. 업계 자료는 교차 인코더가 쌍당 이중 인코더보다 보통 50~100배 느리다고 보고하며, 전체 코퍼스에 교차 인코더를 돌리지 않는 것도 이 때문이다.11
4. 교차 인코더 리랭커의 작동 방식
교차 인코더는 질의와 후보 문서를 구분 토큰으로 이어 붙여 트랜스포머 하나에 넣고, 마지막 선형 계층에서 관련도 점수 하나를 낸다. Sentence-Transformers 문서는 이 과정을 이렇게 설명한다. 질의와 후보 문서가 동시에 트랜스포머 네트워크에 들어가고, 이 네트워크는 0과 1 사이의 점수 하나를 출력해 문서가 질의와 얼마나 관련 있는지 나타낸다. 모든 질의 토큰이 모든 문서 토큰을 참조할 수 있으므로, 이중 인코더가 잡지 못하는 단어 수준의 상호작용을 포착한다. 대신 구조적 비용이 있다. 교차 인코더는 문장 임베딩을 만들지 않아서 출력을 미리 계산하거나 인덱스에 넣을 수 없고, 그래서 짧은 후보 목록에만 쓰인다.4,11
Sentence-BERT 논문은 2019년에 교차 인코더와 이중 인코더의 용어를 정리했고, MS MARCO용 공개 가중치 교차 인코더를 내놓았다. 이 모델들은 sentence-transformers 같은 라이브러리에서 지금도 널리 쓰인다.2
Nogueira와 Cho의 2019년 논문 「Passage Re-ranking with BERT」는 나중에 monoBERT라고 불리며, BERT를 문단 리랭커로 처음 적용한 연구다. 이들은 BERT-Base와 BERT-Large를 MS MARCO 문단 순위 과제에 미세 조정해, 기존 최고 성능보다 상대 MRR@10 기준 27% 앞섰다고 보고했다. 이어 공개 리더보드 1위를 차지했다. monoBERT 방식, 즉 관련 있는 질의-문단 쌍과 없는 쌍을 가르는 이진 분류는 이후 인코더 기반 리랭커들이 모두 따른 틀이 되었다.12
5. 리랭커의 주요 유형
현재 운영 환경에서 쓰이는 리랭커는 주로 네 가지 계열이다.
| 유형 | 대표 모델 | 구조 | 장점 | 단점 |
|---|---|---|---|---|
| 교차 인코더 | Sentence-BERT ms-marco-MiniLM-L-6-v2, BGE 리랭커, Cohere Rerank, Voyage rerank-2, Jina Reranker v2 | 하나의 트랜스포머가 (질의, 문서)를 이어 붙여 처리하고 스칼라 점수를 출력 | 정확도가 높고 미세 조정이 쉬우며 라이브러리 지원이 좋다 | 문서 표현을 미리 계산할 수 없고, 비용이 K에 따라 선형으로 늘어난다 |
| 후기 상호작용 | ColBERT, ColBERTv2, ColPali | 질의와 문서 각각에 토큰별 임베딩을 두고 MaxSim으로 집계 | 교차 인코더보다 빠르고, 1단계 검색용으로도 인덱싱할 수 있으며, 세밀한 매칭이 가능하다 | 인덱스 크기가 크고 다중 벡터를 저장해야 한다 |
| 시퀀스-투-시퀀스 | monoT5, RankT5 | T5가 관련성 토큰을 생성하고, 그 로짓을 점수로 쓴다 | 제로샷 전이가 강하고 모델 크기에 따라 성능이 확장된다 | 같은 파라미터 수에서 인코더 기반 교차 인코더보다 느리다 |
| LLM 리랭커 | RankGPT, RankZephyr, RankVicuna, GPT-4나 Claude로 하는 목록형 프롬프팅 | LLM에 질의와 후보 목록을 주고 순위 정렬을 요청한다 | 제로샷 품질이 가장 좋고, 자연어 기준을 쓸 수 있다 | 지연과 토큰 비용이 크고, 출력 파싱이 취약하다 |
5.1. 후기 상호작용과 교차 인코더의 차이
ColBERT는 Khattab과 Zaharia가 SIGIR 2020에서 소개한 모델로, 이중 인코더와 교차 인코더 사이에 위치한다. 텍스트마다 벡터 하나를 두는 대신 토큰마다 벡터를 둔다. 질의 시점에는 질의를 토큰별 벡터로 인코딩한 뒤 MaxSim 점수를 계산한다. 질의의 각 토큰마다 문서의 모든 토큰 중 코사인 유사도가 가장 큰 값을 취하고, 이를 질의 토큰에 걸쳐 합산한다. 문서는 오프라인에서 인코딩하므로 인덱스는 이중 인코더보다 훨씬 크지만, 후보 하나를 계산하는 비용은 교차 인코더보다 훨씬 적다. 저자들은 비슷한 BERT 교차 인코더와 품질이 같으면서도 약 100배(order of magnitude 2단계) 빠르고, 질의당 FLOPs는 약 1만 분의 1(order of magnitude 4단계)이라고 보고했다. ColBERTv2(2022)는 잔차 압축을 추가해 인덱스를 줄였다. ColBERT는 1단계 벡터 인덱스 검색기로도, 리랭커로도 쓸 수 있는데 이는 드문 특징이다.5
5.2. 시퀀스-투-시퀀스 리랭커의 작동 방식
monoT5(Nogueira 등, 2020, EMNLP Findings)는 리랭킹을 생성 문제로 다룬다. 모델은 질의와 문서를 「Query: {q} Document: {d} Relevant:」 형태로 바꾼 프롬프트로 학습되며, 관련 있는 쌍에는 true, 무관한 쌍에는 false 토큰을 생성하도록 미세 조정된다. 관련도 점수는 false 대비 true 토큰의 로짓이다. T5는 이미 강력한 시퀀스 모델이었으므로 monoT5는 TREC 트랙 등 도메인 밖 코퍼스에도 잘 전이되었다. Castorini 연구 그룹은 이후 duoT5(쌍별 비교)와 Expando-Mono-Duo 설계 패턴으로 이를 확장했다.6
5.3. LLM 리랭커의 작동 방식
2023년 Sun 등은 「Is ChatGPT Good at Search? Investigating Large Language Models as Re-Ranking Agents」를 발표했다. 이 논문은 EMNLP 2023 우수 논문상(Outstanding Paper Award)을 받았고, 지금은 표준처럼 쓰이는 목록형 프롬프팅 방식 RankGPT를 소개했다. LLM에는 질의와 상위 20개 후보를 ID와 함께 보여 주고, 정렬된 ID 목록을 출력하도록 요청한다. 모델이 후보 전체를 한꺼번에 보므로 후보끼리 비교할 수 있는데, 점별(pointwise) 교차 인코더는 이를 할 수 없다. 컨텍스트 창이 허용하는 것보다 많은 후보를 다루기 위해 RankGPT는 뒤에서 앞으로 움직이는 슬라이딩 윈도우를 쓴다. 가장 약한 윈도우를 먼저 재정렬해 강한 후보를 위로 끌어올린다.7
RankZephyr(Pradeep, Sharifymoghaddam, Lin, 2023)는 RankGPT-3.5와 RankGPT-4의 동작을 Zephyr-Beta와 Mistral 기반 70억 파라미터(7B) 공개 모델로 증류했다. 이로써 TREC Deep Learning 평가에서 공개 모델과 비공개 모델의 격차를 상당 부분 좁혔다. RankLLM 툴킷은 이 모델들을 재현 가능한 정보 검색 연구용으로 묶어 제공한다.13
5.4. 학습 기반 순위화
신경망 리랭커가 주류가 되기 전에는 손으로 설계한 특징을 쓰는 학습 기반 순위화(learning-to-rank, LTR)가 주로 쓰였다. 특징에는 BM25 점수, 클릭률, 앵커 텍스트 일치, 최신성, PageRank 등이 포함됐다. LambdaMART(Burges, 2010)는 LambdaRank를 부스팅 트리로 구현한 방식으로, NDCG를 직접 최적화했고 2010년 Yahoo! Learning to Rank Challenge 트랙 1에서 우승했다. LightGBM과 XGBoost의 LambdaMART 구현은 지금도 상업 검색과 광고 랭킹에서 표준으로 쓰이며, 신경망 후보 위에 올라가는 마지막 단계로 쓰이는 경우도 많다.14
6. 상용 리랭커 API
여러 벤더가 호스팅형 리랭커를 판매한다. 클라이언트 쪽에 GPU가 필요 없고, 모델이 대개 다국어를 지원하며 지속적으로 갱신된다는 점이 편리하다. Cohere는 자사 엔드포인트가 수행하는 작업을 이렇게 설명한다. 리랭크 모델은 텍스트 입력을 지정한 질의와의 의미적 관련도로 정렬하며, 각 문서에 관련도 점수를 붙여 돌려준다.15
| 제공사 | 모델명 | 컨텍스트 길이 | 지원 언어 | 비고 |
|---|---|---|---|---|
| Cohere | rerank-v3.5 | 4096 토큰 | 100개 이상 | 2024년 12월 이후 다국어 기본 모델. Bedrock, Azure, Oracle에서도 제공8 |
| Voyage AI | rerank-2 | 결합 16K 토큰 | 다국어 | 품질 중심. rerank-2-lite는 8K 컨텍스트에서 더 저렴9 |
| Jina AI | jina-reranker-v2-base-multilingual | 1024 토큰(청킹 시) | 100개 이상 | 2억 7,800만 파라미터. 함수 호출과 코드 검색에 맞춰 조정10 |
| BAAI | bge-reranker-v2-m3 | 8192 토큰 | 다국어 | 공개 가중치(Apache 2.0). 6억 파라미터(0.6B)로 일반 소비자용 하드웨어에서 실행된다 |
| Mixedbread | mxbai-rerank-large-v1 | 512 토큰 | 영어 | 공개 가중치, Apache 2.0 |
Anthropic과 OpenAI는 전용 리랭커 엔드포인트를 제공하지 않는다. 이들 제공사의 모델로 LLM급 리랭킹이 필요한 팀은 채팅 모델에 목록형 템플릿을 넣어 호출하는데, 잘 작동하지만 질의당 비용이 더 든다. Cohere Rerank, Voyage Rerank, Jina Reranker 엔드포인트는 모두 비슷한 형태의 점수를 돌려준다. 인덱스와 관련도 값의 쌍으로 된 JSON 목록이라 클라이언트에서 정렬하기 쉽다.
7. 지연 시간과 품질의 절충
지연 시간은 하드웨어, 배치 크기, 후보 길이에 따라 달라진다. 아래 수치는 약 100~200토큰 길이의 영어 문단을 기준으로 한 대략적인 자릿수다.
| 방식 | 질의당 지연 | 적합한 경우 |
|---|---|---|
| BM25 | 1~10ms | 키워드 매칭용으로 항상 실행 |
| 이중 인코더 ANN | 10~100ms | 1단계 밀집 검색 |
| 상위 100개에 대한 교차 인코더 | GPU에서 100ms~1초 | 운영 RAG의 기본 리랭커 |
| 상위 1000개에 대한 교차 인코더 | GPU에서 1~5초 | 재현율은 높지만 엔드포인트가 느림 |
| 상위 1000개 대상 ColBERT MaxSim | 50~200ms | 이중 인코더와 교차 인코더 사이의 중간 단계 |
| LLM 목록형(문서 20개에 GPT-4) | 2~10초 | 최고 품질이 필요하고 배치나 비동기 파이프라인에 적합 |
품질 이득은 파이프라인 전체에 걸쳐 누적된다. Genzeon의 하이브리드 + 리랭크 파이프라인은 BM25와 밀집 검색을 융합한 결과 위에 교차 인코더를 추가했을 때 MRR@3이 0.433에서 0.605로 올랐다고 보고했다(상대 개선 39.7%). Pinecone, Databricks, Cohere도 교차 인코더 리랭커가 최고의 1단계 방식 하나만 쓸 때보다 NDCG@10을 5~15포인트 높인다는 비슷한 수치를 발표했다.3
향상 폭은 1단계 검색이 이미 얼마나 좋은지에 달려 있다. BM25가 이미 정답을 1위에 올린다면 리랭커가 더할 것은 적다. 관련 문단이 어휘 겹침이 약해 47위에 묻혀 있다면, 리랭킹이 그 질의를 살린다.
8. 평가 방법
리랭킹은 일반적인 순위 평가와 같은 오프라인 지표로 평가한다. NDCG@k, MRR, MAP, Precision@k, Recall@k가 쓰이며, 이 가운데 Recall@k는 검색 단계에서 더 유용하다. 대표 공개 벤치마크는 MS MARCO 문단 및 문서 트랙, TREC Deep Learning 트랙(DL19, DL20, DL21, DL22), 18개 데이터셋을 포함한 이종 제로샷 벤치마크 BEIR다. BEIR 결과는 포함된 데이터셋의 평균 NDCG@10으로 보고되며, 1단계 검색기와 리랭커 모두의 표준 기준점이다.
RAG 시스템에서는 최종 답변 품질 지표도 중요하다. 리랭커가 NDCG를 2점 올리더라도 그럴듯하지만 틀린 방해 문서를 끌어와 오답 비율을 높인다면 애플리케이션 입장에서는 순손실이다. RAG를 운영하는 팀은 검색 지표와 함께 큐레이션된 답변 세트에 대한 종단간(end-to-end) 정확도 지표를 함께 쓰는 경우가 많다.
9. 고전적(비신경) 리랭킹 기법
모든 리랭커가 신경망 모델은 아니다. 비신경 방식 두 가지가 지금도 운영 환경에서 쓰인다.
상호 순위 융합(Reciprocal Rank Fusion, RRF)은 Cormack, Clarke, Buttcher가 SIGIR 2009에서 소개했으며, 여러 순위 목록을 하나로 합치는 표준 방식이다. 문서의 RRF 점수는 입력 목록마다 1 / (k + rank_i)를 합한 값이고, k는 작은 상수다(논문은 60을 사용). RRF는 기저 점수를 버리고 순위 위치만 쓰므로, 서로 호환되지 않는 척도의 점수를 내는 시스템에도 견고하다. OpenSearch, Elasticsearch, Azure Cognitive Search 및 대부분의 하이브리드 검색 라이브러리가 기본 융합 전략으로 쓴다.16
의사 관련 피드백(pseudo-relevance feedback, PRF)은 1차 검색의 상위 K개 결과를 관련 있는 것으로 가정하고, 이 문서들에서 뽑은 용어로 질의를 확장해 두 번째 검색을 한다. BM25 위에서 가장 흔한 PRF 방식은 RM3이며, ANCE-PRF와 ColBERT-PRF 같은 신경망 변형은 같은 아이디어를 밀집 검색에 적용한다. 별도의 점수 모델이 없더라도 두 번째 검색이 피드백을 반영해 후보 집합의 순서를 바꾸므로, PRF는 기술적으로 리랭킹 단계다.
10. 실무 구현
| 스택 | 리랭커 클래스 또는 구성 요소 | 대표 용도 |
|---|---|---|
| sentence-transformers | CrossEncoder | 로컬 교차 인코더 추론, 사용자 데이터에 대한 미세 조정 |
| LangChain | CohereRerank, JinaRerank, FlashrankRerank(langchain_community) | 기본 검색기를 ContextualCompressionRetriever로 감싸기 |
| LlamaIndex | CohereRerank, SentenceTransformerRerank, LLMRerank 노드 후처리기 | 검색과 답변 생성 사이에서 QueryEngine에 연결 |
| Haystack 2 | TransformersSimilarityRanker, CohereRanker, JinaRanker, LostInTheMiddleRanker | 바로 쓰는 파이프라인 구성 요소 |
| RankLLM | RankZephyr, RankGPT, FIRST | 슬라이딩 윈도우를 쓰는 LLM 목록형 리랭킹 |
| FlagEmbedding | FlagReranker, FlagLLMReranker | BGE 리랭커 추론 |
LangChain에서 구성은 짧다. 기본 벡터 검색기를 만들고 CohereRerank를 생성한 뒤, ContextualCompressionRetriever(base_compressor=cohere, base_retriever=vector)로 감싼다. 모든 질의는 먼저 벡터 검색기를 거치고, 후보 문서는 리랭크 API로 흘러 들어가며, 감싼 검색기는 재정렬된 상위 N개를 돌려준다. LlamaIndex도 QueryEngine의 노드 후처리기 목록으로 같은 패턴을 따른다.17
11. 한계
교차 인코더 설계에는 구조적 한계가 있다. 문서 표현을 미리 계산할 수 없어 비용이 질의 시점에 발생하며, 후보 수에 선형으로 늘어난다. K가 20~100이면 감당할 만하지만 1000 이상이면 부담이 크다. ColBERT 같은 후기 상호작용 모델은 사전 계산이 가능하도록 정확도를 일부 포기하며, 지연 예산이 매우 빡빡할 때는 가벼운 특징을 쓰는 학습 기반 순위화가 여전히 유용하다.
도메인 이동도 골칫거리다. MS MARCO 웹 문단으로 학습한 리랭커는 법률 계약서, 의학 문헌, 사내 문서에서 성능이 떨어질 수 있다. 도메인 내 쌍으로 미세 조정하면(코퍼스에서 합성으로 만드는 경우가 많다) 대개 해결되지만, 라벨링된 또는 반쯤 라벨링된 데이터와 적지 않은 학습 과정이 필요하다. Cohere, Voyage, Jina, BAAI가 다국어 체크포인트를 내놓는 데는 이 문제의 부담을 사용자 전체에 나누려는 이유도 있다.
LLM 리랭커는 토큰 비용과 지연을 늘린다. GPT-4로 후보 20개에 RankGPT를 돌리면 보통 몇 초가 걸리고 일반적인 채팅 완성보다 비용이 많이 든다. 출력이 잘못된 형식이거나, 모델이 순위 매기기를 거부하거나, 입력 목록에 없던 ID를 지어내는 등 실패 양상도 독특하다. RankZephyr 등 증류된 공개 모델은 비용을 줄이지만 여전히 주의 깊은 출력 파싱이 필요하다.
마지막으로 리랭커만 따로 최적화하면 1단계 문제를 가릴 수 있다. 1단계 검색이 관련 문서를 아예 놓치면 후보 집합에 없으므로 어떤 리랭커도 구할 수 없다. 따라서 검색 단계의 종단간 재현율은 리랭크 단계의 정밀도만큼 중요하며, 한쪽만 튜닝하면 오해를 부르는 결과가 나오기 쉽다.
12. 발전 과정
고전적 IR 시스템은 신경망이 등장하기 훨씬 전부터 다단계 랭킹을 썼다. 2000년대 후반 Bing과 Yahoo 웹 검색 스택은 역색인 재현 단계, 수천 개 후보에 대한 L1 랭커(보통 LambdaMART), 상위 100개에 풍부한 특징과 클릭 신호를 쓰는 L2 랭커로 구성되었다. 이런 분할은 오늘날과 같은 계산 논리에서 나왔다. 웹 전체에 완전한 특징 추출을 하는 것은 불가능하므로 값싼 재현율이 먼저 온다.
신경망 시대는 2019년 Nogueira와 Cho의 monoBERT로 시작됐고, 트랜스포머 교차 인코더가 MS MARCO 최고 성능을 큰 폭으로 올릴 수 있음을 보였다. 같은 해 Reimers와 Gurevych의 Sentence-BERT는 이 리랭커들에 입력할 만큼 검색을 싸게 만드는 이중 인코더 짝을 제공했다. ColBERT(2020)와 monoT5(2020)는 각각 후기 상호작용과 시퀀스-투-시퀀스 방식을 탐구했다. 2023년까지 RankGPT는 LLM 목록형 프롬프팅이 전용 리랭커와 맞먹거나 능가할 수 있음을 보였고, RankZephyr는 그 능력을 공개 가중치 모델로 증류했다. Cohere는 2023년 첫 상용 Rerank 모델을 출시했고, 다국어 기본 모델인 rerank-v3.5는 2024년 12월에 나왔다. Voyage는 2024년 9월 rerank-2를, Jina는 비슷한 시기에 다국어 리랭커를 출시했다.2,5,6,7,8,9,10,12,13
발전 방향은 더 긴 컨텍스트, 더 많은 언어, 하이브리드 검색과의 더 긴밀한 통합으로 향하고 있다. 전문화된 교차 인코더, 후기 상호작용 모델, 아니면 충분히 유능한 범용 LLM 중 무엇이 미래를 차지할지는 열린 질문이다. 실제 운영 시스템 대부분은 셋을 함께 쓴다. 재현율을 위해 BM25와 밀집 검색을 쓰고, 대부분의 리랭킹에는 빠른 교차 인코더를 쓰며, 생성 답변에 들어갈 마지막 소수 후보에는 LLM(또는 LLM 기반 판정기)을 쓴다.
13. 쉬운 비유로 보기
백만 권의 책이 있는 거대한 도서관을 떠올려 보자. 공룡에 관한 책을 찾아 달라고 사서에게 부탁하자, 사서는 제목에 '공룡'이 들어간 책 100권을 재빨리 가져온다. 빠르지만 거칠다. 그중에는 색칠 공부책도 있고, 표지에만 공룡이 나오는 로맨스 소설도 있다. 그러자 고생물학자가 와서 100권을 하나씩 훑어 원하는 목적에 얼마나 쓸모 있는지 순서대로 매긴다. 고생물학자는 느리지만 꼼꼼하다. 이 두 번째 과정이 리랭킹이다. 사서는 폭을, 고생물학자는 정밀도를 주고, 둘이 함께 백만 권을 모두 읽지 않고도 도서관에서 가장 좋은 책 10권을 건네준다.
출처 17개
- AI Wiki: Re-ranking (2026-06-27 수정본) aiwiki.ai · CC BY 4.0 · 확인 2026-10-17
- Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks arxiv.org · 확인 2026-10-17
- Hybrid Retrieval and Reranking in RAG: A Dual-Stage Approach to Improve Information Recall and Precision genzeon.com · 확인 2026-10-17
- Cross-Encoders sbert.net · 확인 2026-10-17
- ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT arxiv.org · 확인 2026-10-17
- Document Ranking with a Pretrained Sequence-to-Sequence Model arxiv.org · 확인 2026-10-17
- Is ChatGPT Good at Search? Investigating Large Language Models as Re-Ranking Agents arxiv.org · 확인 2026-10-17
- Announcing Rerank-v3.5 docs.cohere.com · 확인 2026-10-17
- rerank-2 and rerank-2-lite: the next generation of Voyage multilingual rerankers blog.voyageai.com · 확인 2026-10-17
- Jina Reranker v2 for Agentic RAG: Ultra-Fast, Multilingual, Function-Calling and Code Search jina.ai · 확인 2026-10-17
- Retrieve & Re-Rank sbert.net · 확인 2026-10-17
- Passage Re-ranking with BERT arxiv.org · 확인 2026-10-17
- RankZephyr: Effective and Robust Zero-Shot Listwise Reranking is a Breeze! arxiv.org · 확인 2026-10-17
- From RankNet to LambdaRank to LambdaMART: An Overview microsoft.com · 확인 2026-10-17
- Rerank Overview docs.cohere.com · 확인 2026-10-17
- Reciprocal Rank Fusion outperforms Condorcet and Individual Rank Learning Methods cormack.uwaterloo.ca · 확인 2026-10-17
- Cohere Rerank on LangChain (Integration Guide docs.cohere.com · 확인 2026-10-17