반응형

Reranker란?

Reranker는 retriever가 찾아낸 문서들의 순위를 재조정하여 질문과 가장 유사도가 높은 문서를 추출하는 것이 목표

 

작동 원리

  1. 문서들을 준비한다.
  2. Retriever를 이용해 관련 문서 결과를 받는다.
  3. 검색된 문서를 Reranker를 통해서 다시 재순위를 매긴다.

출처:  https://x.com/ecardenas300/status/1732472798272974915

 

Retriever과 Reranker 동작방식

출처:  https://aws.amazon.com/ko/blogs/tech/korean-reranker-rag/

 

Retriever의 동작방식

Retriever는 질문과 문서에 대한 독립적인 임베딩을 활용하는 **Bi-encoder** 방식을 사용하고 있다.
Bi-encode 방식은 질문과 문서를 각각 임베딩한 후 유사도를 계산하여 문서와 가장 유사한 top k개의 문서를 선택한다.

정리하자면

  1. 질문과 문서를 각각 임베딩한다. (벡터로 인코딩)
  2. 벡터 간의 유사도를 계산하여 질문과 문서 사이의 관련성 측정
  3. 유사한 상위 k개의 문서 도출

 

Reranker 동작방식

Reranker는 질문과 문서를 하나의 input으로 활용하는 **Cross-encder**방식을 사용하고 있다. Reranker는 질문과 문서를 하나의 input으로 활용함으로써, 독립적인 임베딩 벡터 기반의 Bi-encoder 방식보다 **정확한 유사도 측정**이 가능하다는 장점을 가지고 있다.

 

Retriever과 Reranker를 모두 사용하는 이유

Reranker가 Retriever보다 더 정확한 유사도 측정이 가능하다면, Reranker 하나만 사용하면 안 되는 건가?

라고 생각했다면 지니어스

 

질문과 문서를 동시에 input으로 활용하는 Reranker의 특성상, 사용자가 질문을 하는 시점에서 모든 문서에 대한 질문과의 유사도를 측정한다. 가진 문서가 많다면 굉장히 오래 걸릴 수밖에 없는 구조이다.
(이와 관련해서 Sentence-BERT에서 4천만 개 문서에 대해 V100 GPU 기반으로 연관성 측정을 수행한 결과 약 50시간이 소요됐다고 한다.)

사용자가 질문했는데 50시간 뒤에 답을 주면..^^

 

그렇기 때문에 Retriver과 Reranker를 two-stage로 적용할 수 있다.
정확도는 낮지만 계산 비용이 낮고 빠르게 검색 가능한 Retrieval로 먼저 검색한 후 Reranker로 유사도를 다시 측정하게 된다. 이렇게 되면 문서의 검색 속도를 높이면서(Retriever) 질문과 관련성을 정확히 측정(Rerankr)하는 것이 가능해진다.

 

Retrieval vs Reranker

Retrieval

- 계산 비용이 상대적으로 낮음
- 빠르게 검색 가능
- 그러나, 정확도가 낮음

Reranker

- 계산 비용이 높음
- 질문과 문서를 동시에 input으로 사용하기 때문에 연산이 굉장히 오래 걸림
- 그러나 Retrieval기반으로 측정했을 때보다 정확도가 높음

 

전략적 방법

  1. Retriever를 통해서 문서 50개(최대한 많이) 검색한다.
  2. 최대한 많이 검색된 결과를 다시 Reranker를 통해서 재순위 측정
  3. 상위 k개의 문서를 추출

 


참고

 

CH11 리랭커(Reranker)

# Reranker Reranker(리랭커)는 현대적인 두 단계 검색 시스템(Two-Stage Retrieval System)에서 사용되는 핵심 컴포넌트입니다. 대규모 데이터셋…

wikidocs.net

 

한국어 Reranker를 활용한 검색 증강 생성(RAG) 성능 올리기 | Amazon Web Services

검색 증강 생성 (Retrieval-Augmented Generation, RAG)은 효율적인 데이터 검색과 대규모 언어 모델 (Large Language Model, LLM) 을 결합하여 정확하고 관련성 높은 응답을 생성하는 AI 기술로 부상했습니다. 특히

aws.amazon.com

 

반응형

+ Recent posts