개발/용어 사전

Reranker란? 검색 결과를 다시 정렬하는 모델

cedis 2026. 6. 11. 23:30
AI 응용 기술 용어 정리

Reranker는 검색된 후보 문서 중 정말 질문에 맞는 것을 더 위로 올리는 단계입니다.

핵심 요약

retriever가 넓게 후보를 찾는 역할이라면, reranker는 후보를 더 꼼꼼히 읽고 순서를 다시 매기는 역할입니다.

  • Rerank
  • Reranker
  • Bi-Encoder와 Cross-Encoder
  • 검색 품질 개선 흐름

1. 한 줄로 정의하면

Reranker는 1차 검색으로 얻은 후보 문서들을 query와 함께 다시 평가해 더 적절한 순서로 정렬하는 모델 또는 단계입니다.

Retriever
빠르게 후보 문서를 찾아오는 역할입니다.
Reranker
후보 문서를 다시 읽고 순위를 조정하는 역할입니다.
Bi-Encoder
query와 문서를 각각 벡터화해 빠르게 비교하는 구조입니다.
Cross-Encoder
query와 문서를 함께 입력해 더 정밀하게 관련성을 판단하는 구조입니다.

2. 왜 이 개념이 필요했나

embedding search는 빠르지만, query와 문서를 깊게 비교하지는 않습니다. 그래서 상위 결과에 얼핏 비슷하지만 실제로는 덜 맞는 문서가 들어올 수 있습니다.

Reranker는 1차 검색 결과 몇십 개만 대상으로 더 정밀한 판단을 합니다. 전체 문서를 다 읽는 것은 비싸지만, 후보만 다시 보는 것은 현실적입니다.

이 구조는 검색 시스템에서 흔합니다. 먼저 빠르게 후보를 넓게 가져오고, 그 다음 비싼 모델로 상위 후보를 다시 정렬합니다.

3. 동작 흐름

1
1차 검색
Vector Search나 BM25로 후보 20~100개를 가져옵니다.
2
후보 쌍 구성
query와 각 후보 문서를 묶습니다.
3
관련성 재평가
reranker가 더 정밀한 relevance score를 계산합니다.
4
최종 top-k
다시 정렬한 뒤 LLM에 넣을 문서만 선택합니다.

4. 구조를 그림처럼 보면

순서 흐름
1
사용자 질문 입력
2
Vector Search/BM25로 후보 50개 수집
3
Reranker가 질문과 후보 문서를 쌍으로 다시 평가
4
상위 5개만 RAG context로 사용
5
LLM 답변 품질과 근거 정확도 개선

5. 서비스 예시로 이해하면

지식베이스형 서비스의 초기 버전에서는 cosine similarity로 top-k 콘텐츠를 찾는 수준입니다. 여기서 검색 결과가 애매하다면 다음 단계로 reranker를 붙일 수 있습니다.

예를 들어 query가 '임베딩 작업 실패 재시도'라면, 단순히 embedding이라는 단어가 많은 문서보다 FAILED 처리와 retry 정책을 실제로 설명하는 문서가 더 위에 와야 합니다.

query: "embedding job 실패 시 재시도"

1차 후보:
- 글 A: embedding 개념 설명
- 글 B: FAILED 상태와 attempt_count 설명
- 글 C: OpenAI API 연결 코드

reranker 이후:
1. 글 B
2. 글 C
3. 글 A

6. 헷갈리기 쉬운 비교

단계속도정밀도
Retriever 빠름 후보를 넓게 찾지만 섬세한 판단은 약함
Reranker 상대적으로 느림 후보를 더 꼼꼼히 비교함
LLM 생성 가장 비쌈 최종 답변을 생성함

7. 실무에서 조심할 점

  • reranker는 검색 후보가 이미 망가진 상태에서는 큰 효과를 내기 어렵습니다.
  • 후보 개수를 너무 많이 주면 비용과 지연 시간이 커집니다.
  • reranker 점수가 높다고 반드시 생성 답변이 좋아지는 것은 아닙니다. 최종 프롬프트 구성도 중요합니다.

8. 구현할 때 먼저 볼 코드 책임

Reranker는 검색을 대신하는 모델이 아니라, 검색된 후보를 다시 정렬하는 두 번째 단계입니다.

비용이 크기 때문에 전체 콘텐츠가 아니라 top-k 후보에만 적용해야 합니다.

retrieved = hybridSearch(query, topK=50)
reranked = reranker.scorePairs(query, retrieved)
references = reranked.take(5)

주의
  - topK가 너무 작으면 좋은 후보가 빠짐
  - topK가 너무 크면 rerank 비용 증가
  - 최종 references 수는 context window에 맞춰 제한

이번 글에서 기억할 것

  • Reranker는 검색 결과를 다시 정렬하는 단계입니다.
  • Retriever는 빠르게 찾고, reranker는 더 정밀하게 판단합니다.
  • 검색 품질을 올리는 중간 단계로 유용합니다.

스스로 점검

  • Retriever와 Reranker의 역할 차이를 말할 수 있는가?
  • 왜 전체 문서가 아니라 후보만 rerank하는가?
  • 지식베이스형 서비스에서 reranker가 필요한 상황을 하나 들 수 있는가?