再次提升RAG性能:兩種高效的Rerank模型實(shí)踐指南 原創(chuàng)
在高級(jí)RAG應(yīng)用中,檢索后處理環(huán)節(jié)至關(guān)重要。Rerank技術(shù)通過重新排序檢索出的文檔塊,確保與用戶問題更相關(guān)的信息排在前面,從而提高語言模型生成答案的質(zhì)量。在這個(gè)環(huán)節(jié)中,可以做一些諸如相似度過濾、關(guān)鍵詞過濾、chunk內(nèi)容替換等處理。其中,Rerank(重排序)是一種常見的,也是在RAG應(yīng)用優(yōu)化中很常見的一種技術(shù)處理環(huán)節(jié)。
本文介紹了兩種被廣泛認(rèn)可的Rerank模型:Cohere Rerank模型和bge-reranker-large模型,并提供了使用指南。
一、為什么還需要Rerank
- RAG應(yīng)用中有多種索引類型,很多索引技術(shù)并非基于語義與向量構(gòu)建,其檢索的結(jié)果希望借助獨(dú)立的Rerank實(shí)現(xiàn)語義重排
- 在一些復(fù)雜RAG范式中,很多時(shí)候會(huì)使用多路混合檢索來獲取更多相關(guān)知識(shí);這些來自不同源、不同檢索算法的chunks要借助Rerank做重排
- 即使是完全基于向量構(gòu)建的索引,由于不同的嵌入模型、相似算法、語言環(huán)境、領(lǐng)域知識(shí)特點(diǎn)等影響,其語義檢索的相關(guān)度排序也可能發(fā)生較大的偏差;此時(shí)借助獨(dú)立的Rerank模型做糾正也非常有意義
二、在線模型 - Cohere Rerank模型
Cohere Rerank是一個(gè)商業(yè)閉源的Rerank模型。它根據(jù)與指定查詢問題的語義相關(guān)性對(duì)多個(gè)文本輸入進(jìn)行排序,專門用于幫助關(guān)鍵詞或向量搜索返回的結(jié)果做重新排序與提升質(zhì)量。
為了使用Cohere Rerank,你首先需要在官方網(wǎng)站(https://cohere.com/)注冊(cè)后申請(qǐng)測試的API-key(測試使用免費(fèi)):
Cohere Rerank的使用非常簡單,通常在LangChain與LlamaIndex框架中集成使用。下面展示如何在LangChain框架中使用Cohere Rerank來優(yōu)化檢索結(jié)果。
輸出結(jié)果示例
在調(diào)用Cohere Rerank之后,內(nèi)容的相關(guān)性和其對(duì)應(yīng)的查詢更加匹配,排序也更加合理。這種更加合理的排名一方面有利于LLM生成更準(zhǔn)確的回復(fù);另一方面也可以幫助降低top_K數(shù)量,以節(jié)約上下文空間。
三、本地模型 - bge-reranker-large模型
bge-reranker-large是國內(nèi)智源開源的一個(gè)被廣泛使用的Rerank模型,在眾多的模型測試中有著非常優(yōu)秀的成績。
下面展示如何在LangChain框架中使用bge-reranker-large來優(yōu)化檢索結(jié)果。
輸出結(jié)果示例
注:示例僅供參考,具體運(yùn)行可能需要調(diào)整
了解更多:??https://github.com/FlagOpen/FlagEmbedding/blob/master/README_zh.md??
總結(jié):
Rerank雖然在RAG流程中看似不那么顯眼,但其實(shí)現(xiàn)簡單、資源要求低,且不依賴于特定的嵌入模型,能夠顯著提升最終生成的質(zhì)量。無論是選擇在線的Cohere Rerank模型,還是本地部署的bge-reranker-large模型,都能為您的RAG應(yīng)用帶來性能上的提升。
本文轉(zhuǎn)載自公眾號(hào)頂層架構(gòu)領(lǐng)域
原文鏈接:??https://mp.weixin.qq.com/s/y_iqvDdGNqQLZVo61hF1rQ??
