自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

模塊化RAG:RAG新范式,像樂高一樣搭建 精華

發(fā)布于 2024-8-6 11:12
瀏覽
0收藏

1. RAG系統(tǒng)的發(fā)展歷史與問題

RAG(檢索增強生成)通過訪問外部知識庫,檢索增強生成(RAG)為 LLMs 提供了關(guān)鍵的上下文信息,極大地提升了其在知識密集型任務(wù)上的表現(xiàn)。RAG 作為一種增強手段,已在眾多實際應(yīng)用場景中廣泛運用,涵蓋知識問答、推薦系統(tǒng)、客戶服務(wù)以及個人助手等領(lǐng)域。

RAG 技術(shù)的發(fā)展可歸結(jié)為三個階段:

? 起初,檢索增強技術(shù)被引入,提升預(yù)訓(xùn)練語言模型在知識密集型任務(wù)上的表現(xiàn)。比如:

Retro 通過檢索增強優(yōu)化了預(yù)訓(xùn)練的自回歸模型。

Atlas 則運用了檢索增強的少樣本微調(diào)手段,使語言模型能適應(yīng)各類任務(wù)。

IRcot 通過融合思維鏈和多步檢索流程,進一步豐富了推理階段的推理過程。

? 第二階段,隨著大型語言模型(LLM)的語言處理能力大幅提升,檢索增強技術(shù)開始充當補充額外知識和提供參考的途徑,以減少幻覺。例如:

? RRR 改進了重寫階段

? LLMlingua 去除了檢索所得文檔塊中的冗余標記。

? 隨著 RAG 技術(shù)的持續(xù)進步,研究愈發(fā)精細且集中,實現(xiàn)了與圖神經(jīng)網(wǎng)絡(luò)和微調(diào)技術(shù)等其他技術(shù)的創(chuàng)新融合。整體流程也更趨靈活,比如利用大型語言模型主動確定檢索和生成的時機 。

幾乎每一篇討論RAG的論文都會討論RAG存在的問題。

RAG 發(fā)展初期,其核心框架由索引、檢索和生成構(gòu)成,這種范式被稱作樸素 RAG。隨著任務(wù)復(fù)雜程度和應(yīng)用需求的提升,樸素 RAG 的局限性愈發(fā)凸顯。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

如上圖所示,樸素RAG主要依賴于塊的簡單相似性,在應(yīng)對復(fù)雜查詢和具有顯著變異性的塊時,表現(xiàn)欠佳。

樸素 RAG 存在的問題主要包括:

1)對查詢的理解不夠深入。查詢和文檔塊之間的語義相似度并非總是高度一致。僅依靠相似度計算進行檢索,缺乏對查詢與文檔間關(guān)系的深度探究。

2)檢索存在冗余和噪聲。將所有檢索到的塊直接輸入到 LLMs 并非總是有益。研究表明,過多的冗余和噪聲信息可能會干擾 LLM 對關(guān)鍵信息的識別,從而增加生成錯誤和幻覺響應(yīng)的風(fēng)險。

為了克服以上局限,大家提出了高級RAG,高級RAG注重優(yōu)化檢索階段,旨在提升檢索效率,并強化對檢索塊的利用,典型策略涵蓋預(yù)檢索處理和后檢索處理。例如,采用查詢重寫使查詢更清晰、具體,進而提高檢索的精準度,對檢索結(jié)果進行重新排序以增強 LLM 識別和利用關(guān)鍵信息的能力。

盡管高級RAG有所改進,但是仍然與實際應(yīng)用與需求之間存在差距:隨著 RAG 技術(shù)的發(fā)展,用戶期望提高,需求持續(xù)演變,應(yīng)用設(shè)置也變得更為復(fù)雜。例如,異構(gòu)數(shù)據(jù)的整合以及對系統(tǒng)透明度、控制和可維護性的新需求。

為達成更精準和高效的任務(wù)執(zhí)行,現(xiàn)代 RAG 系統(tǒng)正逐步融合更復(fù)雜的功能,比如以知識圖譜的形式構(gòu)建更精細的索引庫,通過查詢構(gòu)建方法整合結(jié)構(gòu)化數(shù)據(jù),以及運用微調(diào)技術(shù)讓編碼器更好地適應(yīng)特定領(lǐng)域的文檔。

在流程設(shè)計方面,當前的 RAG 系統(tǒng)已超越傳統(tǒng)的線性檢索生成范式。研究人員采用迭代檢索獲取更豐富的上下文,利用遞歸檢索處理復(fù)雜查詢,以及借助自適應(yīng)檢索提供整體的自主性和靈活性。這種流程上的靈活性顯著增強了 RAG 系統(tǒng)的表達力和適應(yīng)性,使其能更好地適應(yīng)各類應(yīng)用場景。然而這使得RAG系統(tǒng)的架構(gòu)越來越復(fù)雜,越來越多的新問題不斷出現(xiàn):

