Rankers

Rankers

검색기(Retriever)가 후보 문서를 골라내도, 그 순서가 항상 "가장 관련 있는 문서가 맨 위"인 건 아니에요. Rankers는 주어진 기준에 따라 문서를 재정렬해서 검색 결과를 개선하는 컴포넌트 묶음입니다.

출처: 공식문서

어떤 Ranker가 있나

Ranker 설명
AmazonBedrockRanker Amazon Bedrock 모델로 질의와의 유사도를 기준으로 문서를 순위화합니다.
CohereRanker Cohere rerank 모델로 질의와의 유사도를 기준으로 문서를 순위화합니다.
FastembedRanker FastEmbed가 지원하는 cross-encoder 모델로 질의와의 유사도를 기준으로 문서를 순위화합니다.
FastembedLateInteractionRanker FastEmbed가 지원하는 late interaction 모델로 질의와의 유사도를 기준으로 문서를 순위화합니다.
HuggingFaceTEIRanker Text Embeddings Inference (TEI) API 엔드포인트로 질의와의 유사도를 기준으로 문서를 순위화합니다.
JinaRanker Jina AI 모델로 질의와의 유사도를 기준으로 문서를 순위화합니다.
LLMRanker Large Language Model로 질의에 대한 문서를 순위화하며, 순위가 매겨진 문서 인덱스를 JSON으로 반환합니다.
LostInTheMiddleRanker 가장 관련 있는 문서를 결과 목록의 처음과 끝에, 덜 관련 있는 문서를 중간에 배치합니다. 연구 논문에 기반합니다.
MetaFieldRanker 특정 메타데이터 필드 값에 따라 문서를 정렬하는 가벼운 Ranker.
MetaFieldGroupingRanker 메타데이터 키를 기준으로 문서를 그룹화하여 재정렬합니다.
NvidiaRanker NVIDIA NIMs의 대형 언어 모델로 문서를 순위화합니다.
PyversityRanker pyversity의 다양성 알고리즘으로 관련성과 다양성을 균형 있게 맞춰 문서를 재순위화합니다.
SentenceTransformersDiversityRanker Sentence Transformers 기반의 Diversity Ranker.
SentenceTransformersSimilarityRanker 질의에 대한 관련성을 기준으로 문서를 정렬하는 모델 기반 Ranker. cross-encoder 모델로 질의·문서 임베딩을 만들고, 질의 임베딩과 문서 임베딩의 유사도를 비교해 가장 유사한 문서가 먼저 오는 순위를 만듭니다.

단어 순서와 구문을 고려하는 강력한 Ranker로, 더 약한 Retriever가 만든 초기 순위를 개선하는 데 쓸 수 있습니다. 다만 모델을 쓰지 않는 Ranker보다 계산 비용이 더 듭니다.
VLLMRanker vLLM으로 서비스되는 reranker 모델로 질의와의 유사도를 기준으로 문서를 순위화합니다.

실제로는 어떻게 쓰나

일반적인 흐름은 "검색 → 순위화 → 답변"이에요. Retriever가 후보 문서를 찾으면 Ranker가 그 문서들을 재정렬하고, 그다음 Generator나 Reader 같은 하위 컴포넌트로 넘깁니다. cross-encoder 기반 Ranker는 질의와 문서를 함께 평가해 더 정확한 관련성 점수를 주기 때문에, 단순 벡터 유사도만으로는 놓치기 쉬운 맥락을 반영할 수 있죠.

어떤 Ranker를 고를지는 정확도, 비용, 지연 시간, 결과 다양성 중 무엇을 우선하느냐에 따라 달라져요. 이에 대한 자세한 안내는 Choosing the Right Ranker 페이지를 참고하세요.

더 알아보기