점프 투 파이썬
위키독스
🔥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
안
... 더 보기