?復(fù)雜數(shù)據(jù)源集成:RAG 不再局限于單一的非結(jié)構(gòu)化文本數(shù)據(jù)源類型,而是拓展至涵蓋諸如表格之類的半結(jié)構(gòu)化數(shù)據(jù)以及像知識圖譜這樣的結(jié)構(gòu)化數(shù)據(jù)。獲取來自多個來源的異構(gòu)數(shù)據(jù),能夠為系統(tǒng)賦予更豐富的知識背景以及更可靠的知識驗證能力。

可解釋性、可控性和可維護性方面的新需求:隨著系統(tǒng)復(fù)雜度的提升,系統(tǒng)維護和調(diào)試變得更具挑戰(zhàn)。此外,當問題出現(xiàn)時,必須迅速鎖定需要優(yōu)化的特定組件。

組件的選擇與優(yōu)化:更多的神經(jīng)網(wǎng)絡(luò)融入 RAG 系統(tǒng),需要挑選適宜的組件以滿足特定任務(wù)和資源配置的需求。而且,新的組件雖提升了 RAG 的效能,但也帶來了新的協(xié)作工作要求。確保這些模型按預(yù)期運行并高效協(xié)同,以提升整體系統(tǒng)性能,這一點至關(guān)重要。

工作流的編排與調(diào)度:組件可能需要依照特定順序執(zhí)行,在某些條件下并行處理,甚至由 LLM 根據(jù)不同的輸出進行判定。對工作流進行合理規(guī)劃,對于提高系統(tǒng)效率和達成預(yù)期成果至關(guān)重要。

為了應(yīng)對以上這些問題,今天這篇論文作者提出了模塊化 RAG 架構(gòu)。

2. 什么是模塊化RAG架構(gòu)?

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

在現(xiàn)代計算系統(tǒng)中,模塊化正成為一種趨勢。能夠增強系統(tǒng)的可擴展性和可維護性,并通過流程控制實現(xiàn)高效的任務(wù)執(zhí)行。模塊化 RAG 架構(gòu)分為三個層級:

? 頂層聚焦于 RAG 的關(guān)鍵階段,其中每個階段都視作一個獨立的模塊。該層級不僅繼承了高級 RAG 范式的主要流程,還引入了一個編排模塊來調(diào)控 RAG 流程的協(xié)同。

? 中間層由每個模塊內(nèi)的子模塊組成,進一步細化和優(yōu)化功能。

? 底層由基本操作單元——操作符構(gòu)成。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

在模塊化 RAG 框架內(nèi),RAG 系統(tǒng)能夠以計算圖的形式呈現(xiàn),其中節(jié)點代表特定的操作符。模塊化 RAG 是在 RAG 先前發(fā)展的基礎(chǔ)上演化而來的。這三個范式(樸素RAG、高級RAG和模塊化RAG)之間的關(guān)系是繼承與發(fā)展的關(guān)系。高級 RAG 是模塊化 RAG 的一種特殊情形,而樸素 RAG 是高級 RAG 的一種特殊情形。

3. 六大模塊

模塊化RAG包括六個主要模塊:索引、預(yù)檢索、檢索、后檢索、生成和編排。

3.1 索引(Indexing)

索引指的是把文檔分割為可管理的塊的過程,是組織系統(tǒng)的關(guān)鍵步驟。

索引面臨著三個主要難題。

?1. 內(nèi)容表述不完整。

塊的語義信息受分割方式影響,致使在較長的語境中重要信息的丟失或被掩蓋。

?2. 塊相似性搜索不準確。

隨著數(shù)據(jù)量增多,檢索中的噪聲增大,導(dǎo)致頻繁與錯誤數(shù)據(jù)匹配,使得檢索系統(tǒng)脆弱且不可靠。

?3. 參考軌跡不明晰。

檢索到的塊可能來自任何文檔,沒有引用痕跡,可能出現(xiàn)來自多個不同文檔的塊,盡管語義相似,但包含的卻是完全不同主題的內(nèi)容。

3.1.1 塊優(yōu)化

塊的大小以及塊之間的重疊,在 RAG 系統(tǒng)的整體有效性中起著關(guān)鍵作用:

? 較大的塊能捕捉更多的上下文,但也會產(chǎn)生更多噪聲,需要更長的處理時間和更高的成本。

? 而較小的塊可能無法完整傳達必要的上下文,不過噪聲較小。

滑動窗口:在滑動窗口中使用重疊塊能增強語義轉(zhuǎn)換。這種方法也存在一些局限性,如上下文大小控制不精準、單詞或句子可能被截斷以及缺乏語義考量等。

增加元數(shù)據(jù):塊可以用元數(shù)據(jù)(比如頁碼、文件名、作者、時間戳、摘要或相關(guān)問題)進行豐富。這些元數(shù)據(jù)允許進行篩選檢索,縮小搜索范圍。

從小到大:將用于檢索的塊和用于合成的塊區(qū)分開。較小的塊能提高檢索的準確性,較大的塊能提供更多的上下文。一種方法是檢索較小的總結(jié)塊,并參考其較大的父塊?;蛘?,可以檢索單個句子及其周邊的文本。

