Reranker와 Retriever

🔥Reranker 업데이트🔥
- Cross Encoder Reranker
- Cohere Reranker
- Jina Reranker
- FlashRank Reranker

링크: https://wikidocs.net/253434

🌱 Reranker 란
Reranker 는 사용자의 질문(query)과 문서(context)간 유사도를 측정하는 역할을 합니다.
이건 마치 "retriever" 가 하는 역할과 비슷하다고 느끼실텐데요.

reranker는 retriever 와 다른 점은
1. 우선, retriever 는 문서 조각(chunk) 에 대한 "독립적인" 임베딩을 수행 후, 이후 사용자의 질문(query) 역시 "독립적인" 임베딩과 비교하여 유사도 기준을 비교하는 반면

2. reranker 는 질문(query) 과 문서(context) 를 "동시에" 입력으로 넣어 유사도를 계산한다는 점이 차이점 입니다.
여기서 reranker 는 질문-문서 쌍으로 입력으로 넣어 유사도를 계산하기 때문에 retriever 대비 더 높은 유사도 신뢰성을 가진다고 알려져 있는데요.

그럼 왜 retriever 방식을 사용하나? reranker 가 retriever 를 대체할 수 있는데? 라고 생각하실 수 있습니다.

그러나, 아쉽게도 reranker 는 retriever 대비 계산 속도가 느리고, 비용이 높습니다. 그것도 엄청 많이요(문서 양에 따라...)

그래서 대세로 자리잡은 것이 바로 "Two-stage retrieval pipeline" 입니다. 현대의 RAG 시스템에서의 정석이라고 볼 수 있죠.

<before>
[사용자의 질문(query) -> 검색(Retrieve) -> 문맥(context)]
<after>
[사용자의 질문(query) -> 검색(Retrieve) -> 리랭크(Reranker) -> 문맥(context)]

reranker 로 모든 문서를 다 유사도 계산을 하는데 너무 오래걸리고 비용도 비싸니 "retriever" 로 먼저 후보를 추리고 -> reranker 로 한 번더 정확한 유사도 계산을 하여 보다 정확한 질문-문서 간 유사도를 구해 최종 후보를 추려내는 것입니다!

개념을 대충 이해하셨다면, 이제 적용하러 가보시죠!
감사합니다.


#reranker #rag #retriever

점프 투 파이썬

위키독스

점프 투 파이썬

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 7월 31일 오후 3:03

댓글 0

    함께 읽은 게시물

    길은 잃은 이력서

    

    ... 더 보기

    6년간의 토이프로젝트 여정을 마무리하며 - 기술블로그 구독서비스 회고록

    ... 더 보기

    6년간의 토이프로젝트 여정을 마무리하며 - 기술블로그 구독서비스 회고록

    taetaetae.github.io

    6년간의 토이프로젝트 여정을 마무리하며 - 기술블로그 구독서비스 회고록

     • 

    댓글 1 • 저장 9 • 조회 2,124


    간만에 재밌게 읽은 기술 포스트

    ... 더 보기

    무진장 힘들었지만 무진장 성장한 개발 이야기

    Medium

    무진장 힘들었지만 무진장 성장한 개발 이야기