Skip to content

재순위화 (Reranking)

1차 검색으로 상위 K개 후보를 뽑았어도, 그 순서가 항상 생성에 가장 좋은 순서는 아니에요. 벡터 유사도가 높다고 답에 꼭 쓸모 있는 조각인 건 아니니까요. 그래서 이미 뽑힌 후보를 다시 질문과 대조해 순서를 정렬하는 단계가 재순위화(Reranking) 입니다.

우리는 검색 후보 재정렬에 Cohere Reranker를 씁니다. 이 페이지는 소스 문서 Cohere Rerank 를 바탕으로 설명합니다.


상황부터 — 검색 결과 순서가 왜 부족한가

초기 검색(특히 벡터 검색)은 "후보를 빠르고 넓게" 뽑는 데 목적이 있어요. 그래서 관련 없는 조각이 상위에 섞일 수 있고, 순서도 실제 유용성과 안 맞을 수 있습니다. 재순위화는 후보 수를 줄인 뒤, 각 조각을 질문과 직접 대조해 관련도 점수를 다시 매겨 정렬합니다.


핵심 개념

Reranker의 동작

Reranker는 질문(query)과 후보 문서들(documents)을 받아, 각 문서에 관련도 점수(relevance score) 를 매기고 상위 N개만 뽑아 반환합니다. 검색 단계와 달리 후보를 한 번에 깊이 비교하므로 더 정확한 판단을 하지만, 후보 수가 많으면 비용이 커져 이미 줄어든 후보를 대상으로 씁니다.

검색 vs Reranker 역할 분담

  • 검색(Retriever) — 전체 문서에서 후보를 넓게 뽑는 빠른 1차 필터.
  • Reranker — 뽑힌 후보를 질문과 정밀 대조해 순서를 바로잡는 2차 정렬.

이 두 단계를 합쳐 "넓게 뽑고, 정확히 고른다"는 구조가 됩니다.

Top-N 전달

재순위화 후 상위 N개만 LLM 생성 단계로 넘깁니다. 이렇게 하면 관련 없는 조각이 프롬프트에 들어가 토큰을 낭비하는 일을 줄이고, 답의 정확도와 근거 충실성을 함께 높여요.


사용 사례 / 실제 적용

  • 정책문서 답변 품질 향상 — 1차 검색 결과를 Cohere Reranker로 재정렬해, 진짜 정책 조항이 상위에 오게 합니다.
  • 근거 추적 정확도 — 생성에 넘어가는 조각을 줄여, 답의 문장 하나하나가 실제 근거에 더 잘 연결되게 합니다.
  • 토큰·비용 절감 — 관련 없는 조각을 생성 전에 걸러내 프롬프트 토큰을 줄입니다.

더 알아보기