3.1.2 結(jié)構(gòu)組織

增強信息檢索的一種有效方式是為文檔構(gòu)建層次結(jié)構(gòu)。通過構(gòu)建塊結(jié)構(gòu),RAG 系統(tǒng)能夠加快相關(guān)數(shù)據(jù)的檢索和處理。

分層索引:在文檔的分層結(jié)構(gòu)中,節(jié)點按父子關(guān)系排列,并與塊相連接。每個節(jié)點都存儲著數(shù)據(jù)摘要,有助于快速遍歷數(shù)據(jù),并協(xié)助 RAG 系統(tǒng)確定要提取哪些塊。這種方法還能減輕因塊提取問題產(chǎn)生的錯覺。構(gòu)建結(jié)構(gòu)化索引的方法主要包括:

?1. 基于文檔中的段落和句子分割的結(jié)構(gòu)。

?2. 基于 PDF、HTML 和 Latex 中固有結(jié)構(gòu)。

?3. 基于文本語義識別和分割的語義。

KG 索引:使用知識圖(KGs)來構(gòu)建文檔有助于通過厘清概念和實體之間的聯(lián)系來保持一致性,降低不匹配錯誤的風(fēng)險。還能將信息檢索轉(zhuǎn)化為語言模型可理解的指令,提高檢索的準確性并實現(xiàn)上下文連貫的響應(yīng)。這提升了 RAG 系統(tǒng)的整體效率。

3.2 預(yù)檢索(Pre-retrieval)

樸素 RAG 的一大主要挑戰(zhàn)在于它直接將用戶的原始查詢當作檢索的基礎(chǔ)。制定精確清晰的問題頗具難度,欠妥的查詢會致使檢索效果欠佳。此模塊的主要挑戰(zhàn)包含:

? 1)查詢措辭不當。問題本身復(fù)雜,語言組織欠佳。

? 2)語言的復(fù)雜性與歧義性。語言模型在應(yīng)對專業(yè)詞匯或含義多樣的模糊縮寫時常常遭遇困境。比如,它們或許無法判別 LLM 指的是大型語言模型還是法律語境中的法學(xué)碩士。

3.2.1 查詢擴展

將單個查詢拓展為多個查詢,豐富了查詢內(nèi)容,為彌補特定細微差異的缺失提供了更多上下文,從而確保生成答案的最佳相關(guān)性。

多查詢:借助提示工程通過大型語言模型來擴展查詢,而且并行執(zhí)行。這些擴展經(jīng)過精心設(shè)計以保障多樣性和覆蓋度。不過,這種方式可能會淡化用戶的原始意圖。為減輕這一情況,可指示模型給予原始查詢更大的權(quán)重。

子查詢:通過分解和規(guī)劃復(fù)雜問題,會生成多個子問題。具體而言,可以采用從少到多的提示來將復(fù)雜問題分解為一系列更簡單的子問題。依照原始問題的結(jié)構(gòu),生成的子問題能夠并行或順序執(zhí)行。另一種方法涉及使用驗證鏈(CoVe)。擴展后的查詢由大型語言模型進行驗證,以達成減少幻覺的效果。

3.2.2 查詢轉(zhuǎn)換

依據(jù)轉(zhuǎn)換后的查詢而非用戶的原始查詢進行檢索和生成。

重寫(Rewrite):原始查詢在現(xiàn)實場景中的檢索常常存在不足。為解決此問題,可以提示大型語言模型進行重寫。也可運用專門的較小模型來達成此目的 。**淘寶中查詢重寫方法的實施顯著提升了長尾查詢的召回效果,促使 GMV 增長 **。

HyDE:為彌合問題與答案之間的語義差距,它在回應(yīng)查詢時構(gòu)建假設(shè)文檔(假設(shè)答案),而非直接搜索查詢。它側(cè)重于從答案到答案的嵌入相似性,而非尋求針對問題或查詢的嵌入相似性。此外,它還包含反向 HyDE,為每個塊生成假設(shè)查詢,并專注于從查詢到查詢的檢索。

回退提示(Step-back Prompting):原始查詢被抽象為一個高級概念問題(回退問題)。在 RAG 系統(tǒng)中,回退問題和原始查詢均用于檢索,且將它們的結(jié)果相結(jié)合來生成語言模型的答案。

3.2.3 查詢構(gòu)建

除文本數(shù)據(jù)外,諸如表格和圖形數(shù)據(jù)等越來越多的結(jié)構(gòu)化數(shù)據(jù)正被融入 RAG 系統(tǒng)。為適配各類數(shù)據(jù)類型,重構(gòu)用戶的查詢很有必要。這涉及將查詢轉(zhuǎn)化為其他查詢語言以訪問替代數(shù)據(jù)源,常見方法有 Text-to-SQL 或 Text-to-Cypher 等。結(jié)構(gòu)化查詢語言(如 SQL、Cypher)常與語義信息和元數(shù)據(jù)結(jié)合,用于構(gòu)建更復(fù)雜的查詢。

3.3 檢索(Retrieval)

