三大關(guān)鍵技術(shù)看RAG如何提升LLM的能力 精華
大語(yǔ)言模型表現(xiàn)出色,但是在處理幻覺(jué)、使用過(guò)時(shí)的知識(shí)、進(jìn)行不透明推理等方面存在挑戰(zhàn)。檢索增強(qiáng)生成(RAG)作為一個(gè)新興的解決方案,通過(guò)整合外部知識(shí)庫(kù)的數(shù)據(jù),提高了模型在知識(shí)密集型任務(wù)中的準(zhǔn)確性和可信度,能夠?qū)崿F(xiàn)知識(shí)持續(xù)更新和特定領(lǐng)域信息的集成,有效將LLM的內(nèi)在知識(shí)與外部數(shù)據(jù)的巨大動(dòng)態(tài)資源相結(jié)合。
本文主要是對(duì)綜述論文《Retrieval-Augmented Generation for Large Language Models: A Survey》的概括和解讀,同時(shí)也會(huì)整合一些其他來(lái)源的材料。后面主要探討RAG范式(包括Naive RAG、Advanced RAG、Modular RAG)的發(fā)展,同時(shí)會(huì)詳細(xì)介紹RAG的三大關(guān)鍵技術(shù)(檢索、生成、增強(qiáng)),然后會(huì)介紹RAG的評(píng)估指標(biāo)及應(yīng)用實(shí)踐。
大模型應(yīng)用面臨的挑戰(zhàn)
大語(yǔ)言模型(如GPT系列、LLama系列、文心一言等),已經(jīng)在自然語(yǔ)言領(lǐng)域的多項(xiàng)基準(zhǔn)測(cè)試中取得突破性進(jìn)展。然而,它們?cè)谔幚硖囟I(lǐng)域或者一些高度專(zhuān)業(yè)化的場(chǎng)景時(shí)存在一些局限性。
- 內(nèi)容不真實(shí):幻覺(jué)問(wèn)題/領(lǐng)域知識(shí)匱乏
- 時(shí)效性不強(qiáng)
- 隱私&安全性
為了應(yīng)對(duì)這些挑戰(zhàn),主要有以下幾種類(lèi)型的解決方案:
- 參數(shù)化的方式:通過(guò)微調(diào)的手段將領(lǐng)域知識(shí)嵌入模型,更新模型參數(shù)。它的缺點(diǎn)是訓(xùn)練成本較高、靈活性較差;優(yōu)勢(shì)在于能夠輸出高質(zhì)量的結(jié)果。
- 非參數(shù)化方式:通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)相關(guān)的知識(shí),檢索后直接使用。它的優(yōu)勢(shì)在于成本低、靈活性強(qiáng)、可解釋性高;缺點(diǎn)在于少了生成的過(guò)程,檢索出的內(nèi)容可能不能直接回答問(wèn)題,有較高的理解成本。
- 用非參數(shù)化的語(yǔ)料庫(kù)與參數(shù)化的模型集成,也就是RAG,同時(shí)具備參數(shù)化方式和非參數(shù)化方式的優(yōu)點(diǎn)。
什么是RAG
顧名思義,RAG (Retrieval-Augmented Generation), 主要包括3個(gè)關(guān)鍵過(guò)程(Retrieval、Augmentation和Generation),它主要通過(guò)從外部知識(shí)庫(kù)中“檢索”最新信息作為外掛來(lái)“增強(qiáng)”LLM“生成”答案的效果。在回答問(wèn)題或生成文本之前查詢(xún)外部數(shù)據(jù)源并合成一個(gè)內(nèi)容更加豐富的Prompt,從而顯著提升輸出的準(zhǔn)確性和相關(guān)性。目前,RAG已經(jīng)成為L(zhǎng)LM系統(tǒng)中最流行的架構(gòu)之一,因其高實(shí)用性和低門(mén)檻的特點(diǎn),許多對(duì)話產(chǎn)品都是基于RAG進(jìn)行構(gòu)建。
RAG框架結(jié)構(gòu)
從簡(jiǎn)單到復(fù)雜可以分為三個(gè)層次的RAG,包括Naive RAG、Advanced RAG、Modular RAG,如下圖所示。
從Naive RAG說(shuō)起
最基本的RAG方式,分為Indexing、Retrieval、Generation這3個(gè)步驟,簡(jiǎn)單而實(shí)用。
Naive RAG的一些局限性
Naive RAG的效果在檢索質(zhì)量、結(jié)果生成質(zhì)量和增強(qiáng)的過(guò)程方面都存在一定的挑戰(zhàn)。
- 檢索質(zhì)量方面
- 準(zhǔn)確率低,可能會(huì)導(dǎo)致幻覺(jué)
- 召回率低,導(dǎo)致信息不完整
- 過(guò)時(shí)或者冗余的信息導(dǎo)致檢索結(jié)果不準(zhǔn)確
- 結(jié)果生成質(zhì)量方面
- 幻覺(jué)問(wèn)題,如果問(wèn)題的答案未能被正確檢索,生成的結(jié)果仍然會(huì)產(chǎn)生幻覺(jué)
- 答非所問(wèn),問(wèn)題和答案未能正確匹配
- 生成有害和偏見(jiàn)的答案
- 增強(qiáng)過(guò)程(整合來(lái)自檢索的內(nèi)容)的挑戰(zhàn)
- 內(nèi)容不連貫/脫節(jié)
- 冗余和重復(fù)
- 確定每段內(nèi)容對(duì)于結(jié)果生成的重要性
- 協(xié)調(diào)來(lái)自不同寫(xiě)作風(fēng)格/語(yǔ)氣的內(nèi)容差異,從而保證輸出一致性
- 生成結(jié)果可能過(guò)渡依賴(lài)增強(qiáng)信息,導(dǎo)致和增強(qiáng)信息相比沒(méi)有帶來(lái)額外的收益
Advanced RAG如何應(yīng)對(duì)這些挑戰(zhàn)
和Naive RAG相比,Advanced RAG加入了Pre-Retrieval 和 Post-Retrieval模塊,同時(shí)對(duì)Retrieval模塊也進(jìn)行了一些優(yōu)化,從而改進(jìn)輸出效果。
Pre-Retrieval
可以通過(guò)優(yōu)化數(shù)據(jù)索引的方式來(lái)改進(jìn)Pre-Retrieval階段的質(zhì)量。大致有5種策略可以使用:
- 增強(qiáng)數(shù)據(jù)粒度:主要是對(duì)數(shù)據(jù)內(nèi)容進(jìn)行修訂和簡(jiǎn)化,確保數(shù)據(jù)源的正確性和可讀性。預(yù)索引優(yōu)化的主要目的是提升文本的規(guī)范化、統(tǒng)一性,并確保信息的準(zhǔn)確無(wú)誤和上下文的充分性,以此來(lái)保障 RAG 系統(tǒng)的表現(xiàn)。具體的方式包括刪除不相關(guān)信息、消除實(shí)體種的歧義和術(shù)語(yǔ)、確認(rèn)事實(shí)準(zhǔn)確性、維護(hù)上下文、更新過(guò)時(shí)文件。
- 優(yōu)化索引結(jié)構(gòu):包括調(diào)整chunk的大小來(lái)捕獲相關(guān)的上下文、跨多個(gè)索引路徑查詢(xún)、通過(guò)利用圖數(shù)據(jù)索引中節(jié)點(diǎn)之間的關(guān)系并結(jié)合圖結(jié)構(gòu)中的信息來(lái)捕獲相關(guān)上下文。
- 層級(jí)索引
- 加入元數(shù)據(jù)信息:在RAG系統(tǒng)開(kāi)發(fā)中,加入元數(shù)據(jù)如日期標(biāo)簽可以提高檢索質(zhì)量,特別是在處理時(shí)間敏感的數(shù)據(jù)如電子郵件查詢(xún)時(shí),強(qiáng)調(diào)最新信息的相關(guān)性而不僅是內(nèi)容相似性。LlamaIndex通過(guò)節(jié)點(diǎn)后處理器支持這種以時(shí)間排序的檢索策略,增強(qiáng)了系統(tǒng)的實(shí)用性和效率。
- 對(duì)齊優(yōu)化:這一策略主要針對(duì)文檔間的對(duì)齊問(wèn)題和差異性問(wèn)題。對(duì)齊處理包括設(shè)計(jì)假設(shè)性問(wèn)題,可以理解為每一個(gè) chunk 生成一個(gè)假設(shè)性提問(wèn),然后將這個(gè)問(wèn)題本身也嵌合到 chunk 中。這種方法有助于解決文檔間的不一致和對(duì)齊問(wèn)題。
- 混合檢索
Retrieval
這一階段主要通過(guò)計(jì)算query和chunks的相似性來(lái)召回上下文,核心是embedding模型,Advanced RAG主要對(duì)embedding模型進(jìn)行優(yōu)化。
- 微調(diào)Embedding模型:利用特定場(chǎng)景的預(yù)料去微調(diào)embedding模型,將知識(shí)嵌入到模型中。
- Dynamic Embedding:相比于靜態(tài)嵌入(每個(gè)固定單詞的的向量固定),動(dòng)態(tài)嵌入會(huì)根據(jù)不同的上下文對(duì)同一個(gè)單詞的嵌入進(jìn)行調(diào)整。嵌入中包含上下文信息能夠產(chǎn)生更為可靠的結(jié)果。
Post-Retrieval
在完成chunks檢索并整合上下文提交給LLM生成最終結(jié)果前,可以通過(guò)ReRank和Prompt Compression的方式對(duì)文檔進(jìn)行優(yōu)化。
- ReRank:前文提及的檢索召回階段一般直接對(duì)query和chunks的embedding向量進(jìn)行相似性召回,無(wú)法捕捉query和chunk的復(fù)雜語(yǔ)義關(guān)系。Rerank階段可以設(shè)計(jì)更加復(fù)雜的模塊對(duì)召回的結(jié)果進(jìn)行精細(xì)化的排序,從而提高召回的質(zhì)量。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/node_postprocessor/CohereRerank.html
- Prompt Compression:研究表明,檢索到的文檔中的噪聲會(huì)對(duì) RAG 性能產(chǎn)生不利影響。在后期處理中,重點(diǎn)在于壓縮無(wú)關(guān)上下文、突出關(guān)鍵段落、減少整體上下文長(zhǎng)度。Selective Context 和 LLMLingua 等方法利用小語(yǔ)言模型來(lái)計(jì)算即時(shí)互信息或困惑度,估計(jì)元素重要性。Recomp通過(guò)以不同粒度訓(xùn)練壓縮器來(lái)解決這個(gè)問(wèn)題,而 Long Context 和“Walking in the Memory Maze” 設(shè)計(jì)總結(jié)技術(shù)來(lái)增強(qiáng)法學(xué)碩士的關(guān)鍵信息感知,特別是在處理廣泛的背景方面。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/node_postprocessor/LongLLMLingua.html
Modular RAG
不同于Naive RAG和Advanced RAG,都有固定的一套流程,Modular RAG更多是增加了一些新的模塊,并可以根據(jù)具體的需求對(duì)各個(gè)單一的模塊進(jìn)行組合得到新的架構(gòu)模式。
新模塊
- 搜索模塊:為特定場(chǎng)景定制,可以在額外的語(yǔ)料庫(kù)上進(jìn)行直接搜索。
- 記憶模塊:利用LLM記憶能力和增強(qiáng)檢索的生成器指導(dǎo)檢索過(guò)程,使用生成的輸出作為數(shù)據(jù)源。
- 融合:通過(guò)LLM擴(kuò)展用戶(hù)查詢(xún),提高搜索的多樣性和深度,優(yōu)化結(jié)果并與用戶(hù)意圖更緊密對(duì)齊。
- 路由:RAG系統(tǒng)通過(guò)查詢(xún)路由功能,根據(jù)用戶(hù)的查詢(xún)內(nèi)容選擇最合適的信息源和處理方式,包括總結(jié)性回應(yīng)、特定數(shù)據(jù)庫(kù)搜索或合并不同信息源。這涉及多種數(shù)據(jù)存儲(chǔ)類(lèi)型,如向量、圖形或關(guān)系數(shù)據(jù)庫(kù),以及索引層級(jí)。查詢(xún)路由根據(jù)預(yù)置邏輯通過(guò)LLM執(zhí)行,確保查詢(xún)高效準(zhǔn)確地被處理。
- 預(yù)測(cè):通過(guò)LLM生成上下文來(lái)解決檢索內(nèi)容中的冗余和噪聲,比直接檢索更有效。
- 任務(wù)適配器:適用于不同下游任務(wù),通過(guò)LLM生成查詢(xún)提示和任務(wù)特定檢索器,提高模型的泛用性和精確度。
新模式
Modular RAG是一個(gè)高度適應(yīng)性的組織結(jié)構(gòu),它允許在RAG過(guò)程中替換或重新排列模塊以適應(yīng)特定問(wèn)題的需求。傳統(tǒng)的樸素RAG主要由“Retrieval”和“Read”模塊組成,而高級(jí)RAG在此基礎(chǔ)上增加了“Rewrite”和“Rerank”模塊。然而,模塊化RAG提供了更大的多樣性和靈活性。
目前的研究主要探索兩種組織模式:一種是增加或替換模塊,另一種是調(diào)整模塊之間的流程。通過(guò)這種靈活性,可以根據(jù)不同任務(wù)的需求定制RAG過(guò)程。
增加或替換模塊策略旨在保持Retrieval-Read的核心結(jié)構(gòu),同時(shí)通過(guò)集成額外的模塊來(lái)增強(qiáng)特定功能,如RRR模型中的Rewrite-Retrieval-Read過(guò)程。另一種方法是交換模塊,如將LLM生成模塊替換為檢索模塊,或者讓LLM記住特定任務(wù)信息并進(jìn)行輸出,以處理知識(shí)密集型任務(wù)。
在調(diào)整模塊之間的流程方面,重點(diǎn)在于增強(qiáng)語(yǔ)言模型和檢索模型之間的交互。例如,DSP框架將上下文學(xué)習(xí)系統(tǒng)視為一個(gè)顯式程序來(lái)處理知識(shí)密集型任務(wù),而ITER-RETGEN方法則通過(guò)生成內(nèi)容指導(dǎo)檢索,并在檢索-閱讀的流程中迭代實(shí)施增強(qiáng)功能,顯示了模塊之間如何相互提升功能的創(chuàng)新方式。
優(yōu)化RAG的pipeline
RAG系統(tǒng)中的檢索過(guò)程優(yōu)化關(guān)注于提高信息檢索的效率和質(zhì)量。通過(guò)集成多種搜索技術(shù)、改進(jìn)檢索步驟、引入認(rèn)知回溯、實(shí)現(xiàn)多樣化查詢(xún)策略和利用嵌入相似性,研究人員致力于在檢索效率和上下文信息的深度之間找到平衡點(diǎn)。
- 混合搜索——結(jié)合關(guān)鍵詞搜索、語(yǔ)義搜索和向量搜索的技術(shù)以適應(yīng)各種查詢(xún)需求,并確保檢索到相關(guān)且內(nèi)容豐富的信息。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/retrievers/simple_fusion.html
- 遞歸檢索和查詢(xún)引擎——逐步檢索,捕獲關(guān)鍵語(yǔ)義,在流程后期提供更多上下文信息,以提供效率和響應(yīng)深度之間的平衡。
- sentence window retrieval
- Parent-child chunks retrieval
- StepBack-prompt——通過(guò)后向提示鼓勵(lì)LLM圍繞更寬泛概念進(jìn)行推理,以提高復(fù)雜推理任務(wù)的性能。
- 子查詢(xún)——根據(jù)不同場(chǎng)景,采取不同的查詢(xún)策略,如利用查詢(xún)引擎、樹(shù)查詢(xún)、向量查詢(xún)或順序查詢(xún)。
- 假設(shè)性文檔嵌入(HyDE)——HyDE是一個(gè)系統(tǒng),它通過(guò)使用大型語(yǔ)言模型來(lái)創(chuàng)建假設(shè)性答案,并將這些答案嵌入空間以檢索類(lèi)似的真實(shí)文檔。這種方法更注重答案之間而非查詢(xún)與答案間的嵌入相似性。盡管這種方法有其創(chuàng)新之處,但在處理不熟悉的主題時(shí),可能會(huì)產(chǎn)生不準(zhǔn)確的結(jié)果。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/query_transformations/HyDEQueryTransformDemo.html
這些方法不僅增加了系統(tǒng)的靈活性,也可能提高RAG系統(tǒng)在處理知識(shí)密集型任務(wù)時(shí)的表現(xiàn),但也需要注意,這些方法可能在模型對(duì)特定主題不夠熟悉時(shí)產(chǎn)生錯(cuò)誤。
Retriever模塊
在 RAG 的背景下,從數(shù)據(jù)源中高效檢索相關(guān)文檔至關(guān)重要。然而,構(gòu)建一個(gè)熟練的檢索器面臨著巨大的挑戰(zhàn)。本節(jié)探討了三個(gè)基本問(wèn)題:1)我們?nèi)绾螌?shí)現(xiàn)準(zhǔn)確的語(yǔ)義表示?2)什么方法可以對(duì)齊查詢(xún)和文檔的語(yǔ)義空間?3)檢索器的輸出如何與大語(yǔ)言模型的偏好保持一致?
如何得到準(zhǔn)確的語(yǔ)義表征?
在 RAG 中,語(yǔ)義空間至關(guān)重要,因?yàn)樗婕安樵?xún)和文檔的多維映射。該語(yǔ)義空間中的檢索準(zhǔn)確性會(huì)顯著影響 RAG 結(jié)果。本節(jié)將介紹兩種構(gòu)建準(zhǔn)確語(yǔ)義空間的方法。
- Chunk 優(yōu)化:優(yōu)化文本塊(Chunk)涉及分析文檔特性(如長(zhǎng)度和主題)、選擇適合的嵌入模型、考慮用戶(hù)問(wèn)題的類(lèi)型以及應(yīng)用場(chǎng)景的特定需求。可以采用small2big技術(shù)針對(duì)不同查詢(xún)階段使用不同大小的文本塊,通過(guò)abstract embedding進(jìn)行快速檢索,使用metadata filtering利用文檔的額外信息來(lái)精化搜索結(jié)果,以及通過(guò)graph indexing提升多步邏輯推理能力。需要靈活運(yùn)用這些策略,根據(jù)大語(yǔ)言模型能處理的Token數(shù)量上限來(lái)調(diào)整分塊大小,實(shí)現(xiàn)更精確的查詢(xún)結(jié)果。
- 微調(diào)Embedding模型:微調(diào)嵌入模型是必要的,因?yàn)楸M管預(yù)訓(xùn)練模型能捕捉豐富的語(yǔ)義信息,但它們可能無(wú)法充分理解特定領(lǐng)域的專(zhuān)業(yè)知識(shí)。通過(guò)微調(diào),模型能夠更準(zhǔn)確地捕捉特定任務(wù)或領(lǐng)域的細(xì)節(jié),從而更好地理解用戶(hù)查詢(xún)并提高與相關(guān)內(nèi)容的匹配度。未經(jīng)微調(diào)的模型可能無(wú)法滿足特定任務(wù)的精確要求。主要有兩種微調(diào)的策略:
- 領(lǐng)域知識(shí)微調(diào) 為了使嵌入模型能精確理解特定領(lǐng)域的信息,需要構(gòu)建專(zhuān)有數(shù)據(jù)集進(jìn)行細(xì)致微調(diào)。微調(diào)依賴(lài)于三個(gè)數(shù)據(jù)集部分:查詢(xún)、語(yǔ)料庫(kù)和相關(guān)文檔,以確保模型能根據(jù)查詢(xún)匹配相關(guān)文檔。LlamaIndex研究提供了關(guān)鍵類(lèi)和函數(shù),簡(jiǎn)化了嵌入模型微調(diào)流程,使得能夠基于領(lǐng)域知識(shí)語(yǔ)料庫(kù)定制模型。
- 針對(duì)下游任務(wù)進(jìn)行微調(diào) 已有研究展示了使用大語(yǔ)言模型(LLM)進(jìn)行微調(diào)的方法,如PROMPTAGATOR使用LLM生成少樣本查詢(xún)以創(chuàng)建任務(wù)特定的檢索器,解決數(shù)據(jù)匱乏問(wèn)題。LLM-Embedder則結(jié)合硬數(shù)據(jù)和LLM的軟性獎(jiǎng)勵(lì)進(jìn)行雙重微調(diào)。這些方法引入領(lǐng)域知識(shí)進(jìn)行任務(wù)特定微調(diào),改善語(yǔ)義表達(dá),但檢索器改進(jìn)不一定直接有助于LLM,故有研究采用從LLM獲取反饋直接微調(diào)嵌入模型。
如何匹配query和文檔的語(yǔ)義空間?
在檢索增強(qiáng)型生成(RAG)應(yīng)用的背景下,檢索器可能使用單一的嵌入模型來(lái)同時(shí)編碼查詢(xún)和文檔,或者為每個(gè)部分采用不同的模型。此外,用戶(hù)的原始查詢(xún)可能存在措辭不準(zhǔn)確和缺乏語(yǔ)義信息的問(wèn)題。因此,將用戶(hù)查詢(xún)的語(yǔ)義空間與文檔的語(yǔ)義空間對(duì)齊至關(guān)重要。本節(jié)介紹了兩種旨在實(shí)現(xiàn)這種對(duì)齊的基本技術(shù)。
- 查詢(xún)改寫(xiě) 查詢(xún)改寫(xiě)是一種用于對(duì)齊查詢(xún)和文檔的語(yǔ)義的基本方法。
- 例如Query2Doc和ITER-RETGEN等方法利用大語(yǔ)言模型(LLM)將原始查詢(xún)與額外指導(dǎo)信息相結(jié)合,創(chuàng)建一個(gè)偽文檔。
- HyDE使用文本提示構(gòu)造查詢(xún)向量,生成捕獲關(guān)鍵模式的“假設(shè)”文檔。
- RRR提出了一個(gè)框架,顛倒了傳統(tǒng)的檢索和閱讀順序,專(zhuān)注于查詢(xún)改寫(xiě)。
- STEP-BACKPROMPTING使LLM能夠基于高層次概念進(jìn)行抽象推理和檢索。
- 此外,多查詢(xún)檢索方法利用LLM同時(shí)生成和執(zhí)行多個(gè)搜索查詢(xún),這對(duì)于解決具有多個(gè)子問(wèn)題的復(fù)雜問(wèn)題特別有利。
這些方法的詳細(xì)內(nèi)容可以參考 如何利用查詢(xún)改寫(xiě)技術(shù)改善RAG效果
- 嵌入轉(zhuǎn)換 除了查詢(xún)改寫(xiě)等寬泛策略外,還有為嵌入轉(zhuǎn)換專(zhuān)門(mén)設(shè)計(jì)的更細(xì)粒度技術(shù)。
- LlamaIndex通過(guò)引入一個(gè)適配器模塊,該模塊可以在查詢(xún)編碼器之后集成,以便微調(diào),從而優(yōu)化查詢(xún)嵌入的表示,使之更緊密地與預(yù)定任務(wù)對(duì)齊。
- SANTA解決了將查詢(xún)與結(jié)構(gòu)化外部文檔對(duì)齊的挑戰(zhàn),特別是在處理結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)之間的不一致性時(shí)。它通過(guò)兩種預(yù)訓(xùn)練策略增強(qiáng)檢索器對(duì)結(jié)構(gòu)化信息的敏感性:首先,利用結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)之間的內(nèi)在對(duì)齊來(lái)指導(dǎo)對(duì)結(jié)構(gòu)化感知的預(yù)訓(xùn)練方案中的對(duì)比學(xué)習(xí);其次,采用掩碼實(shí)體預(yù)測(cè)。后者采用以實(shí)體為中心的掩碼策略,促使語(yǔ)言模型預(yù)測(cè)并填補(bǔ)掩碼的實(shí)體,從而促進(jìn)對(duì)結(jié)構(gòu)化數(shù)據(jù)的更深入理解
如何對(duì)齊檢索結(jié)果和大模型的輸出偏好
在RAG(檢索增強(qiáng)型生成)流程中,雖然通過(guò)各種技術(shù)提高檢索命中率可能看起來(lái)有益,但這并不一定能改善最終結(jié)果,因?yàn)闄z索到的文檔可能并不符合大型語(yǔ)言模型(LLM)的具體要求。因此,本節(jié)介紹了兩種旨在將檢索器輸出與大型語(yǔ)言模型的偏好對(duì)齊的方法
- 微調(diào)檢索器 多項(xiàng)研究利用大型語(yǔ)言模型(LLM)的反饋信號(hào)來(lái)精煉檢索模型。例如,AAR通過(guò)使用編碼器-解碼器架構(gòu),通過(guò)FiD交叉注意力分?jǐn)?shù)識(shí)別LM偏好的文檔,為預(yù)訓(xùn)練的檢索器引入監(jiān)督信號(hào)。隨后,檢索器通過(guò)硬負(fù)采樣和標(biāo)準(zhǔn)交叉熵?fù)p失進(jìn)行微調(diào)。最終,改良后的檢索器可以直接應(yīng)用于提高目標(biāo)LLM在目標(biāo)任務(wù)中的性能。還有研究表明LLM可能更傾向于關(guān)注可讀性高的文檔而非信息豐富的文檔。
REPLUG計(jì)算檢索到的文檔的概率分布,然后通過(guò)計(jì)算KL散度進(jìn)行監(jiān)督訓(xùn)練。這種簡(jiǎn)單有效的訓(xùn)練方法利用LM作為監(jiān)督信號(hào)提高檢索模型的表現(xiàn),無(wú)需特定的交叉注意力機(jī)制。
UPRISE同樣使用固定的LLM微調(diào)提示檢索器。LLM和檢索器都以提示-輸入對(duì)作為輸入,并利用LLM提供的分?jǐn)?shù)指導(dǎo)檢索器的訓(xùn)練,有效地將LLM視為數(shù)據(jù)集標(biāo)注器。
此外,Atlas提出了四種監(jiān)督微調(diào)嵌入模型的方法:注意力蒸餾、EMDR2、困惑度蒸餾和LOOP,它們旨在提高檢索器和LLM之間的協(xié)同作用,提升檢索性能,并使對(duì)用戶(hù)查詢(xún)的回應(yīng)更加精確。
- Adapters 微調(diào)模型可能面臨挑戰(zhàn),比如通過(guò)API集成功能或應(yīng)對(duì)有限的本地計(jì)算資源帶來(lái)的限制。因此,一些方法選擇引入外部適配器以幫助對(duì)齊。
PRCA通過(guò)上下文提取階段和獎(jiǎng)勵(lì)驅(qū)動(dòng)階段來(lái)訓(xùn)練適配器,然后使用基于令牌的自回歸策略?xún)?yōu)化檢索器的輸出。令牌過(guò)濾方法使用交叉注意力分?jǐn)?shù)高效過(guò)濾令牌,僅選擇得分最高的輸入令牌。
RECOMP引入了用于生成摘要的提取式和生成式壓縮器。這些壓縮器要么選擇相關(guān)句子,要么合成文檔信息,創(chuàng)建針對(duì)多文檔查詢(xún)的定制摘要。
此外,PKG引入了一種通過(guò)指令性微調(diào)將知識(shí)整合到白盒模型中的創(chuàng)新方法。在這種方法中,檢索器模塊被直接替換以根據(jù)查詢(xún)生成相關(guān)文檔。這種方法有助于解決微調(diào)過(guò)程中遇到的困難,并提高模型性能。
Generator模塊
RAG的核心是生成器,它結(jié)合檢索器提取的信息,生成準(zhǔn)確、相關(guān)的連貫文本。輸入不僅限于上下文信息,還包含相關(guān)文本片段,使得回答更豐富、相關(guān)。生成器確保內(nèi)容與信息的連貫性,并在生成階段對(duì)輸入數(shù)據(jù)進(jìn)行精細(xì)調(diào)整,以適應(yīng)大型模型。后續(xù)小節(jié)將探討檢索后處理和微調(diào)生成器。
如何通過(guò)Post-retrieval過(guò)程增強(qiáng)檢索結(jié)果
在大型語(yǔ)言模型(LLM)的應(yīng)用中,研究者依賴(lài)于如GPT-4這類(lèi)先進(jìn)模型來(lái)綜合處理不同文檔的信息。但LLMs面臨上下文長(zhǎng)度限制和對(duì)冗余信息處理的挑戰(zhàn),為此,研究轉(zhuǎn)向了檢索后處理,以提升檢索結(jié)果質(zhì)量和更好地滿足用戶(hù)需求。檢索后處理通常包括信息壓縮和結(jié)果重排序。
- 信息壓縮 信息壓縮對(duì)于管理大量檢索信息、減少噪音、解決上下文長(zhǎng)度限制和提升生成效果至關(guān)重要。PRCA和RECOMP通過(guò)訓(xùn)練提取器和壓縮器來(lái)生成更簡(jiǎn)潔的上下文。另一研究通過(guò)減少文檔數(shù)量來(lái)提高模型答案的準(zhǔn)確性,提出了結(jié)合LLM和小型語(yǔ)言模型(SLM)的“Filter-Reranker”范式,顯示出在信息提取任務(wù)中的顯著改進(jìn)。
- 重排序 重排序模型通過(guò)優(yōu)先排列最相關(guān)文檔,降低了性能下降問(wèn)題,提升了檢索的效率和響應(yīng)速度。重排序模型在整個(gè)檢索過(guò)程中充當(dāng)優(yōu)化器和精煉器的雙重角色,為語(yǔ)言模型處理提供了更有效和準(zhǔn)確的輸入,同時(shí)通過(guò)上下文壓縮提供了更精確的檢索信息。
Fine-tuning LLM for RAG
在RAG模型中,生成器的優(yōu)化是提高模型性能的關(guān)鍵。生成器負(fù)責(zé)將檢索的信息轉(zhuǎn)化為與用戶(hù)查詢(xún)相關(guān)的自然文本。RAG區(qū)別于標(biāo)準(zhǔn)LLM的地方在于,它結(jié)合了用戶(hù)的查詢(xún)及檢索器獲取的結(jié)構(gòu)化/非結(jié)構(gòu)化文檔作為輸入,這對(duì)小型模型的理解尤為重要。因此,針對(duì)查詢(xún)和檢索文檔的輸入微調(diào)模型至關(guān)重要,通常會(huì)在微調(diào)前對(duì)檢索到的文檔進(jìn)行后處理。RAG的生成器微調(diào)方法與LLM的通用微調(diào)方法保持一致。接下來(lái)的部分將介紹涉及不同數(shù)據(jù)類(lèi)型和優(yōu)化功能的研究工作。
- General Optimization Process 作為一般優(yōu)化過(guò)程的一部分,訓(xùn)練數(shù)據(jù)通常由輸入輸出對(duì)構(gòu)成,目的是訓(xùn)練模型根據(jù)輸入x產(chǎn)生輸出y。Self-Mem研究中,傳統(tǒng)的訓(xùn)練方法被采用,在此方法中,模型給定輸入x并檢索相關(guān)文檔z(選擇最相關(guān)的一個(gè)),然后整合(x, z)生成輸出y。該研究采用了兩種微調(diào)范式:聯(lián)合編碼器和雙編碼器。聯(lián)合編碼器使用標(biāo)準(zhǔn)的編碼器-解碼器模型,編碼器編碼輸入,而解碼器通過(guò)注意力機(jī)制生成令牌。雙編碼器則設(shè)立兩個(gè)獨(dú)立編碼器分別編碼輸入和文檔,解碼器使用雙向交叉注意力處理這些輸出。這兩種架構(gòu)都基于Transformer,并使用負(fù)對(duì)數(shù)似然損失來(lái)進(jìn)行優(yōu)化。
- 利用對(duì)比學(xué)習(xí) 在語(yǔ)言模型訓(xùn)練階段,通常創(chuàng)建輸入和輸出對(duì),但這可能導(dǎo)致模型僅訓(xùn)練于正確的輸出示例,即“曝光偏差”,限制其輸出范圍并可能過(guò)度擬合,影響泛化能力。為減少此偏差,SURGE使用圖文對(duì)比學(xué)習(xí)法以促使模型產(chǎn)生多樣化響應(yīng),減少過(guò)擬合并提升泛化。結(jié)構(gòu)化數(shù)據(jù)檢索任務(wù)中的SANTA框架采用三階段訓(xùn)練,通過(guò)對(duì)比學(xué)習(xí)精煉查詢(xún)和文檔嵌入,并強(qiáng)調(diào)實(shí)體語(yǔ)義在文本數(shù)據(jù)表示中的重要性,訓(xùn)練模型重建掩碼實(shí)體,以增強(qiáng)對(duì)實(shí)體語(yǔ)義的理解。
Augmentation模塊
本節(jié)內(nèi)容圍繞三個(gè)關(guān)鍵方面展開(kāi):增強(qiáng)階段、增強(qiáng)數(shù)據(jù)來(lái)源和增強(qiáng)過(guò)程。這些方面闡明了對(duì)RAG發(fā)展至關(guān)重要的關(guān)鍵技術(shù)。下圖展示了RAG核心組件的分類(lèi)體系。
在哪些階段進(jìn)行增強(qiáng)?
預(yù)訓(xùn)練階段
在預(yù)訓(xùn)練階段加強(qiáng)開(kāi)放領(lǐng)域問(wèn)答的預(yù)訓(xùn)練模型(PTM),研究者們探索了結(jié)合檢索策略的方法。例如,REALM模型在遮蔽語(yǔ)言模型(MLM)框架中實(shí)施了知識(shí)嵌入和檢索-預(yù)測(cè)流程。RETRO模型從零開(kāi)始利用檢索增強(qiáng)進(jìn)行大規(guī)模預(yù)訓(xùn)練,減少了參數(shù)數(shù)量并在困惑度上超越了GPT模型。Atlas模型將檢索機(jī)制融合到T5架構(gòu)的預(yù)訓(xùn)練和微調(diào)階段,而COG模型通過(guò)模擬復(fù)制現(xiàn)有文本片段,展現(xiàn)了在問(wèn)答和領(lǐng)域適應(yīng)方面的出色性能。隨著模型參數(shù)的增長(zhǎng)定律,研究者們正在預(yù)訓(xùn)練更大的模型,如RETRO++模型。這些模型在文本生成質(zhì)量、事實(shí)準(zhǔn)確性、降低毒性以及下游任務(wù)熟練度方面取得了顯著進(jìn)步,特別是在知識(shí)密集型任務(wù)如開(kāi)放領(lǐng)域問(wèn)答中。增強(qiáng)預(yù)訓(xùn)練的模型在困惑度、文本生成質(zhì)量和任務(wù)特定性能方面優(yōu)于標(biāo)準(zhǔn)GPT模型,且使用的參數(shù)更少。這種方法還面臨一些挑戰(zhàn),如大量預(yù)訓(xùn)練數(shù)據(jù)集和資源的需求以及模型大小增加時(shí)更新頻率的下降。然而,這種方法提供了模型彈性方面的顯著優(yōu)勢(shì),訓(xùn)練完成的增強(qiáng)檢索模型可以脫離外部庫(kù)獨(dú)立運(yùn)行,提高了生成速度和運(yùn)營(yíng)效率,這使得它成為人工智能和機(jī)器學(xué)習(xí)領(lǐng)域持續(xù)研究和創(chuàng)新的熱門(mén)話題。
Fine-tuning階段
RAG和微調(diào)是提升大型語(yǔ)言模型(LLMs)性能的重要手段,可以針對(duì)具體場(chǎng)景進(jìn)行優(yōu)化。微調(diào)有助于檢索特定風(fēng)格的文檔,改善語(yǔ)義表達(dá),并協(xié)調(diào)查詢(xún)和文檔之間的差異。此外,微調(diào)還可用于調(diào)整生成器產(chǎn)出具有特定風(fēng)格和目標(biāo)的文本,并可優(yōu)化檢索器與生成器間的協(xié)同作用。
微調(diào)檢索器旨在提升語(yǔ)義表征的質(zhì)量,通過(guò)使用專(zhuān)門(mén)的語(yǔ)料庫(kù)直接微調(diào)嵌入模型來(lái)完成。此外,微調(diào)使檢索器的能力與LLMs的偏好更好地協(xié)調(diào),并針對(duì)特定任務(wù)提高適應(yīng)性,同時(shí)增強(qiáng)多任務(wù)場(chǎng)景中的通用性。
微調(diào)生成器可以產(chǎn)出更加風(fēng)格化和定制的文本,使模型能夠適應(yīng)不同的輸入數(shù)據(jù)格式,并通過(guò)指令性數(shù)據(jù)集生成特定格式的內(nèi)容。例如,在自適應(yīng)或迭代檢索場(chǎng)景中,LLMs可以被微調(diào)以產(chǎn)生推動(dòng)下一步操作的內(nèi)容。
協(xié)同微調(diào)檢索器和生成器可以增強(qiáng)模型的泛化能力并避免過(guò)擬合,但這也會(huì)增加資源消耗。RA-DIT提出了一個(gè)輕量級(jí)的雙指令調(diào)整框架,可有效地為L(zhǎng)LMs增加檢索能力并避免不必要的信息。
盡管微調(diào)存在專(zhuān)門(mén)數(shù)據(jù)集和計(jì)算資源的需求局限性,但它允許模型針對(duì)特定需求和數(shù)據(jù)格式進(jìn)行定制,潛在地減少資源使用量。因此,微調(diào)是RAG模型適應(yīng)特定任務(wù)的關(guān)鍵環(huán)節(jié),盡管面臨挑戰(zhàn),但能夠提高模型的多功能性和適應(yīng)性,是構(gòu)建高效、有效檢索增強(qiáng)系統(tǒng)的重要組成部分。
推理階段
在RAG模型中,推理階段是整合大型語(yǔ)言模型的關(guān)鍵環(huán)節(jié)。傳統(tǒng)的Naive RAG在這個(gè)階段整合檢索內(nèi)容指導(dǎo)生成過(guò)程。為克服其局限性,采用了在推理中引入更豐富上下文信息的高級(jí)技術(shù)。如DSP框架通過(guò)凍結(jié)的LMs與檢索模型交換自然語(yǔ)言文本,豐富上下文提升生成結(jié)果;PKG為L(zhǎng)LMs加入知識(shí)引導(dǎo)模塊,使其檢索相關(guān)信息而不改變LM參數(shù);CREAICL通過(guò)同步檢索跨語(yǔ)言知識(shí)增強(qiáng)上下文;而RECITE直接從LLMs采樣段落生成上下文。
針對(duì)需要多步推理的任務(wù),ITRG迭代檢索信息以確定正確推理路徑,ITERRETGEN采用迭代策略循環(huán)合并檢索與生成,PGRA提出任務(wù)不可知檢索器和提示引導(dǎo)重排器的兩階段框架。IRCOT結(jié)合RAG和思維鏈方法,在問(wèn)答任務(wù)中提高GPT-3性能。這些推理階段優(yōu)化提供了輕量且經(jīng)濟(jì)的選擇,利用預(yù)訓(xùn)練模型的能力,無(wú)需額外訓(xùn)練。它們的主要優(yōu)勢(shì)是在不變更LLM參數(shù)的同時(shí)提供任務(wù)相關(guān)的上下文信息。不過(guò),此方法需細(xì)致的數(shù)據(jù)處理優(yōu)化,并受限于基礎(chǔ)模型的固有能力。為有效應(yīng)對(duì)多任務(wù)需求,通常與分步推理、迭代檢索和自適應(yīng)檢索等程序優(yōu)化技術(shù)結(jié)合使用。
增強(qiáng)數(shù)據(jù)源
RAG模型的效果顯著受到數(shù)據(jù)源選擇的影響,這些數(shù)據(jù)源根據(jù)不同知識(shí)和維度的需求可分為非結(jié)構(gòu)化數(shù)據(jù)、結(jié)構(gòu)化數(shù)據(jù)和由大型語(yǔ)言模型生成的內(nèi)容。技術(shù)樹(shù)展示了利用這些不同類(lèi)型數(shù)據(jù)進(jìn)行增強(qiáng)的代表性RAG研究,其中三種顏色的樹(shù)葉分別代表不同數(shù)據(jù)類(lèi)型的應(yīng)用。最初,RAG模型的增強(qiáng)主要依賴(lài)非結(jié)構(gòu)化數(shù)據(jù)如文本,隨后演變?yōu)榘ńY(jié)構(gòu)化數(shù)據(jù)如知識(shí)圖譜進(jìn)行優(yōu)化。近期研究動(dòng)向更傾向于使用LLMs自我生成的內(nèi)容來(lái)進(jìn)行檢索和增強(qiáng)。
非結(jié)構(gòu)化數(shù)據(jù)的增強(qiáng)
RAG模型在處理非結(jié)構(gòu)化文本時(shí),涵蓋了從單個(gè)詞匯到短語(yǔ)乃至文檔段落的不同檢索單元,以不同的粒度來(lái)平衡精確性與檢索復(fù)雜性。一些研究如FLARE采用主動(dòng)檢索方法,由語(yǔ)言模型觸發(fā),以生成低概率詞的句子為基礎(chǔ)進(jìn)行文檔檢索,并結(jié)合檢索上下文優(yōu)化生成結(jié)果。RETRO則利用塊級(jí)檢索邏輯,通過(guò)前一個(gè)塊的最近鄰居來(lái)指導(dǎo)下一個(gè)塊的生成,注意到為保持因果邏輯,生成過(guò)程需要確保僅使用前一個(gè)塊的信息。
結(jié)構(gòu)化數(shù)據(jù)的增強(qiáng)
結(jié)構(gòu)化數(shù)據(jù),如知識(shí)圖譜(KGs),提供高質(zhì)量的上下文并減少模型產(chǎn)生錯(cuò)誤幻象。RET-LLMs 利用過(guò)去的對(duì)話構(gòu)建知識(shí)圖譜記憶以供未來(lái)參考。SUGRE 采用圖神經(jīng)網(wǎng)絡(luò)(GNNs)來(lái)編碼相關(guān)KG子圖,通過(guò)多模態(tài)對(duì)比學(xué)習(xí)確保檢索到的事實(shí)與生成文本之間的一致性。KnowledGPT 生成知識(shí)庫(kù)(KB)搜索查詢(xún),并將知識(shí)存儲(chǔ)在個(gè)性化的基礎(chǔ)上,從而增強(qiáng)了RAG模型的知識(shí)豐富性和上下文性。
在RAG中利用LLMs生成的內(nèi)容
在RAG模型的發(fā)展中,研究人員探索了從LLMs內(nèi)部知識(shí)中獲取增強(qiáng)信息的方法,以克服外部輔助信息的局限。通過(guò)對(duì)問(wèn)題進(jìn)行分類(lèi)和選擇性地應(yīng)用檢索增強(qiáng)(SKR),替換傳統(tǒng)檢索器為L(zhǎng)LM生成器以產(chǎn)生更準(zhǔn)確上下文(GenRead),以及迭代建立無(wú)界記憶池以自我增強(qiáng)生成模型(Selfmem),這些創(chuàng)新做法極大地拓寬了數(shù)據(jù)源在RAG中的使用,目的是為了提升模型的整體性能和解決任務(wù)的有效性。
增強(qiáng)過(guò)程
在RAG領(lǐng)域的實(shí)踐中,一個(gè)單一的檢索步驟后接生成步驟可能導(dǎo)致“中間迷失”現(xiàn)象,即單次檢索可能帶來(lái)與關(guān)鍵信息不符的冗余內(nèi)容,影響生成質(zhì)量。對(duì)于需要多步推理的復(fù)雜問(wèn)題,這樣的單一檢索往往信息有限。為此,研究提出了迭代檢索、遞歸檢索和自適應(yīng)檢索等方法來(lái)優(yōu)化檢索過(guò)程,使其能夠獲取更深入、更相關(guān)的信息,特別是在處理復(fù)雜或多步查詢(xún)時(shí)。自適應(yīng)檢索則可以根據(jù)任務(wù)和上下文的特定需求動(dòng)態(tài)調(diào)整檢索過(guò)程,提升了檢索的靈活性和有效性。
迭代檢索
在RAG模型的迭代檢索過(guò)程中,為了為L(zhǎng)LMs提供更全面的知識(shí)庫(kù),系統(tǒng)會(huì)根據(jù)初始查詢(xún)和已生成的文本多次收集文檔。這種方法能夠增強(qiáng)答案生成的穩(wěn)固性,但它可能會(huì)因?yàn)橐蕾?lài)特定的詞匯序列來(lái)界定生成文本與檢索文檔的邊界而導(dǎo)致語(yǔ)義不連貫和不相關(guān)信息的積累。針對(duì)特定數(shù)據(jù)場(chǎng)景,研究者們采用了遞歸檢索和多跳檢索技術(shù),遞歸檢索依賴(lài)于結(jié)構(gòu)化索引來(lái)層次化處理數(shù)據(jù),多跳檢索則深入圖結(jié)構(gòu)化數(shù)據(jù)源提取關(guān)聯(lián)信息。此外,ITER-RETGEN等方法將檢索和生成融合在一起,通過(guò)檢索增強(qiáng)的生成和生成增強(qiáng)的檢索來(lái)處理特定任務(wù),從而在后續(xù)的迭代中生成更好的回應(yīng)。這些創(chuàng)新方法都在努力提升模型的性能和任務(wù)的有效性。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/evaluation/RetryQuery.html#retry-query-engine
遞歸檢索
遞歸檢索常用于信息檢索和NLP中,旨在通過(guò)迭代優(yōu)化搜索查詢(xún)來(lái)加深搜索結(jié)果的相關(guān)性和深度。這一過(guò)程通過(guò)反饋循環(huán)逐步精確至最關(guān)鍵的信息,從而增強(qiáng)搜索體驗(yàn)。例如,IRCoT利用思維鏈條來(lái)指導(dǎo)檢索,ToC創(chuàng)建澄清樹(shù)來(lái)優(yōu)化查詢(xún)中的模糊部分。遞歸檢索對(duì)于初始用戶(hù)需求不明確或信息需求專(zhuān)業(yè)化、細(xì)致的復(fù)雜搜索場(chǎng)景特別有效。這種方法的遞歸本質(zhì)促使其持續(xù)學(xué)習(xí)和適應(yīng)用戶(hù)需求,經(jīng)常能夠顯著提升用戶(hù)對(duì)搜索結(jié)果的滿意度。
自適應(yīng)檢索
自適應(yīng)檢索方法例如Flare和SelfRAG通過(guò)允許LLMs主動(dòng)決定最佳的檢索時(shí)機(jī)和內(nèi)容來(lái)改進(jìn)RAG框架,增強(qiáng)了檢索信息的效率和相關(guān)性。這些方法都是LLMs在操作中主動(dòng)判斷的更廣泛趨勢(shì)的一部分,如AutoGPT、Toolformer和Graph-Toolformer等模型代理所展示的。例如,Graph-Toolformer主動(dòng)地使用檢索器、應(yīng)用Self-Ask技術(shù)以及借助少量提示來(lái)啟動(dòng)搜索查詢(xún)。WebGPT集成了強(qiáng)化學(xué)習(xí)框架以訓(xùn)練GPT-3模型在文本生成時(shí)自主使用搜索引擎。Flare通過(guò)監(jiān)控生成過(guò)程中生成術(shù)語(yǔ)的概率來(lái)自動(dòng)化檢索時(shí)機(jī)。Self-RAG引入了“反思符號(hào)”,允許模型反思其輸出,并自主決定何時(shí)激活檢索,或由預(yù)定義閾值觸發(fā)。Self-RAG通過(guò)使用批評(píng)分?jǐn)?shù)來(lái)更新分?jǐn)?shù),使模型的行為更加定制化,并優(yōu)化了檢索決策過(guò)程。
LLM的優(yōu)化因其日益增長(zhǎng)的重要性而受到關(guān)注,提示工程、Fine-Tuning和RAG都有各自的特點(diǎn),選擇使用哪種方法應(yīng)基于特定場(chǎng)景的需求和每種方法的固有屬性。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/query_engine/flare_query_engine.html
RAG和Fine-Tuning的對(duì)比
RAG 類(lèi)似于給模型一本教科書(shū)用于特定信息的檢索,非常適合處理具體的查詢(xún)。而 FT 類(lèi)似于學(xué)生隨時(shí)間學(xué)習(xí)并內(nèi)化知識(shí),更適合重現(xiàn)特定的結(jié)構(gòu)、風(fēng)格或格式。FT 通過(guò)加強(qiáng)模型的基礎(chǔ)知識(shí)、調(diào)整輸出和傳授復(fù)雜指令來(lái)提高模型的表現(xiàn)和效率,但在融入新知識(shí)或快速迭代新使用場(chǎng)景方面相對(duì)較弱。
RAG 和 FT 并不互斥,實(shí)際上可以互補(bǔ),有助于在不同層次上提升模型的能力。在某些案例中,結(jié)合使用 RAG 和 FT 可能能夠?qū)崿F(xiàn)最優(yōu)性能。然而,涉及 RAG 和 FT 的優(yōu)化過(guò)程可能需要經(jīng)過(guò)多次迭代才能取得滿意的成效。
RAG效果評(píng)估
RAG的快速進(jìn)步和在自然語(yǔ)言處理領(lǐng)域的廣泛應(yīng)用使得RAG模型評(píng)估成為大型語(yǔ)言模型社區(qū)研究的一個(gè)重要領(lǐng)域。評(píng)估的核心目的是理解和優(yōu)化RAG模型在各種應(yīng)用場(chǎng)景中的性能。
過(guò)去,RAG模型的評(píng)估通常集中在它們?cè)谔囟ㄏ掠稳蝿?wù)中的表現(xiàn),并使用與任務(wù)相關(guān)的已建立評(píng)價(jià)指標(biāo),比如問(wèn)答任務(wù)的EM和F1分?jǐn)?shù),事實(shí)核查任務(wù)的準(zhǔn)確性指標(biāo)。像RALLE這樣的工具也是基于這些特定任務(wù)的度量標(biāo)準(zhǔn)進(jìn)行自動(dòng)評(píng)估的。
然而,目前缺少專(zhuān)門(mén)評(píng)估RAG模型獨(dú)特特性的研究。接下來(lái)的部分將從特定任務(wù)的評(píng)估方法轉(zhuǎn)向基于RAG獨(dú)特屬性的文獻(xiàn)綜合。這包括探討RAG評(píng)估的目標(biāo)、評(píng)估模型的不同方面,以及可用于這些評(píng)估的基準(zhǔn)和工具。目標(biāo)是提供一個(gè)關(guān)于RAG模型評(píng)估的全面概覽,并概述那些專(zhuān)門(mén)針對(duì)這些高級(jí)生成系統(tǒng)獨(dú)特方面的方法論。
評(píng)估對(duì)象
RAG模型的評(píng)估主要圍繞兩個(gè)關(guān)鍵組成部分展開(kāi):檢索模塊和生成模塊。這種劃分確保了對(duì)提供的上下文質(zhì)量和產(chǎn)生的內(nèi)容質(zhì)量的徹底評(píng)價(jià)。
- 檢索質(zhì)量 評(píng)估檢索質(zhì)量對(duì)于確定檢索組件獲取上下文的有效性至關(guān)重要。標(biāo)準(zhǔn)的來(lái)自搜索引擎、推薦系統(tǒng)和信息檢索系統(tǒng)領(lǐng)域的度量標(biāo)準(zhǔn)被用來(lái)衡量RAG檢索模塊的性能。常用的度量指標(biāo)包括命中率(Hit Rate)、平均倒數(shù)排名(MRR)、歸一化折扣累積增益(NDCG)等。
- 生成質(zhì)量 生成質(zhì)量的評(píng)估側(cè)重于生成器從檢索上下文中合成連貫且相關(guān)答案的能力。這種評(píng)估可以根據(jù)內(nèi)容的目標(biāo)分為兩類(lèi):未標(biāo)記內(nèi)容和標(biāo)記內(nèi)容。對(duì)于未標(biāo)記內(nèi)容,評(píng)估范圍包括生成答案的忠實(shí)度、相關(guān)性和無(wú)害性。相反,對(duì)于標(biāo)記內(nèi)容,重點(diǎn)是模型產(chǎn)生的信息的準(zhǔn)確性。此外,檢索和生成質(zhì)量評(píng)估都可以通過(guò)手動(dòng)或自動(dòng)評(píng)估方法進(jìn)行。
Evaluation Aspects
現(xiàn)代RAG模型的評(píng)估實(shí)踐強(qiáng)調(diào)三個(gè)主要質(zhì)量得分和四個(gè)基本能力,這些綜合信息共同構(gòu)成了對(duì)RAG模型兩個(gè)主要目標(biāo)——檢索和生成的評(píng)估。
Quality Scores
RAG模型的評(píng)估實(shí)踐關(guān)注三個(gè)主要的質(zhì)量評(píng)分:上下文相關(guān)性、答案忠實(shí)度和答案相關(guān)性。這些評(píng)分標(biāo)準(zhǔn)從多個(gè)角度評(píng)價(jià)RAG模型在信息檢索和生成過(guò)程中的性能:
- 上下文相關(guān)性評(píng)估檢索到的上下文的準(zhǔn)確性和具體性,確保它與問(wèn)題相關(guān),從而減少處理不相關(guān)內(nèi)容的開(kāi)銷(xiāo)。
- 答案忠實(shí)度確保生成的答案忠于檢索到的上下文,保持與原始信息的一致性,防止產(chǎn)生矛盾。
- 答案相關(guān)性確保生成的答案直接關(guān)聯(lián)到提出的問(wèn)題,有效地解答核心詢(xún)問(wèn)。這些質(zhì)量評(píng)分共同為評(píng)估RAG模型在處理和生成信息方面的有效性提供了全面的視角
需要的能力
RAG模型的評(píng)估覆蓋了指示其適應(yīng)性和效率的四個(gè)重要能力:噪聲魯棒性、負(fù)面拒絕、信息整合和反事實(shí)魯棒性。這些能力對(duì)于評(píng)價(jià)模型在多樣化挑戰(zhàn)和復(fù)雜情境下的表現(xiàn)至關(guān)重要。
- 噪聲魯棒性關(guān)注模型處理噪聲文檔的能力。
- 負(fù)面拒絕評(píng)估模型在檢索文檔無(wú)法提供必要知識(shí)時(shí)拒絕回應(yīng)的能力。
- 信息整合考察模型綜合多個(gè)文檔信息以回答復(fù)雜問(wèn)題的技能。
- 反事實(shí)魯棒性測(cè)試模型識(shí)別并忽視文檔中已知錯(cuò)誤的能力。
上下文相關(guān)性和噪聲魯棒性是評(píng)估檢索質(zhì)量的重要指標(biāo),而答案忠實(shí)度、答案相關(guān)性、負(fù)面拒絕、信息整合和反事實(shí)魯棒性則是評(píng)估生成質(zhì)量的關(guān)鍵。這些評(píng)估方面的具體度量標(biāo)準(zhǔn)在文獻(xiàn)中進(jìn)行了總結(jié),但目前這些度量還不是成熟或標(biāo)準(zhǔn)化的評(píng)估方法。盡管如此,一些研究也已經(jīng)開(kāi)發(fā)出針對(duì)RAG模型特性的定制度量指標(biāo)。
評(píng)估的Benchmarks和工具
這一部分介紹了RAG模型的評(píng)估框架,該框架包含基準(zhǔn)測(cè)試和自動(dòng)評(píng)估工具。這些工具提供用于衡量RAG模型性能的定量指標(biāo),并且?guī)椭玫乩斫饽P驮诟鱾€(gè)評(píng)估方面的能力。知名的基準(zhǔn)測(cè)試如RGB和RECALL專(zhuān)注于評(píng)價(jià)RAG模型的關(guān)鍵能力,而最新的自動(dòng)化工具如RAGAS、ARES和TruLens則利用大型語(yǔ)言模型來(lái)評(píng)定質(zhì)量得分。這些工具和基準(zhǔn)測(cè)試共同形成了一個(gè)為RAG模型提供系統(tǒng)評(píng)估的堅(jiān)實(shí)框架,相關(guān)細(xì)節(jié)在下表中有所總結(jié)。
展望
RAG面臨的挑戰(zhàn)
盡管RAG技術(shù)已經(jīng)取得了重大進(jìn)展,但仍有若干挑戰(zhàn)需要深入研究。其中包括如何處理LLMs的上下文窗口大小限制、提升RAG的魯棒性、探索結(jié)合RAG和微調(diào)(RAG+FT)的混合方法、擴(kuò)展LLMs在RAG框架中的角色、研究規(guī)模法則在RAG中的適用性,以及實(shí)現(xiàn)生產(chǎn)就緒的RAG。特別地,需要在RAG模型中找到平衡上下文長(zhǎng)度的方法,提高對(duì)抗性或反事實(shí)輸入的抵抗力,并確定RAG與微調(diào)的最佳整合方式。同時(shí),需要確保RAG在生產(chǎn)環(huán)境中的實(shí)用性和數(shù)據(jù)安全,解決檢索效率和文檔召回率的問(wèn)題。這些挑戰(zhàn)的探索和解決將推動(dòng)RAG技術(shù)向前發(fā)展。
RAG的模態(tài)擴(kuò)展
RAG技術(shù)已經(jīng)發(fā)展到不僅限于文本問(wèn)答,而是包含圖像、音頻、視頻和代碼等多種數(shù)據(jù)模態(tài)。這一擴(kuò)展催生了在各個(gè)領(lǐng)域整合RAG概念的創(chuàng)新多模態(tài)模型。例如,RA-CM3作為一個(gè)多模態(tài)模型,能夠檢索和生成文本與圖像;BLIP-2利用圖像編碼器和LLMs進(jìn)行視覺(jué)語(yǔ)言預(yù)訓(xùn)練,實(shí)現(xiàn)圖像到文本的轉(zhuǎn)換;而"Visualize Before You Write"方法則展示了在開(kāi)放式文本生成任務(wù)中的潛力。音頻和視頻方面的GSS方法和UEOP實(shí)現(xiàn)了數(shù)據(jù)的音頻翻譯和自動(dòng)語(yǔ)音識(shí)別,而Vid2Seq通過(guò)引入時(shí)間標(biāo)記幫助語(yǔ)言模型預(yù)測(cè)事件邊界和文本描述。在代碼領(lǐng)域,RBPS通過(guò)檢索與開(kāi)發(fā)者目標(biāo)一致的代碼示例擅長(zhǎng)處理小規(guī)模學(xué)習(xí)任務(wù),而CoK方法則通過(guò)整合知識(shí)圖譜中的事實(shí)來(lái)提高問(wèn)答任務(wù)的性能。這些進(jìn)展表明,RAG技術(shù)在多模態(tài)數(shù)據(jù)處理和應(yīng)用方面具有巨大的潛力和研究?jī)r(jià)值。
RAG的生態(tài)
下游任務(wù)和評(píng)估
RAG技術(shù)在豐富語(yǔ)言模型處理復(fù)雜查詢(xún)和生成詳盡回答方面表現(xiàn)出極大潛力,它已經(jīng)在開(kāi)放式問(wèn)題回答和事實(shí)驗(yàn)證等多種下游任務(wù)中展現(xiàn)了優(yōu)異的性能。RAG不但提升了回答的精準(zhǔn)度和關(guān)聯(lián)性,還增強(qiáng)了回答的多樣性和深度。特別在醫(yī)學(xué)、法律和教育等專(zhuān)業(yè)領(lǐng)域,RAG可能會(huì)減少培訓(xùn)成本,提升與傳統(tǒng)微調(diào)方法相比的性能。為了最大化RAG在各種任務(wù)中的效用,完善其評(píng)估框架至關(guān)重要,包括開(kāi)發(fā)更加細(xì)致的評(píng)估指標(biāo)和工具。同時(shí),增強(qiáng)RAG模型的可解釋性是一個(gè)關(guān)鍵目標(biāo),以便用戶(hù)能更好理解模型生成回答的邏輯,促進(jìn)RAG應(yīng)用的信任度和透明度。
技術(shù)棧
RAG生態(tài)系統(tǒng)的發(fā)展顯著受到其技術(shù)棧進(jìn)化的影響。隨著ChatGPT的興起,LangChain和LLamaIndex等關(guān)鍵工具因其提供的豐富RAG相關(guān)API而快速流行,成為L(zhǎng)LMs領(lǐng)域的核心工具。即便新興技術(shù)棧在功能上不如它們,也通過(guò)專(zhuān)業(yè)化的服務(wù)來(lái)突顯差異化,例如Flowise AI通過(guò)低代碼途徑使用戶(hù)能夠輕松部署AI應(yīng)用。同樣,HayStack、Meltano和Cohere Coral等技術(shù)因其獨(dú)到的貢獻(xiàn)而備受矚目。
傳統(tǒng)軟件和云服務(wù)提供商也在拓展服務(wù)以提供RAG為中心的解決方案,如Weaviate的Verba和亞馬遜的Kendra。RAG技術(shù)的演變呈現(xiàn)出不同的專(zhuān)業(yè)化方向,包括定制化、簡(jiǎn)化和專(zhuān)業(yè)化,以更好地適應(yīng)生產(chǎn)環(huán)境。RAG模型及其技術(shù)棧的共同成長(zhǎng)表現(xiàn)在技術(shù)進(jìn)步為基礎(chǔ)設(shè)施設(shè)定了新的標(biāo)準(zhǔn),技術(shù)棧的增強(qiáng)又推動(dòng)了RAG能力的進(jìn)一步演化。RAG工具包正在成為企業(yè)應(yīng)用的基礎(chǔ)技術(shù)棧,但一個(gè)完全集成的綜合平臺(tái)仍需要進(jìn)一步創(chuàng)新和發(fā)展。
實(shí)踐
LlamaIndex實(shí)踐
本文中所提到的很多RAG的優(yōu)化方案,都可以在LlamaIndex中找到對(duì)應(yīng)的實(shí)現(xiàn),LlamaIndex官方也出了一份官方的指南,詳細(xì)介紹了一些模塊的最佳實(shí)踐經(jīng)驗(yàn)。更多詳情可以參考A Cheat Sheet and Some Recipes For Building Advanced RAG。
下圖列舉了一些RAG技術(shù)在llamaindex中對(duì)應(yīng)的代碼模塊,可以參考llamaindex文檔進(jìn)一步嘗試。
業(yè)界實(shí)踐
百川智能的RAG方案
百川智能的RAG方案流程包括以下幾個(gè)關(guān)鍵步驟:
- 提升上下文窗口容量:百川智能推出了Baichuan2-192K模型,它具有業(yè)界領(lǐng)先的192K超長(zhǎng)上下文窗口,能一次處理高達(dá)35萬(wàn)漢字的文本。
- 搜索增強(qiáng)知識(shí)庫(kù):將向量數(shù)據(jù)庫(kù)升級(jí)為搜索增強(qiáng)知識(shí)庫(kù),使得大模型在響應(yīng)用戶(hù)查詢(xún)時(shí)能夠訪問(wèn)到互聯(lián)網(wǎng)實(shí)時(shí)信息和企業(yè)的完整知識(shí)庫(kù)。
- 用戶(hù)意圖理解和搜索查詢(xún)優(yōu)化:在用戶(hù)提出的Prompt(查詢(xún))基礎(chǔ)上,使用自研大模型進(jìn)行微調(diào),將連續(xù)多輪、口語(yǔ)化的用戶(hù)查詢(xún)轉(zhuǎn)換為搜索引擎更容易理解的關(guān)鍵詞或語(yǔ)義結(jié)構(gòu)。
- 復(fù)雜Prompt拆分與并行檢索:借鑒Meta的CoVe技術(shù),將復(fù)雜的Prompt拆分為多個(gè)可以并行檢索的查詢(xún),使大模型能針對(duì)每個(gè)查詢(xún)進(jìn)行定向知識(shí)庫(kù)搜索。
- 進(jìn)一步理解用戶(hù)意圖:使用TSF(Think Step-Further)技術(shù)來(lái)推斷用戶(hù)輸入背后的更深層問(wèn)題,從而更全面地理解用戶(hù)意圖并引導(dǎo)模型提供更有價(jià)值的答案。
6.向量檢索、稀疏檢索、Rerank的結(jié)合:為了提高知識(shí)獲取效率和準(zhǔn)確性,百川智能結(jié)合使用了向量檢索與稀疏檢索,形成了一種混合檢索方式,以提高目標(biāo)文檔的召回率。
7.大模型自省技術(shù):在通用RAG基礎(chǔ)上,百川智能創(chuàng)新性地提出了Self-Critique技術(shù),讓大模型能夠根據(jù)Prompt,對(duì)搜索回來(lái)的內(nèi)容進(jìn)行自省和篩選,以確保提供與用戶(hù)查詢(xún)最匹配、最優(yōu)質(zhì)的答案。
8.模型與搜索的深度融合:通過(guò)這些步驟,百川智能實(shí)現(xiàn)了大模型與搜索的緊密結(jié)合,為用戶(hù)提供定制化解決方案,有效降低成本、提升性能,并持續(xù)增值企業(yè)專(zhuān)有知識(shí)庫(kù)。
百川智能的RAG方案顯著地改善了大模型在行業(yè)垂直場(chǎng)景中的應(yīng)用,通過(guò)提供一種更低成本、更高效的定制化大模型解決方案,提升了大模型技術(shù)的落地潛力,并有望引領(lǐng)大模型產(chǎn)業(yè)走向一個(gè)全新的階段。
OpenAI案例
??https://blog.langchain.dev/applying-openai-rag/??
??https://www.youtube.com/watch?v=ahnGLM-RC1Y??
OpenAI展示了一個(gè)使用檢索增強(qiáng)生成(RAG)技術(shù)來(lái)優(yōu)化問(wèn)題解答系統(tǒng)的案例。起初,系統(tǒng)僅僅通過(guò)基于余弦相似度的檢索方案達(dá)到45%的準(zhǔn)確率。為了提高性能,嘗試了多種策略,如HyDE檢索,它通過(guò)生成虛擬答案并用其檢索相關(guān)段落,以及微調(diào)嵌入模型來(lái)調(diào)整嵌入空間。雖然這些方法提高了準(zhǔn)確性,但由于成本和速度的問(wèn)題,最終并未被采用。通過(guò)調(diào)整數(shù)據(jù)分片和嵌入,準(zhǔn)確率提升至65%;進(jìn)一步通過(guò)Rerank和分類(lèi)不同類(lèi)型的問(wèn)題,準(zhǔn)確率提升至85%。最后,通過(guò)prompt工程、引入工具使用和查詢(xún)擴(kuò)展等方法,將準(zhǔn)確率提高到了98%。在整個(gè)過(guò)程中,他們并沒(méi)有進(jìn)行大模型的微調(diào),并強(qiáng)調(diào)了解決問(wèn)題的關(guān)鍵在于檢索系統(tǒng)能夠提供正確的上下文信息。
總結(jié)
RAG技術(shù)通過(guò)結(jié)合語(yǔ)言模型中的參數(shù)化知識(shí)和外部知識(shí)庫(kù)中的非參數(shù)化數(shù)據(jù),顯著提升了大型語(yǔ)言模型(LLMs)的能力,特別是在處理復(fù)雜查詢(xún)和生成詳細(xì)響應(yīng)方面。RAG技術(shù)經(jīng)歷了從初級(jí)到高級(jí)再到模塊化的演進(jìn),其中高級(jí)RAG通過(guò)引入查詢(xún)重寫(xiě)和塊重新排序等復(fù)雜架構(gòu)元素,提升了性能和可解釋性。RAG與微調(diào)和強(qiáng)化學(xué)習(xí)等其他AI方法的整合,進(jìn)一步擴(kuò)展了其功能。在內(nèi)容檢索方面,采用結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)源的混合方法正成為趨勢(shì)。RAG的應(yīng)用范圍正在擴(kuò)展到多模態(tài)數(shù)據(jù),如圖像、視頻和代碼,突出了其在AI部署方面的實(shí)際意義。
RAG生態(tài)系統(tǒng)的增長(zhǎng)表現(xiàn)在以RAG為中心的AI應(yīng)用的增加和支持工具的發(fā)展。隨著RAG應(yīng)用領(lǐng)域的擴(kuò)張,提煉評(píng)估方法以跟上其進(jìn)化變得迫切必要,確保性能評(píng)估的準(zhǔn)確性和代表性對(duì)于充分捕捉RAG在AI研究和開(kāi)發(fā)中的貢獻(xiàn)至關(guān)重要。
本文轉(zhuǎn)自AI生成未來(lái),作者:Meta
