又來一個(gè)RAG:RankRAG,英偉達(dá)RAG新思路
1. 背景
檢索增強(qiáng)生成無疑是當(dāng)前最熱門的LLM研究領(lǐng)域了,但是傳統(tǒng)RAG存在一些局限性:
? 檢索器容量的限制。考慮到處理效率,現(xiàn)有的RAG一般采用稀疏檢索(比如BM25)或中等規(guī)模的嵌入模型(比如Bert)作為檢索器。
? 只選擇前K個(gè)文檔。盡管最新的大語(yǔ)言模型擴(kuò)大了上下文長(zhǎng)度的限制,能夠接受更多的上下文作為輸入,但是實(shí)際性能會(huì)隨著K的增加而迅速達(dá)到飽和。比如在長(zhǎng)問答任務(wù)中,最佳的分塊上下文數(shù)量大約是10。雖然更大的K可以提高召回率,但是同時(shí)也引入了更多無關(guān)的內(nèi)容,干擾大語(yǔ)言模型生成準(zhǔn)確回答。
因此,作者設(shè)計(jì)了一個(gè)新的RAG:RankRAG,利用單一大語(yǔ)言模型來實(shí)現(xiàn)高召回率的上下文提取和高質(zhì)量?jī)?nèi)容生成。通過對(duì)單一大語(yǔ)言模型進(jìn)行指令調(diào)優(yōu),使其可以同時(shí)進(jìn)行上下文排序和答案生成,進(jìn)一步提升LLM在RAG檢索和生成階段排除不相關(guān)上下文的能力。
2. RankRAG
RankRAG整體包括兩個(gè)階段:指令調(diào)優(yōu)階段、排名與生成綜合指令調(diào)優(yōu)階段。
圖片
2.1 第一階段:指令調(diào)優(yōu)(SFT)階段
指令調(diào)優(yōu)(或監(jiān)督式微調(diào))可以顯著提升大語(yǔ)言模型指令遵循的能力,從而提高下游任務(wù)的零樣本性能。所以,作者先對(duì)大語(yǔ)言模型進(jìn)行指令調(diào)優(yōu)。
總共準(zhǔn)備了128K SFT樣本,確保樣本中沒有數(shù)據(jù)泄露,沒有與評(píng)估任務(wù)重的數(shù)據(jù)重疊,并采用多輪對(duì)話格式。
第一階段的指令調(diào)優(yōu)數(shù)據(jù)集包括:公共對(duì)話數(shù)據(jù)集、長(zhǎng)篇問答數(shù)據(jù)集、Chain of Thought數(shù)據(jù)集以及合成數(shù)據(jù)集。
2.2 排名與生成的綜合指令調(diào)優(yōu)階段
第一階段的SFT目的是為大模型奠定指令遵循的基礎(chǔ)能力,但是在RAG任務(wù)上,這些模型仍然還有提升空間。為了提升這些模型在RAG任務(wù)上的性能,作者進(jìn)行了第二階段的指令調(diào)優(yōu)。第二階段的指令調(diào)優(yōu)包括五個(gè)部分:
2.2.1 第一階段的SFT數(shù)據(jù)
這部分?jǐn)?shù)據(jù)的納入是為了保持LLM遵循指令的能力。
2.2.2 富含上下文的QA數(shù)據(jù)
在數(shù)據(jù)集中加入多個(gè)富含上下文的QA任務(wù)數(shù)據(jù)來加強(qiáng)LLM利用上下文回答問題的能力。采用混合訓(xùn)練數(shù)據(jù)集:
- ? 標(biāo)準(zhǔn)的QA和閱讀理解數(shù)據(jù)集
- ? 對(duì)話QA數(shù)據(jù)集
2.2.3 檢索增強(qiáng)問答數(shù)據(jù)
引入兩個(gè)新數(shù)據(jù)集,不僅包含標(biāo)準(zhǔn)答案的上下文,還包括通過BM25算法檢索出的最相關(guān)上下文。
增強(qiáng)LLM在生成回答時(shí),對(duì)無關(guān)上下文的抗干擾能力也非常重要,所以作者特別考慮了SQuAD和WebQuestion兩個(gè)問答任務(wù)數(shù)據(jù)集。對(duì)于每個(gè)問題,作者將標(biāo)準(zhǔn)答案的上下文和BM25檢索出的上下文進(jìn)行融合,確保每個(gè)問題都能至少關(guān)聯(lián)5個(gè)上下文。其中部分檢索出的上下文可能是不包含答案的,這些被稱為負(fù)樣本。
2.2.4 上下文排名數(shù)據(jù)
為了使模型具有LLM排名能力,作者采用了大家普遍認(rèn)可的MS MARCO段落排名數(shù)據(jù)集。將標(biāo)準(zhǔn)查詢-段落對(duì)(q,d+)定義為正樣本,而通過BM25算法挖掘出的硬負(fù)樣本段落(q,d-)定義為負(fù)樣本。LLM需要根據(jù)給定的查詢-段落對(duì)生成“真”或“假”的回答,任務(wù)指令是“針對(duì)問題{question},請(qǐng)判斷該段落是否與問題相關(guān)。”
雖然MS MARCO覆蓋了眾多主題,但問題均為單輪簡(jiǎn)短句子。然而,針對(duì)對(duì)話問答的排名數(shù)據(jù)極為稀缺。
為解決這一局限,將對(duì)話問答對(duì)重新設(shè)計(jì),以生成偽相關(guān)對(duì)。鑒于每段對(duì)話僅關(guān)聯(lián)一個(gè)文檔,將每個(gè)文檔切割成150字的段落(d1,d2,...,dn)。計(jì)算每個(gè)段落di與標(biāo)準(zhǔn)答案間的4-gram召回率,將召回率超過0.5的段落判定為與對(duì)話相關(guān),低于0.1的則判定為不相關(guān)。每個(gè)樣本包含一對(duì)問題-上下文,用于排名數(shù)據(jù)集。
合成后的數(shù)據(jù)加上開始的MS MARCO數(shù)據(jù),一共約50K數(shù)據(jù)用于本階段的指令微調(diào)。
2.2.5 檢索增強(qiáng)型排名數(shù)據(jù)
為了使模型能夠針對(duì)一個(gè)問題評(píng)估多個(gè)上下文的相關(guān)性,采用了SQuAD和WebQuestions兩個(gè)問答數(shù)據(jù)集,通過BM25算法,將標(biāo)準(zhǔn)答案上下文與檢索出的最相關(guān)上下文相結(jié)合,確保每個(gè)問題關(guān)聯(lián)五個(gè)上下文。凡包含答案的上下文均被視為相關(guān),訓(xùn)練LLM識(shí)別與問題相關(guān)的所有上下文。
2.3 RankRAG 推理流程:檢索-重排-生成三部曲
融入額外的重排環(huán)節(jié),RankRAG 的推理流程轉(zhuǎn)變?yōu)槿阶卟呗裕簷z索-重排-生成,具體步驟如下:
(1) 檢索器 ? 率先在文本庫(kù)中篩選出 top-k 個(gè)相關(guān)上下文。
圖片
(2) RankRAG 模型進(jìn)而基于上表中的提示,評(píng)估問題與這些檢索到的上下文之間的相關(guān)性得分,以此作為生成正確答案的概率,隨后對(duì)上下文進(jìn)行重排,精挑細(xì)選出 top-k(k'遠(yuǎn)小于k)個(gè)最為貼切的上下文,作為下一步生成答案的依據(jù)。
(3) 精選出的 top-k' 個(gè)上下文與問題串聯(lián),再次輸入 RankRAG 模型,以此生成最終的答復(fù)。
3. 效果對(duì)比
3.1 主要結(jié)果
圖片
圖片
圖片
上圖展示了RankRAG與基線在九個(gè)數(shù)據(jù)集上的比較結(jié)果。所有結(jié)果均在零樣本評(píng)估條件下得出(除非特別標(biāo)注),未附加額外示例。
RankRAG在性能上超越了現(xiàn)有的RAG方法: 以8B模型規(guī)模來看,RankRAG持續(xù)領(lǐng)先于ChatQA-1.5 8B,后者是最近開源且在眾多RAG基準(zhǔn)測(cè)試中表現(xiàn)卓越的模型。即使面對(duì)參數(shù)量多得多的基線模型,RankRAG 8B依然展現(xiàn)出強(qiáng)勁的競(jìng)爭(zhēng)力。舉例來說,它顯著超越了參數(shù)量為其五倍的InstructRetro、參數(shù)量為其八倍的RA-DIT 65B,甚至在NQ和TriviaQA任務(wù)上超越了參數(shù)量為其八倍的Llama3-instruct 70B。參數(shù)量更多的RankRAG 70B不僅戰(zhàn)勝了強(qiáng)勁的ChatQA-1.5 70B模型,還大幅超越了以InstructGPT為基礎(chǔ)LLM的先前RAG基線。
RankRAG在更具挑戰(zhàn)性的數(shù)據(jù)集上取得了更顯著的進(jìn)步: RankRAG在處理更具挑戰(zhàn)性的QA數(shù)據(jù)集時(shí),性能提升更為顯著。比如,在長(zhǎng)尾QA(PopQA)和多跳QA(2WikimQA)任務(wù)中,相較于ChatQA-1.5,實(shí)現(xiàn)了超過10%的性能提升。這些結(jié)果表明,在挑戰(zhàn)性的開放問答數(shù)據(jù)集中,當(dāng)檢索器返回的頂部文檔與答案的相關(guān)性不高時(shí),上下文排名能顯著增強(qiáng)性能。今天這篇論文專注于提升QA任務(wù)的單次檢索效果。如何有效地將多輪RAG流程與RankRAG結(jié)合,是未來研究值得探索的有趣方向。
5.3 組件效果分析
圖片
通過在九個(gè)廣泛領(lǐng)域的數(shù)據(jù)集上以Llama3 8B作為基礎(chǔ)模型,展示了對(duì)RankRAG進(jìn)行的組件切除實(shí)驗(yàn)??傮w來看,發(fā)現(xiàn)所提出的各個(gè)組件均對(duì)提升最終性能起到了積極作用。
若去除上下文排名功能,將在所有任務(wù)中造成性能下降,這證實(shí)了其在篩選與目標(biāo)問題最密切相關(guān)上下文中的關(guān)鍵作用。
同時(shí),為指令微調(diào)特別設(shè)計(jì)的檢索增強(qiáng)問答(RQA)和檢索增強(qiáng)排名(RAR)通過輔助模型明確識(shí)別相關(guān)上下文,在大多數(shù)任務(wù)中帶來了性能提升。
圖片
性能隨不同檢索器的變化。如上圖,對(duì)比了RankRAG和ChatQA-1.5在三個(gè)典型任務(wù)中搭配不同密集檢索器的表現(xiàn),特別考慮了DPR與Contriever-MS MARCO這兩種檢索器變體??梢钥吹剑幢愠醮螜z索結(jié)果不盡人意,RankRAG在平均性能上依然超越了ChatQA-1.5,幅度超過10%。綜上,RankRAG對(duì)于檢索器的選擇展現(xiàn)出了良好的適應(yīng)性和魯棒性。
5.4 領(lǐng)域特定RAG基準(zhǔn)測(cè)試的實(shí)驗(yàn)驗(yàn)證
為驗(yàn)證RankRAG對(duì)專業(yè)領(lǐng)域的適應(yīng)能力,在生物醫(yī)學(xué)領(lǐng)域的最新RAG基準(zhǔn)測(cè)試Mirage上進(jìn)行了實(shí)驗(yàn)。采用MedCPT(Jin等人,2023年)作為檢索器?,并以MedCorp2作為語(yǔ)料庫(kù)??。
圖片
上圖展示了RankRAG與基線的實(shí)驗(yàn)結(jié)果,即便未針對(duì)生物醫(yī)學(xué)領(lǐng)域進(jìn)行微調(diào),RankRAG在醫(yī)學(xué)問答任務(wù)上依然表現(xiàn)卓越。特別是RankRAG 8B在性能上超越了醫(yī)療領(lǐng)域領(lǐng)先的開源LLM Meditron 70B達(dá)6.3%。
此外,RankRAG 70B的性能更是達(dá)到了GPT-4的98%以上。充分證明了RankRAG具備快速適應(yīng)新領(lǐng)域并無需額外訓(xùn)練的能力。
5.5 細(xì)究排名模塊
RankRAG在數(shù)據(jù)使用上極為高效:
傳統(tǒng)RAG流程的上下文排名方法通常需要一個(gè)獨(dú)立的重排模型。作者評(píng)估了四款在完整MS MARCO段落排名數(shù)據(jù)集上經(jīng)過微調(diào)的模型(BERT(Glass等人,2022年)/T5(Nogueira等人,2020年)/Llama3(Ma等人,2023年)),一個(gè)強(qiáng)大的現(xiàn)成重排模型BGE-ranker,以及兩款OpenAI的GPT系列模型。對(duì)于GPT系列,用‘True’標(biāo)記的概率來代理相關(guān)性得分。
圖片
如上表,RankRAG在多數(shù)情況下,即使在排名數(shù)據(jù)量?jī)H為十分之一,也能實(shí)現(xiàn)比專用排名模型更好的召回率。此外,RankRAG在大多數(shù)任務(wù)上仍能超越經(jīng)過超過100萬(wàn)個(gè)排名對(duì)訓(xùn)練的BGE-ranker。這一優(yōu)勢(shì)可能源于我們模型訓(xùn)練的適應(yīng)性,排名數(shù)據(jù)與一般RAG微調(diào)數(shù)據(jù)高度相似。直接使用ChatQA-1.5進(jìn)行段落排名會(huì)降低性能,這表明在指令微調(diào)中納入排名數(shù)據(jù)的必要性。
作者驗(yàn)證了上下文排名數(shù)據(jù)量與最終性能之間的關(guān)聯(lián)。僅用5k排名數(shù)據(jù)(約MS MARCO數(shù)據(jù)集的1%),RankRAG便能取得非常出色的成果,而將排名數(shù)據(jù)量增加至50k,能帶來額外的顯著增益。這驗(yàn)證了RankRAG的數(shù)據(jù)高效性——僅需少量排名數(shù)據(jù)即可達(dá)到高效性能,并在多樣的任務(wù)中維持其適應(yīng)性。
RankRAG的性能與時(shí)間效率權(quán)衡:
擴(kuò)大模型規(guī)模時(shí)需注意的一個(gè)細(xì)節(jié)是,延遲開銷的增加——模型需要對(duì)每個(gè)樣本進(jìn)行排名,這會(huì)耗費(fèi)更多時(shí)間。
圖片
為了探究時(shí)間效率與性能之間的聯(lián)系,調(diào)整了重排名過程中使用的樣本數(shù)k,上圖展示了k值與最終準(zhǔn)確性之間的關(guān)系。結(jié)果表明,即便k值設(shè)為20,RankRAG的性能依然超過了未進(jìn)行重排名的基線模型。當(dāng)k值從20增加至100,三個(gè)任務(wù)的完全匹配準(zhǔn)確率提升了5.9%至9.1%,而所需時(shí)間僅增加了0.9至6.0倍,遠(yuǎn)低于人們可能預(yù)期的20至100倍的增長(zhǎng)。
本文轉(zhuǎn)載自 ??大語(yǔ)言模型論文跟蹤??,作者:HuggingAGI