檢索過程在 RAG 系統(tǒng)中舉足輕重,提升檢索效果需考慮的三個主要方面包括檢索效率、質(zhì)量以及任務(wù)、數(shù)據(jù)和模型的對齊。

3.3.1 檢索器選擇

隨著 RAG 技術(shù)的廣泛應(yīng)用,嵌入模型的發(fā)展勢頭正盛。除基于統(tǒng)計的傳統(tǒng)模型和基于編碼器結(jié)構(gòu)的預(yù)訓(xùn)練模型外,在大型語言模型上微調(diào)的嵌入模型也展現(xiàn)出強大的能力。然而,它們往往參數(shù)更多,導(dǎo)致推理和檢索效率欠佳。故而,依據(jù)不同任務(wù)場景選擇合適的檢索器至關(guān)重要。

稀疏檢索器(Sparse Retriever):用統(tǒng)計方法將查詢和文檔轉(zhuǎn)化為稀疏向量。其優(yōu)勢在于處理大型數(shù)據(jù)集時效率高,只關(guān)注非零元素。但在捕捉復(fù)雜語義方面,可能不如密集向量有效。常見方法包括 TF-IDF 和 BM25。

密集檢索器(Dense Retriever):使用預(yù)訓(xùn)練的語言模型(PLMs)為查詢和文檔提供密集表示。盡管計算和存儲成本較高,卻能提供更復(fù)雜的語義表示。典型模型有 BERT 結(jié)構(gòu)的 PLMs,如 ColBERT,以及多任務(wù)微調(diào)模型,如 BGE 和 GTE 。

混合檢索器(Hybrid Retriever ):是同時使用稀疏和密集檢索器。兩種嵌入技術(shù)相互補充,以提高檢索效果。稀疏檢索器能提供初始篩選結(jié)果。此外,稀疏模型增強了密集模型處理含罕見實體查詢的零樣本檢索能力,從而增強系統(tǒng)的穩(wěn)健性。

3.3.2 檢索器微調(diào)

在上下文可能與預(yù)訓(xùn)練語料庫有差異的情況下,尤其是在醫(yī)療保健、法律等具有大量專有術(shù)語的高度專業(yè)化領(lǐng)域。雖然這種調(diào)整需要額外付出努力,但能大幅提高檢索效率和領(lǐng)域?qū)R度。

監(jiān)督微調(diào)(Supervised Fine-Tuning,SFT):基于有標記的領(lǐng)域數(shù)據(jù)微調(diào)檢索模型通常借助對比學(xué)習(xí)來實現(xiàn)。這涉及縮短正樣本間的距離,同時拉大負樣本間的距離。

LM 監(jiān)督檢索器(LM-supervised Retriever,LSR):與直接從數(shù)據(jù)集中構(gòu)建微調(diào)數(shù)據(jù)集不同,LSR 借助 LM 生成的結(jié)果作為監(jiān)督信號,在 RAG 流程中對嵌入模型進行微調(diào)。

適配器(Adapter):有時,對大型檢索器進行微調(diào)可能成本很高,尤其是在處理像 gte-Qwen 這類基于 LLMs 的檢索器時。在這種情況下,通過融入一個適配器模塊并進行微調(diào)可以緩解此情況。添加適配器的另一個好處是能夠更好地與特定的下游任務(wù)相適配 。

3.4 檢索后

將所有檢索到的塊直接輸入到 LLM 并非最佳選擇,對塊進行后處理有助于更好地利用上下文信息。主要的挑戰(zhàn)包括:

? 1)中間內(nèi)容丟失(Lost in the middle)。像人類一樣,LLM 往往只記得長文本的開頭或結(jié)尾,而遺忘中間部分 。

? 2)噪聲/反事實塊(Noise/anti-fact chunks)。檢索到的有噪聲或事實上相互矛盾的文檔可能會影響最終的檢索生成 。

? 3)上下文窗口(Context Window)。盡管檢索到了大量相關(guān)內(nèi)容,但大型模型中上下文信息長度的限制導(dǎo)致無法涵蓋所有這些內(nèi)容。

3.4.1 重新排序

在不改變其內(nèi)容或長度的情況下對檢索到的塊進行重新排序,以提升更關(guān)鍵文檔塊的可見性。

規(guī)則基重新排序:依照某些規(guī)則計算指標來對塊進行重新排序。常見的指標包括:多樣性、相關(guān)性和 MRR(Maximal Marginal Relevance,最大邊際相關(guān)性) 。其思路是減少冗余并增加結(jié)果的多樣性。MRR 基于查詢相關(guān)性和信息新穎性的組合標準為最終的關(guān)鍵短語列表選取短語。

模型基重新排序:利用語言模型對文檔塊重新排序,通常依據(jù)塊與查詢之間的相關(guān)性。重新排序模型已成為 RAG 系統(tǒng)的重要組成部分,相關(guān)模型技術(shù)也在不斷迭代升級。重新排序的范圍還擴展到了多模態(tài)數(shù)據(jù),比如表格和圖像 。

3.4.2 壓縮

