• 正文
    • Embedding Model簡介
    • Rerank Model簡介
    • 常用模型介紹
    • 快速部署模型
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

RAG檢索全攻略:Embedding與Rerank模型的終極指南

03/19 09:45
3413
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

在構(gòu)建基于檢索增強生成(RAG)的系統(tǒng)時,Embedding Model和Rerank Model扮演著至關(guān)重要的角色。比如你正在搭建一個智能搜索引擎,Embedding Model就像是幫你快速找到相關(guān)書籍的“圖書管理員”,而Rerank Model則像是一位經(jīng)驗豐富的“資深書評人”,負(fù)責(zé)從一堆書里精準(zhǔn)挑選出最符合你需求的那幾本。兩者配合,就像一對完美搭檔,確保RAG系統(tǒng)既能找到大量信息,又能精準(zhǔn)提煉出最關(guān)鍵的內(nèi)容。

RAG這玩意兒聽起來高大上,其實就是個“外掛大腦”,能讓AI在回答問題時不光靠自己那點小聰明,還能從外部知識庫里撈點干貨出來。核心呢?就是Embedding(嵌入)和Rerank(重排序)。

下面我們逐步解析這兩類模型的作用、推薦模型及其部署方法。

Embedding Model簡介

Embedding Model的核心任務(wù)是將文本、圖像或其他數(shù)據(jù)類型轉(zhuǎn)化為密集向量(Dense Vector),這種向量形式便于快速檢索和相似度計算。RAG系統(tǒng)中,Embedding Model主要用于構(gòu)建知識庫并實現(xiàn)高效召回。

Embedding Model的原理(結(jié)合RAG)在RAG系統(tǒng)中,Embedding Model的工作原理可以歸納為以下步驟:

文本編碼:將文本片段轉(zhuǎn)換為向量(Embedding),該向量捕獲了文本的語義信息。

向量存儲:將這些Embedding向量存儲到如FAISS、Milvus、Qdrant等向量數(shù)據(jù)庫中。

查詢編碼:用戶輸入的查詢也會通過Embedding Model編碼成向量。

相似度檢索:利用向量相似度算法(如內(nèi)積、余弦相似度)在向量數(shù)據(jù)庫中檢索最接近的候選文檔。

RAG系統(tǒng)的整體效果很大程度上依賴Embedding Model的召回質(zhì)量,好的Embedding Model能夠在第一步就篩出高質(zhì)量候選文本,極大提升系統(tǒng)性能。

簡單理解Embedding:

這家伙就像是給文本辦了個“身份證”。我每次看到一段話,腦子里想的都是“怎么把它變成AI能懂的玩意兒?”Embedding就干了這事兒:把文字變成一串?dāng)?shù)字(向量),而且這串?dāng)?shù)字還能反映出文字的“靈魂”。比如,“貓”和“狗”在向量世界里靠得近,“汽車”就離得老遠(yuǎn)。簡單來說,它就是個翻譯官,把人類語言翻譯成AI的數(shù)學(xué)語言。

在RAG里,我用Embedding把用戶的問題和知識庫里的文檔都變成向量,然后一比對,找出最像的幾個。這種“速配”靠的是啥?余弦相似度啊,歐幾里得距離啊這些數(shù)學(xué)小把戲。效率高,覆蓋廣,這就是Embedding。

Rerank Model簡介

Rerank Model的核心任務(wù)是在Embedding Model召回的候選文檔中,進一步篩選和重新排序,以確保最相關(guān)的內(nèi)容排在前列。Rerank Model通常使用更復(fù)雜的深度學(xué)習(xí)模型來更精準(zhǔn)地捕獲文本間的語義關(guān)系。

簡單理解Rerank:

光靠Embedding粗篩還不夠,畢竟它有時候會給我撈一堆“歪瓜裂棗”。這時候,Rerank就上場了。這家伙是個挑剔的“二篩大師”,專門從Embedding挑出的Top-K候選里再精選出Top-N。

它不像Embedding那樣簡單粗暴地比向量,而是用更聰明的方式(比如交叉注意力機制)去算:“喂,這個文檔跟問題到底有多搭?”最后,它給我一個分?jǐn)?shù),我就按分?jǐn)?shù)高低重新排個序,挑出最靠譜的答案。

常用模型介紹

常用Embedding模型及使用場景分類:

常用Rerank模型及使用場景分類:

快速部署模型

本次我們使用Xinference來部署這些模型。先簡單介紹一下Xinference。它是Xorbits團隊搞的一個開源推理框架,號稱能讓你“一行代碼換模型”,支持各種語言模型(LLM)、語音識別模型和多模態(tài)模型。部署方式也很靈活,云端、本地、甚至筆記本都能跑。聽起來挺好,對吧?但咱們得看看它具體能不能搞定這些Embedding和Rerank模型。

Xinference github 地址:https://github.com/xorbitsai/inference

根據(jù)Xinference的GitHub頁面和文檔,它主打的是:開源語言模型:比如LLaMA、Mistral、Grok。

嵌入模型(Embedding Models):明確提到支持,像BAAI/bge-large-en、sentence-transformers/all-MiniLM-L6-v2這種。

Rerank模型:也支持,比如BAAI/bge-reranker-large。

所以,從官方宣稱來看,Embedding和Rerank模型都可以部署。尤其是BGE系列(包括bge-large-zh、bge-reranker-large),文檔里直接點名支持,說明這些熱門模型已經(jīng)適配好了。

本次我們使用Docker進行部署Xinference,執(zhí)行如下命令拉取鏡像:

docker pull xprobe/xinference

執(zhí)行如下命令運行Xinference:

docker?run --name xinference -d -p?9997:9997?-e XINFERENCE_HOME=/data -v </on/your/host>:/data --gpus?all?xprobe/xinference:latest xinference-local -H?0.0.0.0

詳細(xì)操作可參考官方文檔。Xinference 絕對能部署前面提到的絕大多數(shù)模型,尤其是BGE、SBERT、Cross-Encoder這種熱門模型,基本是“開箱即用”。BERT、Chinese-RoBERTa這種需要點手動配置,但也在能力范圍內(nèi)。

Embedding Model與Rerank Model在RAG系統(tǒng)中相輔相成,分別承擔(dān)著“海選”和“精挑細(xì)選”的重要職責(zé)。

選擇合適的Embedding Model可以提升系統(tǒng)的召回質(zhì)量,而搭配強大的Rerank Model則能進一步優(yōu)化結(jié)果的相關(guān)度和準(zhǔn)確性。

無論是構(gòu)建知識庫、智能問答系統(tǒng),還是搜索引擎,合理地組合這兩類模型,才能充分發(fā)揮RAG系統(tǒng)的強大潛力。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

致力于分享最前沿、最實用的人工智能(AI)技術(shù),包括深度學(xué)習(xí)(DL)、自然語言處理(NLP)、機器學(xué)習(xí)(ML)、計算機視覺(CV)等領(lǐng)域的最新發(fā)展及應(yīng)用。