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 페이지를 참고하세요.
더 알아보기
- Choosing the Right Ranker — 상황에 맞는 Ranker 고르기
- Retrievers — 검색 단계