在RAG流程中,人們普遍認為,盡可能多地檢索相關(guān)文檔,并將它們串聯(lián)起來形成冗長的檢索提示,是有益的。但這種認知其實是個誤區(qū)。過多的上下文信息可能會帶來噪聲,影響大型語言模型(LLM)捕捉關(guān)鍵信息的能力。為了解決這個問題,通常采用壓縮和篩選檢索內(nèi)容的方法。

LLMLingua:利用經(jīng)過對齊和訓(xùn)練的小語言模型,比如GPT-2 Small或LLaMA-7B,可以從提示中識別并剔除不重要的標記,將其轉(zhuǎn)化為一種對人類來說晦澀難懂,但對LLMs卻易于理解的形式。這種方法提供了一種直接而實用的提示壓縮方式,無需對LLMs進行額外訓(xùn)練,同時保持了語言的完整性和壓縮比的平衡。

3.4.3 選擇

與壓縮文檔內(nèi)容不同,選擇是直接移除無關(guān)的文檔塊。

選擇性上下文:通過識別并剔除輸入上下文中的冗余內(nèi)容,可以精煉輸入,從而提升語言模型的推理效率。在實際操作中,選擇性上下文根據(jù)基礎(chǔ)語言模型計算的自信息來評估詞匯單元的信息量。通過保留自信息更高的內(nèi)容,這種方法提供了一種更簡潔、高效的文本表示方式,且不會影響其在多樣化應(yīng)用中的表現(xiàn)。然而,這種方法忽略了壓縮內(nèi)容與目標語言模型以及用于提示壓縮的小語言模型之間的相互依賴性。

LLM-Critique:另一種直接而有效的方法,是在生成最終答案前,讓LLM評估檢索到的內(nèi)容。這允許LLM通過LLM批評機制,過濾掉相關(guān)性不高的文檔。例如,在Chatlaw中,LLM被引導(dǎo)自我推薦相關(guān)法律條款,以評估其相關(guān)性。

3.5 生成(Generation)

利用LLM根據(jù)用戶的查詢和檢索到的上下文信息生成答案。選擇一個符合任務(wù)需求的合適模型,考慮微調(diào)需求、推理效率和隱私保護等因素。

3.5.1 生成器微調(diào)

除了直接使用LLM外,根據(jù)場景和數(shù)據(jù)特征進行有針對性的微調(diào),可以帶來更好的效果。這也是使用本地部署LLMs的一個顯著優(yōu)勢。

指令微調(diào)(Instruct-Tuning):當LLMs在特定領(lǐng)域缺少數(shù)據(jù)時,可以通過微調(diào)為其提供額外的知識。通用的微調(diào)數(shù)據(jù)集可以作為第一步。微調(diào)的另一個好處是能夠調(diào)整模型的輸入和輸出,例如,使LLM適應(yīng)特定的數(shù)據(jù)格式,并根據(jù)指令以特定風(fēng)格生成響應(yīng)。

強化學(xué)習(xí)(Reinforcement learning):通過強化學(xué)習(xí)來讓大型語言模型(LLM)的輸出與人類或檢索器的偏好相契合,是一種頗具潛力的方法。例如,對最終生成的答案進行手動標注,然后借助強化學(xué)習(xí)給予反饋。除了與人類的偏好達成一致,與微調(diào)模型和檢索器的偏好相符合也是可行的。

雙重微調(diào)(Dual Fine-tuing):同時對生成器和檢索器進行微調(diào),以實現(xiàn)它們偏好的一致。一種典型的方式,如 RA-DIT,利用 KL 散度來對齊檢索器和生成器之間的評分函數(shù)。

3.5.2 驗證(Verification)

盡管 RAG 提升了大型語言模型生成答案的可靠性,但在眾多場景中,它需要將幻覺出現(xiàn)的概率降至最低。因此,可以通過額外的驗證模塊來篩除不符合要求標準的響應(yīng)。常見的驗證方法包含基于知識庫的和基于模型的。

知識庫驗證:通過外部知識直接對大型語言模型生成的響應(yīng)進行驗證。通常,先從響應(yīng)中提取特定的陳述或三元組。而后,從經(jīng)過驗證的知識庫(如維基百科或特定的知識圖譜)中檢索相關(guān)證據(jù)。最后,將每個陳述與證據(jù)逐步比對,以判定該陳述是得到支持、被駁斥還是信息不足。

基于模型的驗證:運用小型語言模型來驗證大型語言模型生成的響應(yīng)。給定輸入問題、檢索到的知識和生成的答案,訓(xùn)練一個小型語言模型來判別生成的答案是否正確反映了檢索到的知識。此過程被設(shè)定為一道選擇題,驗證器需要判斷答案是否反映了正確答案。如果生成的答案未正確反映檢索到的知識,可迭代地重新生成答案,直至驗證器確認答案正確。

3.6 編排(Orchestration)

