
什么是GPT-4?完整指南
該工作所提出的模塊化(Modular)RAG比較有趣,因此,今天我們來(lái)看看這個(gè)話題,價(jià)值之一在于,對(duì)RAG各個(gè)模塊的方案進(jìn)行了歸置,對(duì)建立體系認(rèn)知有幫助,供大家一起參考。
而隨著RAG技術(shù)的演進(jìn),RAG整體的流程變動(dòng)更加豐富和自由,具體表現(xiàn)在以下幾個(gè)方面:
在檢索增強(qiáng)數(shù)據(jù)源上,不再局限于傳統(tǒng)的純文本文檔為為代表的非結(jié)構(gòu)化數(shù)據(jù)。越來(lái)越多的研究引入了半結(jié)構(gòu)化數(shù)據(jù)(例如,PDF、HTML和LaTex)、結(jié)構(gòu)化數(shù)據(jù)(例如三元組、KG、以及結(jié)構(gòu)化查詢語(yǔ)句)。
經(jīng)過(guò)預(yù)處理結(jié)構(gòu)數(shù)據(jù)更進(jìn)一步提供檢索的邏輯性和可驗(yàn)證性,降低模型幻覺(jué)。此外,以檢索LLM自身代替外部知識(shí)源的方 法逐漸興起。通過(guò)進(jìn)一步挖掘LLM的能力,以減少對(duì)外部知識(shí)源的依賴。
在檢索增強(qiáng)技術(shù)上,RAG的思想正更多和其他術(shù)進(jìn)行融合,增強(qiáng)的手段越發(fā)豐富。例如,微調(diào)技術(shù)和RAG的協(xié)同使用。 例如利用通過(guò)微調(diào)的方式對(duì)檢索器和生成器單獨(dú)進(jìn)行微調(diào)或協(xié)同微調(diào)。增加Adapter模塊來(lái)對(duì)? Query之間Chunk 之間的語(yǔ)義差異。
增加下游任務(wù)無(wú)關(guān)\任務(wù)特定的檢索適配器。除了微調(diào),研究人員借鑒了RLHF的思想,通過(guò)RL,以更強(qiáng)大的LLM(GPT-4)作為監(jiān)督信號(hào)來(lái)增強(qiáng)檢索能力。
在檢索增強(qiáng)流程上,RAG系統(tǒng)不再局限于,先檢索再生成,以及每次前都必須檢索的流程。 可以迭代的進(jìn)行多輪檢索增強(qiáng),用檢索出來(lái)的內(nèi)容指導(dǎo)生成,用生成的內(nèi)容進(jìn)一步指導(dǎo)檢索。另一方面,可以利用LLM或自主判 斷是否需要檢索。以提高回答問(wèn)題的效率。如果LLM已經(jīng)對(duì)問(wèn)題有較高的把握程度,則可以直接進(jìn)行回答,反之則進(jìn)行檢索。
可以看到,上述RAG的快速發(fā)展早已經(jīng)突破傳統(tǒng)的鏈?zhǔn)絉AG范式,展示出了模塊化的特點(diǎn)。但是當(dāng)前的對(duì)RAG范式的梳理和抽象還沒(méi)有跟上技術(shù)的快速發(fā)展。
因此,立足當(dāng)前RAG的技術(shù)發(fā)展特點(diǎn)和趨勢(shì),該工作進(jìn)一步整合了Naive RAG和Advanced RAG的發(fā)展范式,提出了Modular RAG范式。
Modular RAG是具有高度擴(kuò)展的范式,它將RAG系統(tǒng)拆分為Molule Type-Module-Operator的三層結(jié)構(gòu)。
如下圖所示,展示對(duì)各個(gè)模塊的核心思路與方法的歸類(lèi),例如chunk optimizaton的方案:
例如:
indexing包括chunk優(yōu)化(包括small-to-big,用小塊做索引,但召回大塊),sliding window(滑動(dòng)窗口,提高語(yǔ)義連貫性),也包括summary摘要(解決跨文檔)以及結(jié)構(gòu)化的組織,例如使用知識(shí)圖譜進(jìn)行文檔內(nèi)容的組織,根據(jù)文檔結(jié)構(gòu)進(jìn)行層級(jí)組織。
Retrieval也包括檢索方式的選擇以及檢索的微調(diào)兩種,減速哦方式包括稀疏檢索(es字符串匹配)以及稠密檢索(向量化檢索),微調(diào)方式包括SFT、adapter等。
post-retrieval包括一些后處理的模塊,例如重排rerank(基于規(guī)則的、基于模型的、基于大模型llm本身的),上下文壓縮compresion/selection(這個(gè)主要包括我們前面所說(shuō)的llmlingua, recomp,selective context,核心在于利用不同的手段,將上下文中不重要的信息進(jìn)行剔除)
pre-retrival階段,則包括query-routing(問(wèn)題的分發(fā)、意圖分類(lèi))、query-expansion(query擴(kuò)展,一變多,拆分子query)、query transformer(包括query rewrite改寫(xiě)等)、query construction(包括text-cypher, text2sql等,將結(jié)構(gòu)化知識(shí)利用起來(lái))
Generation階段,則包括對(duì)底層基礎(chǔ)模型的一些事情,比如基于cloud-api,還是進(jìn)行SFT微調(diào)。
orchestraction階段,則包括對(duì)各個(gè)模塊之間的執(zhí)行和通信進(jìn)行管理。
因此,我們可以看到,每一個(gè)Module Type 代表了RAG系統(tǒng)中的一個(gè)核心流程,Module Type中包含多個(gè)功能模塊,每個(gè)功能模塊內(nèi)部又包括多個(gè)具體的算子。整個(gè)RAG系統(tǒng)變成多個(gè)模塊和對(duì)應(yīng)算子之間的排列和組合,將其稱為RAG Flow。
在FLow中,在每個(gè)模塊類(lèi)型中可以選擇不同一個(gè)或多個(gè)功能模塊,而每個(gè)功能模塊內(nèi)部又可以選擇一或多個(gè)算子。
Modular RAG中以多層級(jí)模塊化的形式組織了RAG系統(tǒng)。Adavanced RAG 則是模塊化的RAG特例形式,進(jìn)一步的Naive RAG本身也是Advanced RAG的特例,三個(gè)范式之間是繼承與發(fā)展的關(guān)系。
Modular RAG的好處是顯而易?的,將當(dāng)前RAG的技術(shù)整合到一個(gè)范式中,提供了更加全面且更高維度的視?,可以讓研究人員快速把握當(dāng)前研究發(fā)展的全貌和趨勢(shì),構(gòu)建一個(gè)RAG的思維地圖。通過(guò)模塊之間編排,相關(guān)的技術(shù)和方法被清晰的匯總,RAG系統(tǒng)的設(shè)計(jì)和構(gòu)建變得更加便利,更容易定位到問(wèn)題環(huán)節(jié)。
對(duì)于研究人員。 研究人員可以在全面了解RAG當(dāng)前的發(fā)展的基礎(chǔ)上,更好地識(shí)別當(dāng)前RAG各個(gè)模塊中的缺陷,聚焦研究?jī)?nèi)容,提出新的模塊類(lèi)型、模塊和算子。
對(duì)于開(kāi)發(fā)人員。?一方面開(kāi)發(fā)研究人員可以借鑒當(dāng)前經(jīng)過(guò)驗(yàn)證的RAG Flow Pattern,快速上手。另一方面開(kāi)發(fā) 人員可以根據(jù)特定的數(shù)據(jù)情況、使用場(chǎng)景、下游任務(wù)以及其他需要去定制化地編排不同的RAG模塊和算子,定義新的Flow和Flow Pattern。
本文對(duì)關(guān)于模塊化RAG進(jìn)行了簡(jiǎn)要的介紹,更多詳細(xì)的內(nèi)容可以參考:Modular RAG and RAG Flow: Part I(https://medium.com/@yufan1602/modular-rag-and-rag-flow-part-ⅰ-e69b32dc13a3)
這是對(duì)RAG的一個(gè)總括,可以仔細(xì)看看,會(huì)有收獲。
本文章轉(zhuǎn)載微信公眾號(hào)@老劉說(shuō)NLP
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)