編排涉及管理 RAG 過程的控制模塊。與傳統(tǒng)固定流程的僵化方式不同,RAG 如今在關(guān)鍵節(jié)點納入決策,并依據(jù)先前的結(jié)果動態(tài)選擇后續(xù)步驟。這種自適應(yīng)和模塊化的能力是模塊化 RAG 的顯著特征,使其有別于更為簡單的樸素和高級 RAG 范式。

3.6.1 路由

面對不同的查詢,RAG 系統(tǒng)會路由到為不同場景定制的特定管道,這是為應(yīng)對各種情況而設(shè)計的多功能 RAG 架構(gòu)的基本特性。需要一個決策機制,依據(jù)來自模型的輸入或補充的元數(shù)據(jù),來確定將啟用哪些模塊。針對不同的提示或組件采用不同的路由。

3.6.2 調(diào)度

RAG 系統(tǒng)在復(fù)雜性和適應(yīng)性方面不斷演進,能夠借助復(fù)雜的調(diào)度模塊來管理流程。調(diào)度模塊在模塊化 RAG 中發(fā)揮著關(guān)鍵作用,能識別需要外部數(shù)據(jù)檢索的關(guān)鍵節(jié)點,評估響應(yīng)的充分性,并決定是否需要進一步的調(diào)查。它通常用于涉及遞歸、迭代和自適應(yīng)檢索的場景,確保系統(tǒng)能就何時停止生成或啟動新的檢索循環(huán)做出明智決策。

規(guī)則判斷(Metadata routing):后續(xù)步驟由一組既定規(guī)則支配。通常,系統(tǒng)通過評分機制評估生成答案的質(zhì)量。繼續(xù)或停止該過程的決策取決于這些分數(shù)是否超過某些預(yù)定閾值,這些閾值通常與單個token的置信水平有關(guān),接受 的條件是其中的所有令牌必須具有大于或等于閾值的相關(guān)概率。若不滿足此條件,系統(tǒng)會重新生成新答案。

LLM 判斷(Semantic routing)。LLM 獨立決定后續(xù)的行動。有兩種主要方式來實現(xiàn)這種能力:

? 第一種方式利用 LLM 的上下文學(xué)習(xí)能力,并通過提示工程進行判斷。這種方式的一個顯著優(yōu)點是無需對模型進行微調(diào)。然而,判斷輸出的格式取決于 LLM 對所提供指令的遵循情況。

? 第二種方式涉及 LLM 生成特定token,通過微調(diào)來啟動有針對性的行動。這種技術(shù)源自 Toolformer ,已被集成到像 Self-RAG 這樣的框架中。這使得對 LLM 的行動有了更直接的控制機制,增強了系統(tǒng)對對話上下文中特定觸發(fā)因素的響應(yīng)能力。不過,它需要生成大量符合要求的指令集來微調(diào) LLM。

知識驅(qū)動的調(diào)度策略(Knowledge-guide schedulin):突破了基于規(guī)則的方法的局限,也不再完全依賴大型語言模型(LLM)來控制流程,而是采用了一種更為靈活的中間策略——知識引導(dǎo)的調(diào)度。通過知識圖譜的強大功能,引導(dǎo)檢索和生成過程。從知識圖譜中提取與問題相關(guān)的信息,構(gòu)建一個由邏輯上相互關(guān)聯(lián)的節(jié)點組成的推理鏈,每個節(jié)點都承載著解決問題的關(guān)鍵信息?;谶@一推理鏈的節(jié)點信息,可以分別進行信息檢索和內(nèi)容生成。整合這種方法,不僅提升了問題解決的效率和精確度,也使得提供的解釋更加清晰明了。

3.6.3 融合

隨著RAG進程的發(fā)展,已經(jīng)超越了單一的線性流程,經(jīng)常需要擴大檢索范圍或通過探索多條流水線來增加多樣性。在擴展到各個分支之后,融合模塊有效地整合了信息,確保了全面且連貫的響應(yīng)。融合模塊的作用不僅僅是合并答案,還要確保最終輸出內(nèi)容豐富,并且能夠反映出問題的多維度特性。

LLM融合(LLM fusion):將多分支的信息聚合起來最直接的方法之一是利用LLMs的強大功能來分析和整合不同分支的信息。然而,這種方法在處理超出LLM上下文窗口限制的長答案時也面臨挑戰(zhàn)。為了解決這個問題,通常的做法是先對每個分支的答案進行總結(jié),提取關(guān)鍵信息,然后再將其輸入到LLM中,以確保即使在長度受限的情況下也能保留最重要的內(nèi)容。

加權(quán)集成(Weighted ensemble ):從多個分支生成的不同標記的加權(quán)值,以實現(xiàn)對最終輸出的全面選擇。權(quán)重是根據(jù)文檔與輸入查詢之間的相似性得分來確定的。權(quán)重通過使用softmax函數(shù)來計算,確保了權(quán)重的歸一化,并且總和為一。

互反排名融合(RRF ,Reciprocal Rank Fusion):將多個檢索結(jié)果的排名合并成一個統(tǒng)一的列表。它采用定制的加權(quán)平均方法來提高整體的預(yù)測性能和排名精度。優(yōu)勢在于其動態(tài)權(quán)重分配,這種分配是由分支之間的相互作用所決定的。在模型或來源的異質(zhì)性特別顯著的場景中,RRF尤其有效,它可以顯著提高預(yù)測的準確性。

4. RAG 流與流模式

模塊化的 RAG 流能夠分解為子函數(shù)的圖。通過控制邏輯,運算符能夠在預(yù)設(shè)的管道中執(zhí)行,同時在必要時進行條件、分支或循環(huán)操作。在最簡單的情形下,該圖為一個線性鏈。

4.1 線性模式(Linear Pattern)

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

常見的線性 RAG 流在預(yù)檢索階段涉及查詢轉(zhuǎn)換模塊(例如重寫或 HyDE 運算符),并在檢索后階段運用重新排序。重寫 - 檢索 - 讀?。≧RR)是一種典型的線性結(jié)構(gòu)。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

如上圖所示,查詢重寫模塊 te 是在 T5-large 上微調(diào)的較小的可訓(xùn)練語言模型,在強化學(xué)習(xí)的背景下,重寫器的優(yōu)化被形式化為馬爾可夫決策過程,LLM 的最終輸出作為獎勵。檢索器采用稀疏編碼模型,BM25。

4.2 條件模式(Conditional Pattern)

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

具有條件結(jié)構(gòu)的 RAG 流涉及依據(jù)不同條件選取不同的 RAG 管道,如上圖所示。管道的選擇是通過路由模塊實現(xiàn)的,該模塊決定流中的下一個模塊。

例如,對于與嚴肅問題、政治事務(wù)或娛樂主題相關(guān)的問題,對大型語言模型生成的響應(yīng)的容忍度各不相同。這些路由流在檢索源、檢索過程、配置、模型和提示等方面常常存在差異。

4.3 分支(Branching)

在許多情況下,RAG 流系統(tǒng)可能存在多個并行運行的分支,通常是為了增加生成結(jié)果的多樣性。

預(yù)檢索分支化(多查詢并行檢索):

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

后檢索分支化(單查詢并行生成):

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

REPLUG 展現(xiàn)了一種典型的后檢索分支化架構(gòu),它預(yù)測了每個分支上每個標記的概率。通過加權(quán)可能性的集成,各分支結(jié)果被綜合起來,最終生成的輸出用于通過反饋機制對檢索器進行微調(diào),這個檢索器被稱為Contriever。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

4.4 循環(huán)模式(Loop Pattern)

具有循環(huán)結(jié)構(gòu)的 RAG 流,是模塊化 RAG 的一項重要特性,涵蓋相互依存的檢索與生成步驟,也包含用于流程控制的調(diào)度模塊。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

循環(huán)模式可進一步劃分為迭代、遞歸和自適應(yīng)(主動)檢索方式。

4.4.1 迭代檢索(Iterative retrieval)

單次的檢索和生成或許無法有效處理需要大量知識的復(fù)雜問題,所以RAG 中能采用迭代方法,包含固定數(shù)量的檢索迭代。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

迭代檢索的一個典型示例為 ITER-RETGEN (如上圖),它對檢索增強生成和生成增強檢索進行迭代。檢索增強生成基于所有檢索到的知識針對任務(wù)輸入給出響應(yīng)。在每次迭代中,ITER-RETGEN 借助前一次迭代的模型輸出作為特定情境來輔助檢索更多相關(guān)知識。循環(huán)的終止由預(yù)先設(shè)定的迭代次數(shù)決定。

4.4.2 遞歸檢索(Recursive retrieval)

與迭代檢索不同,遞歸檢索的顯著特點在于其對前一步驟的明確依賴以及檢索的不斷深入。通常,它遵循樹狀結(jié)構(gòu),并且具備清晰的終止機制作為遞歸檢索的退出條件。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

在 RAG 系統(tǒng)中,遞歸檢索通常涉及查詢變換,依靠每次檢索時新重寫的查詢。遞歸檢索的一個典型實現(xiàn)如 ToC,涉及遞歸執(zhí)行 RAC(遞歸增強澄清,Recursive Augmented Clarification),從初始的模糊問題(AQ,ambiguous question)逐步將子節(jié)點插入到澄清樹中。在每個擴展步驟,依據(jù)當前查詢對段落進行重新排序以生成明確的問題(DQ,disambiguous Question)。當達到最大有效節(jié)點數(shù)或最大深度時,對樹的探索便告結(jié)束。一旦構(gòu)建好澄清樹,ToC 收集所有有效節(jié)點并生成一個全面的長文本答案來解決 AQ。

4.4.3 自適應(yīng)(主動)檢索(Adaptive (Active) retrieval)

隨著 RAG 的發(fā)展,逐漸從被動檢索轉(zhuǎn)向了自適應(yīng)檢索的出現(xiàn),也就是主動檢索,這在一定程度上得益于 LLM 的強大能力。它與 LLM 代理有著相同的核心概念。RAG 系統(tǒng)能夠主動確定檢索的時機,并決定何時結(jié)束整個流程并得出最終結(jié)果。依照判斷標準,這可進一步細分為基于提示和基于調(diào)整的方法。

4.4.3.1 基于提示(Prompt-base)

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

基于提示的方法借助提示工程來掌控流程并引導(dǎo) LLM。一個典型的實現(xiàn)案例是 FLARE 。其核心觀念在于,LLM 僅在缺乏必要知識時才進行檢索,從而避免在增強的 LM 中出現(xiàn)不必要或不恰當?shù)臋z索。FLARE 會迭代生成下一個臨時句子,并檢查是否存在低概率標記。若有,系統(tǒng)便會檢索相關(guān)文檔并重新生成句子。

4.4.3.2 基于微調(diào)(Tuning-base)

基于調(diào)整的方法涉及微調(diào) LLM 以生成特殊標記,進而觸發(fā)檢索或生成。這一概念可追溯至 Toolformer ,其中特定內(nèi)容的生成有助于調(diào)用工具。在 RAG 系統(tǒng)中,此方法用于控制檢索和生成步驟。

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

一個典型例子是 Self-RAG。給定輸入提示和先前的生成結(jié)果,首先預(yù)測特殊標記“檢索”是否有助于通過檢索來增強繼續(xù)生成。然后,若需要檢索,模型會生成一個評判標記來評估檢索到的段落的相關(guān)性,以及一個評判標記來評估響應(yīng)中的信息是否得到檢索到的段落的支持。最后,一個評判標記評估響應(yīng)的整體效用,并選取最優(yōu)結(jié)果作為最終輸出。

4.5 微調(diào)模式(Tuning Pattern)

RAG 持續(xù)與更多與 LLM 相關(guān)的技術(shù)相融合。在模塊化 RAG 中,許多組件由可訓(xùn)練的語言模型構(gòu)成。通過微調(diào),能夠進一步優(yōu)化組件的性能以及與整體流程的兼容性。

微調(diào)階段的三種主要模式,即檢索器微調(diào)、生成器微調(diào)以及雙重微調(diào)。

4.5.1 檢索器微調(diào)

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

在 RAG 流程中,微調(diào)檢索器的常見方法如上圖,其中包括:

? 1.對檢索器進行直接的監(jiān)督微調(diào)。構(gòu)建專門用于檢索的數(shù)據(jù)集,并對密集檢索器進行微調(diào)。例如,使用開源檢索數(shù)據(jù)集或依據(jù)特定領(lǐng)域數(shù)據(jù)構(gòu)建一個。

? 2.添加可訓(xùn)練的適配器模塊。有時,直接微調(diào) API 基礎(chǔ)嵌入模型(如 OpenAI Ada-002 和 Cohere)是行不通的。引入適配器模塊能夠增強數(shù)據(jù)的表示。此外,適配器模塊有助于更好地與下游任務(wù)對齊,無論是針對特定任務(wù)(如 PRCA )還是通用目的(如 AAR )。

? 3.LM 監(jiān)督檢索(LSR)。依據(jù) LLM 生成的結(jié)果對檢索器進行微調(diào)。

? 4.LLM 獎勵 RL。將 LLM 輸出結(jié)果作為監(jiān)督信號。采用強化學(xué)習(xí)使檢索器與生成器對齊。整個檢索過程以生成馬爾可夫鏈的形式拆解。

4.5.2 生成器微調(diào)

模塊化RAG:RAG新范式,像樂高一樣搭建-AI.x社區(qū)圖片

在RAG流程中,對生成器進行微調(diào)的幾種主要方法包括:

? 直接監(jiān)督式微調(diào)(Direct supervised fine-tuning):利用外部數(shù)據(jù)集進行微調(diào),能夠為生成器注入新知識,并且還能定制化輸入輸出格式。通過設(shè)定問答模式,大型語言模型(LLM)能夠理解特定的數(shù)據(jù)格式,并按照指令進行輸出。

? 蒸餾(Distillation):在本地部署開源模型時,一種簡單有效的優(yōu)化手段是利用GPT-4批量創(chuàng)建微調(diào)數(shù)據(jù),以此提升開源模型的性能。

? 基于LLM/人類反饋的強化學(xué)習(xí)(RL from LLM/human feedback):通過最終生成的答案反饋進行強化學(xué)習(xí),不僅可以利用人類的評估,還能借助強大的LLMs作為評價的裁判。

4.5.3 雙重微調(diào)

RAG系統(tǒng)中的一大特色是能夠同時對檢索器和生成器進行微調(diào)。系統(tǒng)微調(diào)的核心在于檢索器與生成器之間的協(xié)同配合。例如,RA-DIT就是一個典范,它對LLM和檢索器都進行了微調(diào)。LM-ft組件負責更新LLM,以提高在檢索增強指令輔助下得出正確答案的可能性;而R-ft組件則負責更新檢索器,以減少檢索器得分分布與LLM偏好之間的KL散度差異。

本文轉(zhuǎn)載自??大語言模型論文跟蹤??,作者:HuggingAGI 


已于2024-8-6 11:28:53修改
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