論文地址:https://arxiv.org/pdf/2312.10997.pdf

? ? ? 大型語言模型(LLMs)展示了強(qiáng)大的能力,但在實(shí)際應(yīng)用中仍面臨挑戰(zhàn),如幻覺現(xiàn)象、知識更新緩慢,以及在回答中缺乏透明度。檢索增強(qiáng)生成(RAG)指的是在使用LLMs回答問題之前,從外部知識庫中檢索相關(guān)信息。RAG已被證明能顯著提高答案的準(zhǔn)確性,減少模型的幻覺現(xiàn)象,特別是對于知識密集型任務(wù)。通過引用來源,用戶可以驗證答案的準(zhǔn)確性,并增加對模型輸出的信任。它還促進(jìn)了知識更新和特定領(lǐng)域知識的引入。RAG有效地結(jié)合了LLMs的參數(shù)化知識和非參數(shù)化的外部知識庫,使其成為實(shí)施大型語言模型的最重要方法之一。本文概述了LLMs時代RAG的發(fā)展范式,總結(jié)了三種范式:Naive RAG、Advanced RAGModular RAG。論文對RAG的三個主要組成部分的總結(jié)和組織:檢索器、生成器增強(qiáng)方法,以及每個組件中的關(guān)鍵技術(shù)。此外,還討論了如何評估RAG模型的有效性,介紹了RAG的兩種評估方法,強(qiáng)調(diào)了評估的關(guān)鍵指標(biāo)和能力,并提出了最新的自動評估框架。最后,從垂直優(yōu)化、橫向可擴(kuò)展性以及RAG的技術(shù)棧和生態(tài)系統(tǒng)三個方面介紹了潛在的未來研究方向。

一、介紹

      大型語言模型(LLMs)在自然語言處理(NLP)領(lǐng)域的表現(xiàn)超越了之前任何模型。GPT系列模型、LLama系列模型、Gemini以及其他大型語言模型在多個評估基準(zhǔn)上展現(xiàn)了卓越的語言和知識掌握能力,超越了人類水平。

? ? ? 然而,大型語言模型也顯示出許多缺點(diǎn)。它們常常制造虛假事實(shí),在處理特定領(lǐng)域或高度專業(yè)化的查詢時缺乏知識。例如,當(dāng)所需信息超出模型訓(xùn)練數(shù)據(jù)的范圍或需要最新數(shù)據(jù)時,LLM可能無法提供準(zhǔn)確的答案。這一限制在將生成型人工智能部署到現(xiàn)實(shí)世界的生產(chǎn)環(huán)境中構(gòu)成挑戰(zhàn),因為盲目使用黑盒LLM可能不夠。

       傳統(tǒng)上,神經(jīng)網(wǎng)絡(luò)通過微調(diào)模型以參數(shù)化知識來適應(yīng)特定領(lǐng)域或?qū)S行畔?/strong>。雖然這種技術(shù)取得了顯著成果,但它需要大量的計算資源,成本高昂,并需要專業(yè)知識,使其適應(yīng)性較差。參數(shù)化知識和非參數(shù)化知識發(fā)揮著不同的作用。參數(shù)化知識通過訓(xùn)練LLMs獲得,并存儲在神經(jīng)網(wǎng)絡(luò)權(quán)重中,代表了模型對訓(xùn)練數(shù)據(jù)的理解和概括,構(gòu)成生成回應(yīng)的基礎(chǔ)。另一方面,非參數(shù)化知識存在于外部知識源中,如向量數(shù)據(jù)庫,不直接編碼到模型中,而是作為可更新的補(bǔ)充信息。非參數(shù)化知識使LLMs能夠訪問和利用最新或特定領(lǐng)域的信息,提高回應(yīng)的準(zhǔn)確性和相關(guān)性。

? ? ? ?純參數(shù)化的語言模型(LLMs)將從大量語料庫中獲得的世界知識存儲在模型的參數(shù)中。然而,這類模型存在局限性。首先,難以保留訓(xùn)練語料中的所有知識,尤其是較不常見和更具體的知識。其次,由于模型參數(shù)無法動態(tài)更新,參數(shù)化知識隨時間容易過時。最后,參數(shù)的擴(kuò)展導(dǎo)致訓(xùn)練和推理的計算開銷增加。為了解決純參數(shù)化模型的限制,語言模型可以采用半?yún)?shù)化方法,通過將非參數(shù)化語料庫數(shù)據(jù)庫與參數(shù)化模型整合。這種方法被稱為檢索增強(qiáng)生成(RAG)。

       檢索增強(qiáng)生成(RAG)這一術(shù)語最初由[Lewis et al., 2020]引入。它結(jié)合了預(yù)訓(xùn)練的檢索器和預(yù)訓(xùn)練的seq2seq模型(生成器),并進(jìn)行端到端微調(diào),以更可解釋和模塊化的方式捕獲知識。在大型模型出現(xiàn)之前,RAG主要專注于端到端模型的直接優(yōu)化。檢索方面常見的做法是密集檢索,如使用基于向量的密集通道檢索(DPR),以及在生成方面訓(xùn)練較小的模型。由于整體參數(shù)規(guī)模較小,檢索器和生成器通常會進(jìn)行同步的端到端訓(xùn)練或微調(diào)。

? ? ? ?自ChatGPT等LLM出現(xiàn)后,生成式語言模型成為主流,在各種語言任務(wù)中展現(xiàn)出令人印象深刻的性能。然而,LLMs仍面臨幻覺、知識更新和數(shù)據(jù)相關(guān)問題。這影響了LLMs的可靠性,在某些嚴(yán)肅任務(wù)場景中,尤其是需要訪問大量知識的知識密集型任務(wù)中,LLMs表現(xiàn)不佳,如開放領(lǐng)域問答和常識推理。參數(shù)內(nèi)的隱含知識可能不完整且不足。

? ? ? ?后續(xù)研究發(fā)現(xiàn),將RAG引入大型模型的上下文學(xué)習(xí)(ICL)中可以緩解上述問題,具有顯著且易于實(shí)現(xiàn)的效果。在推理過程中,RAG動態(tài)地從外部知識源檢索信息,使用檢索到的數(shù)據(jù)作為參考來組織答案。這顯著提高了回應(yīng)的準(zhǔn)確性和相關(guān)性,有效解決了LLMs中存在的幻覺問題。這種技術(shù)在LLM問世后迅速受到關(guān)注,已成為改善聊天機(jī)器人和使LLM更實(shí)用的最熱門技術(shù)之一。通過將事實(shí)知識與LLMs的訓(xùn)練參數(shù)分離,RAG巧妙地結(jié)合了生成模型的強(qiáng)大能力和檢索模塊的靈活性,為純參數(shù)化模型固有的知識不完整和不足問題提供了有效的解決方案。

本文系統(tǒng)地回顧和分析了RAG的當(dāng)前研究方法和未來發(fā)展路徑,將其歸納為三個主要范式:Naive RAG、Advanced RAG和Modular RAG。隨后,論文提供了三個核心組成部分的綜合總結(jié):檢索、增強(qiáng)和生成,突出了RAG的改進(jìn)方向和當(dāng)前技術(shù)特點(diǎn)。在增強(qiáng)方法部分,當(dāng)前的工作被大致為三個方面:RAG的增強(qiáng)階段、增強(qiáng)數(shù)據(jù)源增強(qiáng)過程。此外,論文總結(jié)了評估系統(tǒng)、適用場景和與RAG相關(guān)的其他內(nèi)容。通過本文,讀者將對大型模型和檢索增強(qiáng)生成有更全面和系統(tǒng)的了解。他們將熟悉知識檢索增強(qiáng)的演變路徑和關(guān)鍵技術(shù),能夠辨別不同技術(shù)的優(yōu)缺點(diǎn),識別適用場景,并探索當(dāng)前實(shí)際應(yīng)用中的典型案例。值得注意的是,在以前的工作中,F(xiàn)eng et al.[2023b]系統(tǒng)回顧了將大型模型與知識結(jié)合的方法、應(yīng)用和未來趨勢,主要關(guān)注知識編輯和檢索增強(qiáng)方法。Zhu et al.[2023]介紹了大型語言模型檢索系統(tǒng)增強(qiáng)的最新進(jìn)展,特別關(guān)注檢索系統(tǒng)。同時,Asai et al.[2023a]專注于“什么”、“何時”、“如何”的問題,分析并闡釋了基于檢索的語言模型的關(guān)鍵過程。與之相比,本文旨在系統(tǒng)地概述檢索增強(qiáng)生成(RAG)的整個過程,并特別關(guān)注通過知識檢索增強(qiáng)大型語言模型生成的研究。

RAG算法和模型的發(fā)展在圖1中進(jìn)行了說明。在時間線上,大部分與RAG相關(guān)的研究都是在2020年之后出現(xiàn)的,2022年12月ChatGPT發(fā)布成為一個重要的轉(zhuǎn)折點(diǎn)。自ChatGPT發(fā)布以來,自然語言處理領(lǐng)域的研究進(jìn)入了大模型時代。Naive RAG技術(shù)迅速獲得重視,導(dǎo)致相關(guān)研究數(shù)量的快速增加。在增強(qiáng)策略方面,自RAG概念提出以來,就一直在進(jìn)行預(yù)訓(xùn)練和監(jiān)督微調(diào)階段的強(qiáng)化研究。然而,在推理階段的強(qiáng)化研究大多出現(xiàn)在LLMs時代。這主要是由于高性能大模型的高訓(xùn)練成本。研究人員試圖通過在推理階段包含RAG模塊,以成本有效的方式將外部知識融入模型生成中。關(guān)于增強(qiáng)數(shù)據(jù)的使用,早期的RAG主要關(guān)注于非結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用,特別是在開放域問答的背景下。隨后,檢索的知識來源范圍擴(kuò)展,使用高質(zhì)量數(shù)據(jù)作為知識來源有效地解決了大模型中錯誤知識內(nèi)化和幻覺等問題。這包括結(jié)構(gòu)化知識,知識圖譜是一個代表性的例子。最近,自我檢索引起了更多的關(guān)注,這涉及到挖掘LLMs本身的知識以增強(qiáng)它們的性能。

        本論文的后續(xù)章節(jié)結(jié)構(gòu)如下:第二章介紹RAG的背景。第三章介紹RAG的主流范式。第四章分析RAG中的檢索器。第五章著重介紹RAG中的生成器。第六章強(qiáng)調(diào)介紹RAG中的增強(qiáng)方法。第七章介紹RAG的評估系統(tǒng)。第八章提供了對RAG未來發(fā)展趨勢的展望。最后,在第九章中,總結(jié)了本綜述的主要內(nèi)容。

二、背景

       在本章中,我們將介紹RAG的定義,如以及RAG與諸如微調(diào)之類的其他模型優(yōu)化技術(shù)之間的比較。

2.1 定義

       RAG的含義隨著技術(shù)的發(fā)展而擴(kuò)展。在大語言模型時代,RAG的具體定義是指模型,當(dāng)回答問題或生成文本,首先從大量文檔中檢索相關(guān)信息。隨后,它利用這些檢索到的信息來生成響應(yīng)或文本,從而提高預(yù)測的質(zhì)量。RAG方法允許開發(fā)人員避免對為每個特定任務(wù)重新訓(xùn)練整個大型模型。相反,他們可以附加一個知識庫,提供額外的向模型輸入信息并提高準(zhǔn)確性其回應(yīng)。RAG方法特別適合用于知識密集型任務(wù)??傊?,RAG系統(tǒng)由兩個關(guān)鍵階段組成:

  1. 利用編碼模型基于問題檢索相關(guān)文檔,如BM25、DPR、ColBERT和類似方法;
  2. 生成階段:使用檢索到的上下文作為條件,系統(tǒng)生成文本。

2.2 RAG與微調(diào)

? ? ? ?在大型語言模型(LLM)的優(yōu)化中除了RAG,另一種重要的優(yōu)化技術(shù)正在進(jìn)行微調(diào)。

       RAG類似于為模型提供教科書,允許它基于特定查詢檢索信息。這該方法適用于模型需要回答特定的詢問或解決特定的信息檢索任務(wù)。然而,RAG不適合教模型來理解廣泛的領(lǐng)域或?qū)W習(xí)新的語言,格式或樣式。

       微調(diào)類似于讓學(xué)生通過廣泛的學(xué)習(xí)內(nèi)化知識。這種方法當(dāng)模型需要復(fù)制特定的結(jié)構(gòu)、樣式或格式時非常有用。微調(diào)可以提高非微調(diào)模型的性能,并使交互更加頻繁有效率的它特別適合強(qiáng)調(diào)基礎(chǔ)模型中的現(xiàn)有知識,修改或自定義模型的輸出,并向提供復(fù)雜的指令模型然而,微調(diào)不適合合并模型中的新知識或需要的情況新用例的快速迭代。

? ? ? ?微調(diào)類似于讓學(xué)生通過長期學(xué)習(xí)內(nèi)化知識。此方法適用當(dāng)模型需要復(fù)制特定的結(jié)構(gòu)、樣式等時,或格式。微調(diào)可以實(shí)現(xiàn)優(yōu)于的性能非微調(diào)模型和交互更有效。微調(diào)特別適合強(qiáng)調(diào)現(xiàn)有基本模型中的知識,修改或自定義模型的輸出,并用復(fù)雜的指令指示模型。但是,微調(diào)不適合添加新的為模型或需要快速迭代新用例的場景提供知識。RAG和微調(diào)(FT)的比較可參考如下表1。

RAG和微調(diào)并不互斥,但可以相互補(bǔ)充,可以在不同level增強(qiáng)模型。在某些情況下,將這兩者結(jié)合起來技術(shù)可以實(shí)現(xiàn)最佳的模型性能。使用RAG進(jìn)行優(yōu)化和微調(diào)的整個過程可能需要多次迭代才能獲得令人滿意的結(jié)果?,F(xiàn)有研究已經(jīng)證明了檢索增強(qiáng)生成(RAG)的顯著優(yōu)勢與其他優(yōu)化大型語言模型的方法相比:

三、RAG框架

? ? ? ?RAG的研究范式在不斷演變。本章主要介紹了RAG研究范式的演變,我們將其分為三種類型:Naive?RAGAdvanced RAGModular RAG。盡管早期RAG具有成本優(yōu)勢,比原生LLM更好;它仍然面臨許多不足。Advanced RAGModular?RAG的出現(xiàn)旨在解決Naive RAG的具體缺陷。

3.1 Naive RAG

? ? ? ?Naive RAG研究范式代表了最早的方法論在廣泛使用后不久就變得突出采用ChatGPT。Naive RAG的經(jīng)典過程是:索引檢索生成。Naive RAG概括為“檢索”-“讀取”框架。

索引

      從源獲取數(shù)據(jù)并為其建立索引的管道通常是離線處理的。具體來說,數(shù)據(jù)索引的構(gòu)建包括以下步驟:

  1. 數(shù)據(jù)索引:清洗和提取原始數(shù)據(jù)、轉(zhuǎn)換諸如PDF、HTML、Word、Markdown等不同文件格式轉(zhuǎn)換為純文本;
  2. 分塊:將加載的文本分為較小的塊。因為語言模型通常有上下文長度有限制,因此有必要創(chuàng)建盡可能小的文本塊(不是越小越好);
  3. 嵌入和創(chuàng)建索引:通過語言模型將文本編碼為向量。得到的向量將用于后續(xù)的檢索過程,以計算向量和問題向量之間的相似性。嵌入模型需要很高的推理速度。由于需要對大量的語料庫進(jìn)行編碼,并在用戶提問時實(shí)時對問題進(jìn)行編碼,因此模型的參數(shù)大小不應(yīng)太大。生成嵌入后,下一步是創(chuàng)建索引,存儲原始語料庫塊,并以鍵值對的形式進(jìn)行嵌入,以便在未來快速頻繁地搜索。

檢索

       給定用戶的輸入,使用與第一個stage相同的模型把query轉(zhuǎn)換為向量。然后計算query嵌入和語料庫中的文檔塊嵌入的相似度。選擇前K個相似度最高的文檔塊作為增強(qiáng)上下文信息。

生成

      把給定的問題和相關(guān)文檔合并為新的Prompt提示。然后,大型語言模型基于所提供的信息來回答所述問題。它會判斷是基于大型模型知識還是僅基于給定信息進(jìn)行回答,取決于不同任務(wù)的需要。如果有對話歷史信息,也可以合并到Prompt中進(jìn)行多輪對話。

Naive RAG的缺點(diǎn)

       Naive RAG在三個領(lǐng)域面臨主要挑戰(zhàn):檢索質(zhì)量、響應(yīng)生成質(zhì)量增強(qiáng)過程。

      關(guān)于檢索質(zhì)量,問題是多方面的。主要問題是精度低,檢索集中并非所有塊都與查詢相關(guān),這會導(dǎo)致潛在的幻覺問題。第二個問題是低召回率,當(dāng)所有相關(guān)塊沒有全部被召回時,LLM就沒有獲得足夠的上下文來合成答案。此外,過時的信息帶來了另一個挑戰(zhàn),即數(shù)據(jù)冗余或過時的數(shù)據(jù)可能導(dǎo)致不準(zhǔn)確的檢索結(jié)果。

       就生成響應(yīng)的質(zhì)量而言,問題同樣是多樣化的?;糜X是一個突出的問題,模型編造了一個上下文中不存在的答案。另一個問題是召回的信息可能是不相關(guān)的,導(dǎo)致模型生成的答案無法解決查詢問題。此外,毒性或偏見,即模型產(chǎn)生有害或冒犯性反應(yīng),是另一個問題。

       最后,增強(qiáng)過程也面臨一些挑戰(zhàn)。根據(jù)當(dāng)前生成任務(wù),從相關(guān)段落檢索文檔是至關(guān)重要的。如果處理不當(dāng),輸出可能會顯得不連貫或不連貫。冗余和重復(fù)是另一個問題,特別是當(dāng)多個檢索到的段落包含相似的信息,導(dǎo)致生成步驟中的內(nèi)容重復(fù)時。此外,確定多個檢索到的段落對生成任務(wù)的重要性或相關(guān)性具有挑戰(zhàn)性,并且擴(kuò)充過程需要平衡每個段落的值適當(dāng)。檢索到的內(nèi)容也可能來自不同的寫作風(fēng)格或語調(diào),增強(qiáng)過程需要調(diào)和這些差異以確保輸出的一致性。最后,生成模型可能過度依賴增強(qiáng)信息,導(dǎo)致輸出僅重復(fù)檢索到的內(nèi)容,而不提供新的價值或合成信息。

3.2 Advanced RAG

       Advanced RAG針對Naive RAG的不足進(jìn)行了有針對性的改進(jìn)。在檢索生成的質(zhì)量方面,Advanced RAG結(jié)合了檢索前和檢索后的方法。為了解決Naive RAG遇到的索引問題,Advanced RAG通過滑動窗口、細(xì)粒度分割和元數(shù)據(jù)等方法優(yōu)化了索引。與此同時,它已經(jīng)提出了優(yōu)化檢索過程的各種方法。在具體實(shí)現(xiàn)方面,Advanced RAG可以通過管道或端到端的方式進(jìn)行調(diào)整。

3.2.1 預(yù)檢索過程

       優(yōu)化數(shù)據(jù)索引的目的是提高索引內(nèi)容的質(zhì)量。目前,有五種主要策略用于此目的:增加索引數(shù)據(jù)的粒度、優(yōu)化索引結(jié)構(gòu)、添加元數(shù)據(jù)、對齊優(yōu)化混合檢索

  1. 增強(qiáng)數(shù)據(jù)粒度:預(yù)索引優(yōu)化的目標(biāo)是為了提高文本的標(biāo)準(zhǔn)化、一致性,并確保事實(shí)的準(zhǔn)確性以及上下文豐富性,以保證RAG系統(tǒng)的性能。文本標(biāo)準(zhǔn)化包括去除不相關(guān)的信息和特殊字符,以提高檢索器的效率。就一致性而言,主要任務(wù)是消除實(shí)體和術(shù)語中的歧義,同時消除重復(fù)或冗余信息,以簡化檢索者的工作重點(diǎn)。確保事實(shí)的準(zhǔn)確性至關(guān)重要,只要可能,就應(yīng)核實(shí)每一條數(shù)據(jù)的準(zhǔn)確性。上下文保留,以適應(yīng)系統(tǒng)在現(xiàn)實(shí)世界中的交互上下文,可以通過添加另一層具有領(lǐng)域特定注釋的上下文,再加上通過用戶反饋循環(huán)的持續(xù)更新來實(shí)現(xiàn)。時間敏感性是重要的上下文信息,應(yīng)設(shè)計機(jī)制來刷新過時的文檔??傊?,優(yōu)化索引數(shù)據(jù)的重點(diǎn)應(yīng)該放在清晰度、上下文和正確性上,以使系統(tǒng)高效可靠。以下介紹了最佳實(shí)踐。
  2. 優(yōu)化索引結(jié)構(gòu):可以是通過調(diào)整塊的大小、改變索引路徑和合并圖結(jié)構(gòu)信息來實(shí)現(xiàn)。調(diào)整區(qū)塊(從小到大)的方法包括收集盡可能多的相關(guān)信息上下文盡可能地減少噪聲。在構(gòu)建RAG系統(tǒng)時,塊大小是一個關(guān)鍵參數(shù)。有不同的評估框架來比較單個塊的大小。LlamaIndex使用GPT4來評估保真度和相關(guān)性,LlamaIndex對不同的分塊方法有自動化評估方法。跨多個索引路徑查詢的方法與以前的元數(shù)據(jù)過濾和分塊方法密切相關(guān),并且可能涉及同時跨不同索引進(jìn)行查詢。標(biāo)準(zhǔn)索引可用于查詢特定查詢,或者獨(dú)立索引可用于基于元數(shù)據(jù)關(guān)鍵字進(jìn)行搜索或篩選,例如作為特定的“日期”索引。       引入圖結(jié)構(gòu)將實(shí)體轉(zhuǎn)換為圖節(jié)點(diǎn),將它們的關(guān)系轉(zhuǎn)換為圖關(guān)系。這可以通過利用節(jié)點(diǎn)之間的關(guān)系來提高準(zhǔn)確性,尤其是對于多跳問題。使用圖形數(shù)據(jù)索引可以增加檢索的相關(guān)性。
  3. 添加元數(shù)據(jù)信息:這里的重點(diǎn)是將引用的元數(shù)據(jù)嵌入到塊中,例如用于篩選的日期和目的。添加參考文獻(xiàn)的章節(jié)和小節(jié)等元數(shù)據(jù)也有利于改進(jìn)檢索。當(dāng)我們將索引劃分為多個塊時,檢索效率就成了一個問題。首先過濾元數(shù)據(jù)可以提高效率和相關(guān)性。
  4. 對齊優(yōu)化:這一策略主要是解決對齊問題和之間的差異文件。對齊概念包括引入假設(shè)問題,創(chuàng)建適合每個文檔回答的問題,并將這些問題嵌入(或替換)為文件。這有助于解決文檔之間的對齊問題和差異。
  5. 混合檢索:這種策略的優(yōu)勢在于利用了不同檢索技術(shù)的優(yōu)勢。智能地結(jié)合各種技術(shù),包括基于關(guān)鍵字的搜索、語義搜索和矢量搜索可以適應(yīng)不同的查詢類型和信息需求,確保對最相關(guān)和上下文豐富的信息的一致檢索?;旌蠙z索可以作為檢索策略的有力補(bǔ)充,增強(qiáng)RAG管道的整體性能。

3.2.2 嵌入

? ? ? ?微調(diào)嵌入模型直接影響RAG的有效性。微調(diào)的目的是增強(qiáng)檢索到的內(nèi)容和查詢之間的相關(guān)性。微調(diào)嵌入的作用類似于在生成語音之前調(diào)整耳朵,優(yōu)化檢索內(nèi)容對生成輸出的影響。通常,用于微調(diào)嵌入的方法屬于在特定領(lǐng)域上下文中調(diào)整嵌入和優(yōu)化檢索步驟的類別。特別是在處理進(jìn)化術(shù)語或稀有術(shù)語的專業(yè)領(lǐng)域,這些定制的嵌入方法可以提高檢索相關(guān)性。BGE嵌入模型是一種精細(xì)調(diào)諧和高性能嵌入模型,如BAAI 3開發(fā)的BGE-large-EN。為了創(chuàng)建用于微調(diào)BGE模型的訓(xùn)練數(shù)據(jù),首先使用像gpt-3.5-turbo這樣的LLM來基于文檔塊來制定問題,其中問題和答案(文檔塊)形成用于微調(diào)過程的微調(diào)對。

? ? ? ?動態(tài)嵌入根據(jù)單詞出現(xiàn)的上下文進(jìn)行調(diào)整,不同于為每個單詞使用單個向量的靜態(tài)嵌入。例如在BERT這樣的transformer模型中,根據(jù)周圍的單詞,同一個單詞可以具有不同的嵌入。理想情況下,嵌入應(yīng)該包含盡可能多的背景以確?!敖】怠钡慕Y(jié)果?;贕PT等大型語言模型的原理,OpenAI的embeddings-ada-02比靜態(tài)嵌入模型更復(fù)雜,可以捕獲一定程度的上下文。雖然它擅長上下文理解,但它對上下文的敏感性可能不如GPT4等最新的全尺寸語言模型。

3.2.3 后期檢索過程

? ? ? 在從數(shù)據(jù)庫中檢索到有價值的上下文后,將其與查詢合并以輸入LLM會帶來挑戰(zhàn)。同時向LLM提交所有相關(guān)文件可能超過上下文窗口限制。連接眾多形成冗長檢索提示的文檔是無效的,引入噪聲并阻礙LLM對關(guān)鍵問題的關(guān)注信息檢索到的內(nèi)容的附加處理是解決這些問題所必需的。

3.2.4 RAG管道優(yōu)化

       檢索過程的優(yōu)化旨在增強(qiáng)RAG系統(tǒng)的效率和信息質(zhì)量,Current研究主要集中在智能地將各種搜索技術(shù),優(yōu)化檢索步驟,介紹認(rèn)知回溯的概念,靈活應(yīng)用各種查詢策略,并利用嵌入相似性。這些努力共同努力在RAG中上下文信息的高效性和豐富性檢索

3.2.5 模塊化RAG

? ? ? ?模塊化RAG結(jié)構(gòu)打破了傳統(tǒng)索引、檢索和生成的Naive RAG框架,在整個過程中提供更大的多樣性和靈活性。一方面,它集成了各種方法擴(kuò)展功能模塊,例如合并搜索相似性檢索模塊,并在檢索器中應(yīng)用微調(diào)方法。此外,具體問題導(dǎo)致了重組的出現(xiàn)RAG模塊和迭代方法。模塊化RAG范式正在成為RAG領(lǐng)域的主流,允許串行管道或端到端訓(xùn)練方法跨多個模塊。三種RAG的比較范例如圖3所示。

新模塊

新模式

       Modular RAG的組織方法是靈活的,允許模塊的替換或重新配置在基于特定問題上下文的RAG過程中。對于Naive RAG,它由兩個模塊組成檢索和生成(在中稱為讀取或合成一些文獻(xiàn)),該框架提供了適應(yīng)性和豐富性。目前的研究主要探討兩個組織涉及模塊的添加或替換的范例,以及之間組織流程的調(diào)整模塊。

? ? ? ?添加或替換模塊的策略需要維護(hù)Retrieval Read的結(jié)構(gòu),同時引入額外的模塊來增強(qiáng)特定的功能。RRR提出了RewriteRetrieve Read過程,利用LLM性能作為重寫器模塊強(qiáng)化學(xué)習(xí)的獎勵。這允許重寫器調(diào)整檢索查詢,從而提高讀取器的下游任務(wù)性能。類似地,模塊可以在生成讀取等方法中選擇性地替換,其中LLM生成模塊取代了檢索模塊。背誦閱讀將外部檢索轉(zhuǎn)換為從模型權(quán)重的檢索,最初讓LLM記憶任務(wù)相關(guān)信息,并生成用于處理知識密集型自然語言處理任務(wù)的輸出。

調(diào)整模塊之間的流程,重點(diǎn)是增強(qiáng)語言模型和檢索模型之間的交互。DSP引入了演示搜索預(yù)測框架,將上下文學(xué)習(xí)系統(tǒng)視為一個明確的程序,而不是一個終端任務(wù)提示,以解決知識密集型任務(wù)。ITER-RETGEN利用生成的內(nèi)容來指導(dǎo)檢索,在Retrieve ReadRetrieve Read流中迭代執(zhí)行“檢索增強(qiáng)的生成”和“生成增強(qiáng)的檢索”。Self-RAG遵循決策-檢索-反映-讀取過程,引入了一個用于主動判斷的模塊。這種自適應(yīng)和多樣化的方法允許在模塊化RAG框架內(nèi)動態(tài)組織模塊。

四、檢索器

       在RAG的上下文中,“R”代表檢索、服務(wù)RAG管道中檢索top-k相關(guān)信息的作用來自龐大知識庫的文檔。然而,手工制作一個高質(zhì)量的尋回器是一項不平凡的任務(wù)。在本章中,我們圍繞三個關(guān)鍵問題進(jìn)行討論:1)如何獲得準(zhǔn)確的語義表示?2) 如何以匹配查詢和文檔的語義空間?3)如何將檢索器的輸出與首選項對齊大型語言模型的?

4.1 如何獲得準(zhǔn)確的語義陳述?

       在RAG中,語義空間是多維空間,其中查詢和文檔被映射。當(dāng)我們進(jìn)行檢索時,它是在語義空間內(nèi)測量的。如果語義表達(dá)不準(zhǔn)確,那么它對RAG的影響是致命的,本節(jié)將介紹兩種方法來幫助我們構(gòu)建準(zhǔn)確的語義空間。

區(qū)塊優(yōu)化

       在處理外部文檔時,第一步是分塊以獲得細(xì)粒度的特征。然后塊被嵌入。但是,嵌入過大或過小的文本塊可能不會獲得好的結(jié)果。因此,找到語料庫中文檔的最佳塊大小至關(guān)重要以確保搜索結(jié)果的準(zhǔn)確性和相關(guān)性。

? ? ? ?在選擇分塊策略時,重要的考慮因素包括:被索引內(nèi)容的特征、使用的嵌入模型及其最佳塊大小、用戶查詢的預(yù)期長度和復(fù)雜性,以及檢索結(jié)果在特定應(yīng)用程序中的使用方式。例如,對于較長或較短的內(nèi)容,應(yīng)選擇不同的分塊模型。此外,不同的嵌入模型在不同的塊大小下表現(xiàn)不同;例如句子轉(zhuǎn)換器更適合單句,而text-embedding-ada-002更適合包含256或512個標(biāo)記的塊。此外,用戶輸入問題文本的長度和復(fù)雜性,以及應(yīng)用程序的特定需求,如語義搜索或問答,都會影響分塊策略的選擇。這可能與您選擇的LLM的代幣限制直接相關(guān),并且可能要求您調(diào)整塊大小。事實(shí)上,準(zhǔn)確的查詢結(jié)果是通過自適應(yīng)地應(yīng)用幾種分塊策略來實(shí)現(xiàn)的;沒有最好的,只有最合適的

       目前對RAG的研究采用了多種塊優(yōu)化方法來提高檢索效率和準(zhǔn)確性?;瑒哟翱诩夹g(shù)等技術(shù)通過多次檢索聚合全局相關(guān)信息來實(shí)現(xiàn)分層檢索。Small2big技術(shù)在搜索過程中使用小文本塊,并提供較大的附屬文本塊到語言模型以進(jìn)行處理。摘要嵌入技術(shù)對文檔摘要執(zhí)行TopK檢索,提供完整的文檔上下文。元數(shù)據(jù)篩選技術(shù)利用文檔元數(shù)據(jù)進(jìn)行篩選。圖形索引技術(shù)將實(shí)體和關(guān)系轉(zhuǎn)換為節(jié)點(diǎn)和連接,顯著增強(qiáng)了多跳問題的相關(guān)性。這些方法的融合導(dǎo)致改進(jìn)的檢索結(jié)果和增強(qiáng)的性能抹布。

微調(diào)嵌入模型

       在獲得適當(dāng)大小的塊之后,我們需要通過嵌入模型,因此嵌入能否有效地表示語料庫。如今,優(yōu)秀的嵌入式模型已經(jīng)出現(xiàn),如AUAE,Voyage,BGE,他們已經(jīng)在大規(guī)模語料庫上進(jìn)行了預(yù)訓(xùn)練,但他們可能不能準(zhǔn)確地表示特定領(lǐng)域的語料庫信息當(dāng)應(yīng)用于特定域時。此外,特定任務(wù)嵌入模型的微調(diào)對于確保該模型理解與內(nèi)容相關(guān)性相關(guān)的用戶查詢,而未經(jīng)微調(diào)的模型可能不是能夠滿足特定任務(wù)的需要。因此,微調(diào)嵌入模型對于下游應(yīng)用程序是必不可少的。嵌入微調(diào)方法有兩個基本范式。

領(lǐng)域知識微調(diào)

       為了使嵌入模型正確理解特定領(lǐng)域的信息,我們需要構(gòu)建特定領(lǐng)域的數(shù)據(jù)集來微調(diào)嵌入模型。然而,微調(diào)嵌入模型不同于普通語言模型,主要在于所使用的數(shù)據(jù)集是不同的。在當(dāng)前微調(diào)嵌入模型的主要方法,數(shù)據(jù)集used由三個部分組成,包括查詢、語料庫和相關(guān)文件。嵌入模型基于查詢在語料庫中查找相關(guān)文檔,然后確定查詢命中與否的相關(guān)文檔用作的度量模型。

       在數(shù)據(jù)集的構(gòu)建中,對模型進(jìn)行微調(diào),以及評估,在每一個方面都可能出現(xiàn)許多挑戰(zhàn)三個組成部分。在LlamaIndex中,一個系列為嵌入模型的微調(diào)過程專門引入了關(guān)鍵類和函數(shù)的,大大簡化了這一過程。通過準(zhǔn)備一個領(lǐng)域知識語料庫并利用它提供的方法,我們可以很容易地獲得專門針對我們所需領(lǐng)域的嵌入模型。

? ? ? ?下游任務(wù)的微調(diào)使嵌入模型適應(yīng)下游任務(wù)同樣重要。當(dāng)在下游任務(wù)中使用RAG時,一些工作通過使用LLM的功能對嵌入模型進(jìn)行了微調(diào)。PROMPTAGATOR利用大型語言模型(LLM)作為少量查詢生成器,并基于生成的數(shù)據(jù)創(chuàng)建特定任務(wù)的檢索器,緩解了由于數(shù)據(jù)稀缺而在某些領(lǐng)域難以實(shí)現(xiàn)的監(jiān)督微調(diào)問題。LLM Embedder使用大型語言模型為來自多個下游任務(wù)的數(shù)據(jù)輸出獎勵值,通過數(shù)據(jù)集的硬標(biāo)記用兩個不同的監(jiān)督信號微調(diào)檢索器,以及來自LLM的軟獎勵。

       這通過領(lǐng)域知識注入和下游任務(wù)微調(diào)在一定程度上改進(jìn)了語義表示。然而,通過這種方法訓(xùn)練的檢索器對大型語言模型沒有直觀的幫助,因此已經(jīng)做了一些工作來直接通過來自的反饋信號來監(jiān)督嵌入模型的微調(diào)LLM。(本節(jié)將在4.4中介紹)

4.2 如何匹配查詢的語義空間

       和文檔在RAG應(yīng)用程序中,一些檢索器使用相同的嵌入模型對查詢和文檔進(jìn)行編碼,而另一些檢索器則使用兩個模型,以便分別對查詢和文檔進(jìn)行編碼。此外用戶的原始查詢可能存在表達(dá)不佳和缺乏語義信息的問題。因此,對齊用戶查詢和文檔的語義空間是非常必要的。本節(jié)介紹了實(shí)現(xiàn)這一目標(biāo)的兩項關(guān)鍵技術(shù)。

查詢重寫

? ? ? 調(diào)整查詢和文檔語義的最直觀方法是重寫查詢。如Query2Doc和ITERRETGEN中所述利用大型語言模型引導(dǎo)生成偽文檔,然后將原始查詢與該偽文檔合并,形成新的查詢。在HyDE中,通過使用文本指示符來建立查詢向量,使用這些指示符來生成相關(guān)的“假設(shè)”文檔,但可能并不真正存在,它只需要捕獲相關(guān)的模式。RRR引入了一種新的框架,該框架顛倒了檢索和閱讀的順序,重點(diǎn)關(guān)注查詢重寫。該方法使用大型語言模型生成查詢,然后使用web搜索引擎檢索上下文,最后使用小型語言模型作為訓(xùn)練重寫器來為凍結(jié)的大型語言模型提供服務(wù)。STEP-BACKPROPTING方法可以使大型語言模型進(jìn)行抽象推理,提取高級概念和原理,并在此基礎(chǔ)上進(jìn)行檢索。最后,多查詢檢索中的方法包括使用大型語言模型生成多個搜索查詢,這些查詢可以并行執(zhí)行,檢索結(jié)果一起輸入,這對于依賴于多個子問題的單個問題非常有用

嵌入轉(zhuǎn)換

       如果存在像重寫查詢這樣的粗粒度方法,還應(yīng)該有一個針對嵌入操作的細(xì)粒度實(shí)現(xiàn)。在LlamaIndex中,可以在查詢編碼器之后連接適配器,并微調(diào)適配器以優(yōu)化查詢嵌入的表示,將其映射到更適合特定任務(wù)的潛在空間。當(dāng)查詢和外部文檔的數(shù)據(jù)結(jié)構(gòu)不同時,例如非結(jié)構(gòu)化查詢和結(jié)構(gòu)化外部文檔,使查詢與文檔對齊是非常重要的。SANTA提出了兩種預(yù)訓(xùn)練方法,以使檢索者意識到結(jié)構(gòu)化信息1)利用結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)之間的自然對齊關(guān)系進(jìn)行對比學(xué)習(xí),進(jìn)行結(jié)構(gòu)化意識預(yù)訓(xùn)練。2) 屏蔽實(shí)體預(yù)測,它設(shè)計了一個面向?qū)嶓w的掩碼策略并要求語言模型填充被屏蔽的實(shí)體。

4.3 如何調(diào)整檢索器的輸出和LLM的偏好

? ? ? 在RAG管道中,即使我們采用上述技術(shù)來提高檢索命中率,也可能無法提高RAG的最終效果,因為檢索到的文檔可能不是LLM所需要的。因此,本節(jié)介紹了兩種方法來調(diào)整檢索器的輸出和LLM的偏好。

LLM監(jiān)督訓(xùn)練

? ? ? 許多工作利用各種從大型語言模型到微調(diào)嵌入模型的反饋信號。AAR通過編碼器-編碼器架構(gòu)LM為預(yù)先訓(xùn)練的檢索器提供監(jiān)督信號。通過確定LM的首選文檔通過FiD交叉注意力得分,檢索器然后使用硬負(fù)采樣和標(biāo)準(zhǔn)進(jìn)行微調(diào)交叉熵?fù)p失。最終,經(jīng)過微調(diào)的尋回器可以直接用于增強(qiáng)看不見的目標(biāo)LM,從而在目標(biāo)任務(wù)中表現(xiàn)得更好。尋回犬的訓(xùn)練損失作為:

其中Da+是LLM在中首選的文件檢索到的集合和Da?不是優(yōu)選的。我是標(biāo)準(zhǔn)十字架熵?fù)p失。最后,有人建議LLM可能具有更傾向于關(guān)注可讀性而非信息豐富的文檔。

? ? ? ? REPLUG使用檢索器和LLM來計算檢索到的文檔的概率分布,然后通過計算KL散度來執(zhí)行監(jiān)督訓(xùn)練。這種簡單有效的訓(xùn)練方法通過使用LM作為監(jiān)督信號來增強(qiáng)檢索模型的性能,消除了對特定交叉注意力機(jī)制的需要。尋回器的訓(xùn)練損失如下:

其中,D是一組輸入上下文,PR是檢索似然性,QLM是每個文檔的LM似然性。

      UPRISE也采用冷凍大語言模型來微調(diào)Prompt Retriever。但是語言模型和檢索器都采用“提示輸入”配對作為輸入,然后使用大語言模型給出的分?jǐn)?shù)來監(jiān)督檢索器的訓(xùn)練,相當(dāng)于使用大語言模式來標(biāo)記數(shù)據(jù)集。Atlas提出了四種微調(diào)監(jiān)督嵌入模型的方法,其中,注意力蒸餾使用語言模型在輸出過程中生成。EMDR2采用期望最大化算法以檢索到的文檔作為潛在變量進(jìn)行訓(xùn)練。困惑蒸餾直接使用模型生成的令牌的困惑作為指標(biāo)進(jìn)行訓(xùn)練。LOOP基于文檔刪除對LM預(yù)測的影響,引入了一種新的損失函數(shù),為更好地進(jìn)行LM預(yù)測提供了一種有效的訓(xùn)練策略使模型適應(yīng)特定任務(wù)。

插入適配器:然而,由于使用API來實(shí)現(xiàn)嵌入功能或本地計算資源不足等因素,微調(diào)嵌入模型可能具有挑戰(zhàn)性。因此,有些作品選擇外部連接適配器以便對齊。PRCA訓(xùn)練適配器通過上下文提取階段和獎勵驅(qū)動階段,并基于基于令牌的自回歸策略優(yōu)化檢索器的輸出。令牌過濾方法計算交叉注意力得分,選擇得分最高的輸入令牌來有效過濾令牌。RECOM提出了抽取式和生成式壓縮器,通過選擇相關(guān)句子或合成文檔信息來生成摘要,實(shí)現(xiàn)多文檔查詢的焦點(diǎn)摘要。除此之外,一種新的方法PKG通過指令微調(diào)將知識注入白盒模型,并直接替換檢索器模塊,該模塊用于基于查詢直接輸出相關(guān)文檔。

五、生成器

       RAG的另一個核心部件是生成器,負(fù)責(zé)將檢索到的信息轉(zhuǎn)換為自然流暢的文本信息。受傳統(tǒng)的語言模型啟發(fā),但與傳統(tǒng)的生成模型相比,RAG生成器通過利用檢索到的信息提高了準(zhǔn)確性和相關(guān)性。在RAG中,生成器的輸入不僅包括傳統(tǒng)的上下文信息,同時也包括通過檢索器獲得的文本段。這允許生成器更好地理解問題背后的上下文,并產(chǎn)生信息更豐富的回答。此外,生成器通過檢索的文本可以引導(dǎo)以檢索到的文本和生成的內(nèi)容之間的一致性。正是輸入數(shù)據(jù)的多樣性導(dǎo)致了生成階段的一系列有針對性的工作,所有這些工作都旨在使大型模型更好地適應(yīng)查詢和文檔中的輸入數(shù)據(jù)。我們將從檢索后處理和微調(diào)等方面來深入研究生成器。

5.1 如何通過檢索后處理增強(qiáng)檢索結(jié)果?

       對不經(jīng)過微調(diào)的大型語言模型而言,大多數(shù)研究都依賴于公認(rèn)的大語言模型(如GPT4)其強(qiáng)大的內(nèi)部知識來全面檢索文檔知識。然而,這些大型模型存在固有問題,比如上下文長度限制和對冗余信息的敏感。為了緩解這些問題,一些研究在檢索后處理方面做出了努力。檢索后處理是指對檢索器從大型文檔數(shù)據(jù)庫中檢索到的相關(guān)信息進(jìn)行進(jìn)一步處理、過濾或優(yōu)化的過程。它的主要目的是提高檢索結(jié)果的質(zhì)量,更好地滿足用戶的需求或用于下游任務(wù)??梢岳斫鉃閷υ跈z索階段獲得的文檔進(jìn)行再處理。檢索后處理的操作通常包括信息壓縮和結(jié)果重新存儲。

信息壓縮

       即使檢索器可以從在龐大的知識庫中獲取相關(guān)知識,我們?nèi)匀幻媾R著處理檢索文檔的大量信息。現(xiàn)有的一些研究嘗試通過增加大型語言模型的上下文長度來解決,但當(dāng)前的大模型仍然面臨上下文長度的局限性。因此,在某些情況下,信息濃縮是必要的。簡而言之,信息的重要性濃縮主要體現(xiàn)在以下幾個方面:減少噪音,應(yīng)對上下文長度限制,以及增強(qiáng)生成效果。

? ? ? ?PRCA通過訓(xùn)練信息提取器來解決這個問題。在上下文提取階段,給定一個輸入文本???,它可以生成一個輸出序列??(它表示來自輸入文檔)。訓(xùn)練的目標(biāo)是盡量減少??和真實(shí)文本??差異。損失函數(shù)如下:

其中??是信息提取器,θ是提取器的參數(shù)。RECOM采用對比學(xué)習(xí)的方法訓(xùn)練信息冷凝器。對于每個訓(xùn)練數(shù)據(jù)點(diǎn),存在一個正樣本以及五個陰性樣本。在此過程中,編碼器使用對比損失進(jìn)行訓(xùn)練。這個具體優(yōu)化目標(biāo)如下:

?其中??是訓(xùn)練數(shù)據(jù),??是正樣本,??是負(fù)樣本,sim(x,y)用于計算x和y之間的相似性。另一項研究選擇進(jìn)一步精簡文檔數(shù)量,旨在通過減少檢索次數(shù)來提高模型答案的準(zhǔn)確性。[Ma等人,2023b]提出了“Filter-Ranker”范式,它整合了大型語言的優(yōu)勢模型(LLM)和小型語言模型(SLM)的優(yōu)勢。在這個范式中,SLM充當(dāng)過濾器,而LLM充當(dāng)重新排序代理。通過促使LLM重新排列SLM識別的困難樣本的部分,研究結(jié)果表明,在各種信息提?。↖E)任務(wù)中都有顯著改進(jìn)。

重新排序

       重新排序模型的關(guān)鍵作用在于優(yōu)化從檢索器檢索到的一組文檔。當(dāng)添加額外的上下文時,LLM的性能會隨著回溯性能而下降,而重新排序提供了解決此問題的有效解決方案。核心理念是重新排列文檔,將最相關(guān)的文檔放在前面,從而減少文件到固定數(shù)量。這不僅解決了檢索時上下文擴(kuò)展的問題也有助于提高檢索效率。

       引入上下文壓縮作為重新排序的一部分旨在僅基于給定的返回相關(guān)信息查詢上下文。這種方法的雙重意義在于通過減少單個文檔的內(nèi)容和過濾整個文檔來提高檢索結(jié)果。因此,重新排序模型在整個信息檢索過程,提供更有效和用于后續(xù)LLM處理的準(zhǔn)確輸入。

5.2 如何優(yōu)化生成器以適應(yīng)輸入數(shù)據(jù)?

       在RAG模型中,生成器的優(yōu)化是架構(gòu)中非常關(guān)鍵的組成部分。生成器的任務(wù)是以獲取檢索到的信息并生成相關(guān)文本,從而提供模型的最終輸出。生成器的優(yōu)化目標(biāo)是為了確保生成的文本既自然又有效地利用檢索到的文檔,以更好地滿足用戶的查詢需求。

? ? ? ?在典型的大型語言模型(LLM)生成任務(wù)中,輸入通常是一個查詢。在RAG中,主要區(qū)別在于輸入不僅包括查詢,還包括檢索器檢索的各種文檔(結(jié)構(gòu)化/非結(jié)構(gòu)化)。額外信息的引入可能會對模型的理解產(chǎn)生重大影響,尤其是對于較小的模型。在這種情況下,對模型進(jìn)行微調(diào)以適應(yīng)查詢+檢索到的文檔的輸入變得尤為重要。具體來說,在向微調(diào)模型提供輸入之前,通常會對檢索器檢索到的文檔進(jìn)行檢索后處理。需要注意的是,RAG中微調(diào)生成器的方法基本上類似于LLM的一般微調(diào)方法。在這里,我們將簡要介紹一些具有代表性的工作,包括數(shù)據(jù)(格式化/未格式化)和優(yōu)化功能。

一般優(yōu)化過程

? ? ? ?訓(xùn)練數(shù)據(jù)通常是(input, output)對,模型根據(jù)給定的輸入x生成輸出y。在Self-mem的工作中采用了相對經(jīng)典的訓(xùn)練過程,給定輸入x,檢索相關(guān)文檔z(選擇在本文中Top-1),在集成(x,z)后,模型生成輸出y。本文使用了兩種常見的范式用于微調(diào),即Joint-EncoderDual-Encoder。對于Joint-Encoder,通常會采用一種encoder-decoder的標(biāo)準(zhǔn)模型,其中encoder對輸入進(jìn)行編碼,decoder通過注意力機(jī)制以自回歸的方式生成token:

對于Dual-Encoder,需要兩個獨(dú)立的encoder,一個encoder負(fù)責(zé)對輸入(查詢,上下文)進(jìn)行編碼,另一個encoder負(fù)責(zé)對文檔進(jìn)行編碼。然后輸出依次由decoder進(jìn)行雙向交叉關(guān)注處理。作者選擇使用Transformer作為兩種架構(gòu)的構(gòu)建塊,并優(yōu)化?ξ?負(fù)對數(shù)似然(NLL)損失。

利用對比學(xué)習(xí)

? ? ? 在準(zhǔn)備訓(xùn)練數(shù)據(jù)的階段,通常生成是輸入和輸出之間的成對交互。在這種情況下,模型只能訪問一個唯一的可能引發(fā)“暴露偏差”問題的實(shí)際輸出:在訓(xùn)練階段模型只暴露于單個真實(shí)反饋,而不訪問任何其他生成的令牌。這可能會損害模型在應(yīng)用程序中的性能可能過高適合于訓(xùn)練數(shù)據(jù)中的特定反饋,而不會有效地推廣到其他場景。因此,SURGE提出了圖文對比學(xué)習(xí)方法。對于輸入和輸出之間的任何一對給定的交互,這種對比的目的學(xué)習(xí)方法可以定義如下:

其中ζ、ξ是可學(xué)習(xí)的線性投影層。z是來自編碼器的圖的平均表示,h是平均值解碼器表示的。z’,h’表示相應(yīng)的分別為陰性樣本。在給定的文本中,“h”和“z”表示負(fù)樣本。通過引入對比學(xué)習(xí)目標(biāo),模型可以學(xué)習(xí)生成多樣化的合理的回答更好,而不僅僅是在訓(xùn)練數(shù)據(jù)。這有助于降低過度擬合的風(fēng)險并提高了模型在現(xiàn)實(shí)世界中的泛化能力場景。

? ? ? 在處理結(jié)構(gòu)化數(shù)據(jù)的檢索任務(wù)時,SANTA采用三階段訓(xùn)練過程來充分理解結(jié)構(gòu)和語義信息。具體來說,在檢索器的訓(xùn)練階段采用對比學(xué)習(xí)來優(yōu)化查詢和文檔的嵌入表示。具體的優(yōu)化目標(biāo)如下所示:

其中q和d是由編碼器。  ,  分別表示負(fù)樣本和正樣本。在生成器的初始訓(xùn)練階段,我們利用對比學(xué)習(xí)來對齊結(jié)構(gòu)化數(shù)據(jù)以及相應(yīng)的非結(jié)構(gòu)化文檔描述數(shù)據(jù)。優(yōu)化目標(biāo)如上所述。

? ? ? ?此外,在生成器的后期訓(xùn)練階段,受參考文獻(xiàn)的啟發(fā)[Sciavolino等人,2021,張等人,2019],我們認(rèn)識到實(shí)體語義在學(xué)習(xí)文本數(shù)據(jù)方面的顯著有效性檢索中的表示。因此,我們首先執(zhí)行實(shí)體結(jié)構(gòu)化數(shù)據(jù)中的標(biāo)識,隨后應(yīng)用生成器的輸入部分中實(shí)體的掩碼訓(xùn)練數(shù)據(jù),使生成器能夠預(yù)測這些掩碼。此后的優(yōu)化目標(biāo)是:

其中  表示序列  中的第j個token。  表示包含掩碼實(shí)體的ground truth序列。在整個訓(xùn)練過程中,通過從上下文信息來恢復(fù)mask實(shí)體,去理解文本數(shù)據(jù)的結(jié)構(gòu)語義,并對齊結(jié)構(gòu)化數(shù)據(jù)中的相關(guān)實(shí)體。我們優(yōu)化語言模型去填充隱藏的span,從而更好地理解實(shí)體的語義。

六、RAG的增強(qiáng)

? ? ? ?本節(jié)從以下三個維度:增強(qiáng)階段、增強(qiáng)數(shù)據(jù)源增強(qiáng)過程,來詳細(xì)闡述了RAG開發(fā)中的關(guān)鍵技術(shù)。RAG核心分類組件如圖4所示。

6.1 增強(qiáng)階段的RAG

       作為一項知識密集型任務(wù),RAG在語言模型的預(yù)訓(xùn)練、微調(diào)和推理階段采用了不同的技術(shù)方法。

6.1.1 預(yù)訓(xùn)練階段

       自從預(yù)訓(xùn)練模型出現(xiàn)以來,研究人員深入研究了提高預(yù)訓(xùn)練語言模型(PTM)在開放域問答中的性能(QA)通過預(yù)訓(xùn)練階段的檢索方法。在預(yù)訓(xùn)練中認(rèn)識和擴(kuò)展隱性知識模型可能具有挑戰(zhàn)性。REALM引入了一種更模塊化和可解釋的知識嵌入方法。遵循掩蔽語言模型(MLM)范式,REALM模型包括預(yù)訓(xùn)練和作為檢索后預(yù)測的過程進(jìn)行微調(diào),其中語言模型通過預(yù)測基于y的掩蔽標(biāo)記進(jìn)行預(yù)訓(xùn)練在掩蔽句x上建模P(x|y)。

       RETRO利用檢索增強(qiáng)對自回歸語言模型進(jìn)行預(yù)訓(xùn)練,通過從大量標(biāo)記數(shù)據(jù)中檢索并顯著減少模型參數(shù),實(shí)現(xiàn)從頭開始的大規(guī)模預(yù)訓(xùn)練。RETRO與GPT模型共享主干結(jié)構(gòu),并引入了一個額外的RETRO編碼器來對檢索到的相鄰實(shí)體的特征進(jìn)行編碼來自外部知識庫。此外,RETRO在其解碼器轉(zhuǎn)換器結(jié)構(gòu)中結(jié)合了逐塊交叉注意層,以有效地集成來自RETRO編碼器的檢索信息。RETRO實(shí)現(xiàn)了比標(biāo)準(zhǔn)GPT模型更低的困惑。此外,它還提供了更新語言中存儲的知識的靈活性無需更新檢索數(shù)據(jù)庫即可建立模型用于重新訓(xùn)練語言模型。

       Atla采用了類似的方法,在預(yù)訓(xùn)練和微調(diào)階段都采用了使用T5架構(gòu)的檢索機(jī)制。在預(yù)訓(xùn)練之前,它用預(yù)訓(xùn)練的T5初始化編碼器-解碼器LM主干,并用預(yù)訓(xùn)練過的Contriever初始化密集檢索器。在預(yù)訓(xùn)練過程中,它每1000步刷新一次異步索引。

       COG是一種文本生成模型,通過從現(xiàn)有的文本集合中逐步復(fù)制文本片段(如單詞或短語)來形式化其生成過程。與按順序選擇單詞的傳統(tǒng)文本生成模型不同,COG利用高效的矢量搜索工具來計算文本片段的有意義的上下文表示并對其進(jìn)行索引。因此,文本生成任務(wù)被分解為一系列復(fù)制和粘貼操作,其中在每個時間步長,從文本集合中尋找相關(guān)的文本片段,而不是從獨(dú)立的詞匯中進(jìn)行選擇。COG在各個方面都表現(xiàn)出優(yōu)于RETRO的性能,包括問題回答、領(lǐng)域自適應(yīng)和擴(kuò)展短語索引。

       另一方面,隨著 scaling law定律的發(fā)現(xiàn),模型參數(shù)迅速增加,使自回歸模型成為主流。研究人員還在探索是否可以使用RAG方法對更大的模型進(jìn)行預(yù)訓(xùn)練。RETRO++是RETRO的擴(kuò)展,增加了模型的參數(shù)規(guī)模。研究發(fā)現(xiàn),在文本生成質(zhì)量、事實(shí)準(zhǔn)確性、低毒性和下游方面都有持續(xù)的改進(jìn)任務(wù)準(zhǔn)確性,尤其是在知識密集型任務(wù)中作為開放域問答。這些研究發(fā)現(xiàn)強(qiáng)調(diào)預(yù)訓(xùn)練自回歸語言模型與未來檢索相結(jié)合的有前景的方向基礎(chǔ)模型。

      總之,強(qiáng)化預(yù)訓(xùn)練的優(yōu)勢和局限性是顯而易見的。從積極的方面來看,這種方法提供了一個更強(qiáng)大的基礎(chǔ)模型,在困惑、文本生成質(zhì)量和下游任務(wù)性能方面優(yōu)于標(biāo)準(zhǔn)GPT模型。此外,與純預(yù)訓(xùn)練模型。它特別擅長處理知識密集型任務(wù),允許通過對特定領(lǐng)域語料庫的訓(xùn)練來創(chuàng)建特定領(lǐng)域的模型。然而,也存在缺點(diǎn),包括需要大量的預(yù)訓(xùn)練數(shù)據(jù)和更大的訓(xùn)練資源,以及更新速度較慢的問題。特別是隨著模型大小的增加,檢索增強(qiáng)訓(xùn)練的成本變得相對較高。盡管存在這些限制,這種方法在以下方面表現(xiàn)出顯著的特點(diǎn)模型穩(wěn)健性。經(jīng)過訓(xùn)練后,檢索增強(qiáng)型模型基于純預(yù)訓(xùn)練消除了對外部庫依賴性的需求,提高了生成速度和操作效率。

6.1.2 微調(diào)階段

       在下游微調(diào)階段,研究人員采用了各種方法來微調(diào)檢索器和生成器,以改進(jìn)信息檢索,主要是在開放域問答任務(wù)中。關(guān)于檢索器微調(diào),REPlUG將語言模型(LM)視為黑匣子,并通過可調(diào)整的檢索模型對其進(jìn)行增強(qiáng)。REPLUG通過監(jiān)督信號從黑匣子語言模型中獲得反饋,改進(jìn)了初始檢索模型。另一方面,UPRISE通過對不同任務(wù)集進(jìn)行微調(diào),創(chuàng)建一個輕量級和通用的檢索器,從而對檢索器進(jìn)行微調(diào)。該檢索器可以自動為零樣本任務(wù)提供檢索提示,展示其在任務(wù)和模型中的通用性和改進(jìn)的性能。

      同時,微調(diào)生成器的方法包括Self-Mem,其通過示例的存儲池來微調(diào)生成器,以及Self-RAG,其通過生成反射令牌來滿足主動檢索需求。RADIT方法通過在給定檢索增強(qiáng)指令的情況下最大化正確答案的概率來微調(diào)生成器和檢索器。它更新生成器和檢索器,以最大限度地減少文檔和查詢之間的語義相似性,有效地利用相關(guān)的背景知識。

      此外,SUGRE引入了對比學(xué)習(xí)的概念。它對檢索器和生成器進(jìn)行端到端的微調(diào),確保高度詳細(xì)的文本生成和檢索的子圖。SURGE使用基于圖神經(jīng)網(wǎng)絡(luò)(GNN)的上下文感知子圖檢索器,從與正在進(jìn)行的對話相對應(yīng)的知識圖中提取相關(guān)知識。這樣可以確保生成的響應(yīng)忠實(shí)地反映檢索到的知識。為此,SURGE采用了一種不變但高效的圖編碼器和圖-文本對比學(xué)習(xí)目標(biāo)。

       總之,在微調(diào)階段的增強(qiáng)方法表現(xiàn)出幾個特點(diǎn)。首先,微調(diào)LLM和檢索器可以更好地適應(yīng)特定任務(wù),提供同時微調(diào)其中一個或兩個的靈活性,如以下方法所示RePlug和RA-DIT。其次,這種微調(diào)的好處擴(kuò)展到適應(yīng)不同的下游任務(wù),如UPRISE所示,使模型更加通用。此外,微調(diào)使模型能夠更好地適應(yīng)各種語料庫中的不同數(shù)據(jù)結(jié)構(gòu),特別有利于圖結(jié)構(gòu)語料庫,如SUGRE方法所強(qiáng)調(diào)的那樣。

       然而,這一階段的微調(diào)也有局限性,例如需要專門為RAG微調(diào)準(zhǔn)備的數(shù)據(jù)集,以及與推理階段的RAG相比需要大量的計算資源??偟膩碚f,在微調(diào)過程中,研究人員可以根據(jù)特定的要求和數(shù)據(jù)格式靈活地定制模型,與之相比減少了資源消耗進(jìn)入訓(xùn)練前階段,同時保持調(diào)整能力模型的輸出樣式。

6.1.3 推理階段

       將RAG方法與LLM相結(jié)合已成為推理階段的一個流行研究方向。值得注意的是,Naive RAG的研究范式依賴于在推理階段結(jié)合檢索內(nèi)容。

? ? ? ?為了克服Naive RAG的局限性,研究人員在推理階段在RAG中引入了更豐富的上下文。DSP框架依賴于一個復(fù)雜的管道,該管道涉及在凍結(jié)的語言模型(LM)和檢索模型(RM)之間傳遞自然語言文本,為模型提供更多信息上下文以提高生成質(zhì)量。PKG為LLM配備了一個知識引導(dǎo)模塊,該模塊允許在不改變LLM參數(shù)的情況下訪問相關(guān)知識,使模型能夠執(zhí)行更復(fù)雜的任務(wù)。此外,CREA-ICL利用跨語言知識的同步檢索來幫助獲取額外信息,而RECITE通過從LLM中采樣一個或多個段落來形成上下文。

      在推理階段,優(yōu)化RAG過程有利于適應(yīng)更具挑戰(zhàn)性的任務(wù)。例如,ITRG通過迭代檢索和搜索正確的推理路徑,增強(qiáng)了對需要多步推理的任務(wù)的適應(yīng)性。ITERRETGEN采用迭代方法將檢索和生成結(jié)合起來,實(shí)現(xiàn)了“檢索增強(qiáng)生成”和“生成增強(qiáng)檢索”的交替過程

      另一方面,IRCOT融合了RAG和CoT的概念,采用了交替的CoT引導(dǎo)檢索,并使用檢索結(jié)果來改進(jìn)CoT。這種方法顯著提高了GPT-3在各種QA任務(wù)中的性能,突出了集成檢索和生成的潛在優(yōu)勢。

? ? ? ?總之,推理階段增強(qiáng)方法具有重量輕、成本效益高、不需要額外訓(xùn)練以及利用強(qiáng)大的預(yù)訓(xùn)練模型的優(yōu)點(diǎn)。主要優(yōu)勢在于在微調(diào)過程中凍結(jié)LLM的參數(shù),專注于提供更適合需求的上下文,具有快速和低成本的特點(diǎn)。然而,這種方法也有一些局限性,包括需要額外的數(shù)據(jù)處理和流程優(yōu)化,同時受到基礎(chǔ)模型能力的限制。通常,這種方法通常與過程優(yōu)化技術(shù)相結(jié)合,如逐步推理、迭代推理和自適應(yīng)檢索,以更好地滿足不同任務(wù)的要求。

6.2 增強(qiáng)數(shù)據(jù)源

? ? ? ?數(shù)據(jù)來源是RAG有效性的關(guān)鍵因素。各種數(shù)據(jù)源提供了不同的知識粒度和維度,需要不同的處理方法。它們主要分為三類:非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)LLM生成的內(nèi)容。

用非結(jié)構(gòu)化數(shù)據(jù)擴(kuò)充

       非結(jié)構(gòu)化數(shù)據(jù)主要包括文本數(shù)據(jù),通常源自純文本語料庫。此外,其他文本數(shù)據(jù)可以作為檢索源,例如用于大型模型微調(diào)的提示數(shù)據(jù)和跨語言數(shù)據(jù)。

       就文本粒度而言,除了常見的組塊(包括句子)之外,檢索單元可以是標(biāo)記(例如,kNN-LM)、短語(例如,NPM、COG)和文檔段落。細(xì)粒度的檢索單元通??梢愿玫靥幚砗币娔J胶陀蛲鈭鼍埃珪黾訖z索成本

       在單詞級別,F(xiàn)LARE采用主動檢索策略,僅當(dāng)LM生成低概率單詞時才進(jìn)行檢索。該方法包括生成一個臨時的下一句,用于檢索相關(guān)文檔,然后在檢索到的文檔的條件下重新生成下一個句子以預(yù)測隨后的句子。

       在組塊級別,RETRO使用前一個組塊來檢索最近的相鄰組塊,并將此信息與前一組塊的上下文信息集成以指導(dǎo)下一塊的生成。RETRO實(shí)現(xiàn)這是通過檢索最近的相鄰塊  從檢索數(shù)據(jù)庫中,然后融合前面的塊 ,, 和通過交叉注意檢索  的信息引導(dǎo)生成下一個塊  為了保持因果關(guān)系,第i個塊  的自回歸生成只能使用前一個塊  的最近鄰居,并且而不是  。

用結(jié)構(gòu)化數(shù)據(jù)增強(qiáng)

       像知識圖譜(KG)這樣的結(jié)構(gòu)化數(shù)據(jù)源逐漸被整合到RAG的范式中。經(jīng)過驗證的KGs可以提供更高質(zhì)量的上下文,降低模型幻覺的可能性。

        RET-LLM通過從過去的對話中提取關(guān)系三元組來構(gòu)建個性化的知識圖記憶,以供將來使用。SUGRE使用圖神經(jīng)網(wǎng)絡(luò)(GNN)嵌入從知識圖中檢索的相關(guān)子圖,以防止模型生成與上下文無關(guān)的回復(fù)。SUGRE采用了一種圖編碼方法,該方法將圖結(jié)構(gòu)反映到PTM的表示空間中,并利用圖文本模式之間的多模式對比學(xué)習(xí)目標(biāo)來確保檢索到的事實(shí)和生成的文本之間的一致性。KnowledgeGPT以代碼格式生成知識庫(KB)的搜索查詢,并包括預(yù)定義的KB操作函數(shù)。除了檢索,KnowledgeGPT還提供了將知識存儲在個性化知識庫中以滿足個人用戶需求的功能。這些結(jié)構(gòu)化數(shù)據(jù)源為RAG提供了更豐富的知識和上下文,有助于提高模型性能。

LLM生成的內(nèi)容RAG

? ? ? ?觀察到RAG回憶的輔助信息并不總是有效的,甚至可能產(chǎn)生負(fù)面影響,一些研究通過深入研究LLM的內(nèi)部知識來擴(kuò)展RAG的范式。這種方法利用LLM本身生成的內(nèi)容進(jìn)行檢索,旨在提高下游任務(wù)的性能。以下概述了這一類別中值得注意的研究:

       SKR采用了一個標(biāo)記的訓(xùn)練集,將模型可以直接回答的問題歸類為已知問題,將需要增強(qiáng)檢索功能的問題分類為未知問題。該模型被訓(xùn)練來辨別一個問題是否已知,只對被識別為未知的輸入應(yīng)用檢索增強(qiáng),同時直接回答其余的輸入。

? ? ? GenRead用LLM生成器代替檢索器。實(shí)驗結(jié)果表明,生成的上下文文檔包含正確答案的情況比Naive RAG檢索到的情況更普遍。生成的答案也顯示出卓越的質(zhì)量。作者將此歸因于生成文檔級上下文的任務(wù)與培訓(xùn)前目標(biāo)之間的一致性因果語言建模,允許更好地利用存儲在模型參數(shù)中的世界知識。

      Selfmem迭代使用檢索增強(qiáng)生成器來創(chuàng)建無邊界內(nèi)存池。內(nèi)存選擇器用于選擇一個輸出作為下一代的內(nèi)存。此輸出充當(dāng)原始問題的雙重問題。通過將原始問題和雙重問題相結(jié)合,檢索增強(qiáng)生成模型可以利用其自身的輸出來增強(qiáng)自身。

      這些不同的方法展示了RAG檢索增強(qiáng)的創(chuàng)新策略,旨在提高模型的性能和有效性。

6.3 增強(qiáng)過程

      大多數(shù)RAG研究通常只執(zhí)行單個檢索和生成過程。然而,單次檢索可能包含冗余信息,導(dǎo)致“中間丟失”現(xiàn)象。這種冗余信息可能會模糊關(guān)鍵信息或包含與真實(shí)答案相反的信息,對生成效果產(chǎn)生負(fù)面影響。此外,從單個檢索中獲得的信息在需要多步驟推理。

       目前主要優(yōu)化檢索過程的方法包括迭代檢索和自適應(yīng)檢索。這些允許在檢索過程中多次迭代的模型或者自適應(yīng)地調(diào)整檢索過程以更好地適應(yīng)不同的任務(wù)和場景。

迭代檢索

      基于原始查詢和生成的文本定期收集文檔可以為LLM提供額外的材料。在多次迭代檢索中提供額外的參考提高了后續(xù)答案生成的穩(wěn)健性。然而,這種方法可能在語義上不連續(xù),并可能導(dǎo)致收集有噪聲和無用的信息,因為它主要依賴于n個令牌的序列將生成的文檔和檢索到的文檔分開。

       遞歸檢索和多跳檢索用于特定的數(shù)據(jù)場景。遞歸檢索可以首先通過結(jié)構(gòu)化索引處理數(shù)據(jù),然后逐級檢索。當(dāng)檢索層次豐富的文檔時,可以為整個文檔或長PDF中的每個部分進(jìn)行摘要。然后基于該摘要執(zhí)行檢索。在確定文檔后,對內(nèi)部塊進(jìn)行第二次檢索,從而實(shí)現(xiàn)遞歸檢索。多跳檢索通常用于進(jìn)一步挖掘圖結(jié)構(gòu)數(shù)據(jù)源中的信息。

       有些方法會迭代檢索和生成的步驟。ITER-RETGEN協(xié)作利用“檢索增強(qiáng)型生成”和“生成增強(qiáng)型檢索”來完成需要復(fù)制信息的任務(wù)。也就是說,該模型使用完成任務(wù)所需的內(nèi)容來響應(yīng)輸入任務(wù),并且這些目標(biāo)內(nèi)容充當(dāng)檢索更相關(guān)的信息上下文知識這有助于在另一個中產(chǎn)生更好的響應(yīng)迭代。

       IRCoT還探索了為每個生成的句子檢索文檔,在思想鏈的每一步引入檢索。它使用CoT來指導(dǎo)檢索,并使用檢索結(jié)果來改進(jìn)CoT,確保語義的完整性。

自適應(yīng)檢索

? ? ? ?事實(shí)上,前兩節(jié)中描述的RAG方法遵循被動方法,其中檢索是優(yōu)先的。這種方法涉及查詢相關(guān)文檔并根據(jù)上下文輸入LLM,可能會導(dǎo)致效率問題。自適應(yīng)檢索方法,如正如Flare和Self-RAG所介紹的那樣,優(yōu)化了RAG檢索過程,使LLM能夠主動判斷檢索的時間和內(nèi)容。這有助于提高檢索信息的效率和相關(guān)性。

? ? ? ?事實(shí)上,LLM積極使用工具和做出判斷的方式并不是源于RAG,而是已廣泛應(yīng)用于大型模型的代理中。Graph Toolformer的檢索步驟大致如下進(jìn)入:LLM積極使用檢索器、Self Ask和DSP嘗試使用少量提示來觸發(fā)LLM搜索查詢。當(dāng)LLM認(rèn)為有必要時,他們可以決定搜索相關(guān)查詢以收集必要的材料,類似于代理的工具調(diào)用。

? ? ? ?WebGPT采用強(qiáng)化學(xué)習(xí)框架來自動訓(xùn)練GPT-3模型,以使用搜索引擎生成文本。它使用特殊的令牌來執(zhí)行操作,包括在搜索引擎上查詢、滾動排名和引用引用。這允許GPT-3利用搜索引擎生成文本

? ? ? ?另一方面,F(xiàn)lare自動化了檢索的時間安排,并根據(jù)生成文本的概率解決了定期文檔檢索的成本問題。它使用概率作為LLM在生成過程中的置信度指標(biāo)。當(dāng)一個術(shù)語的概率低于預(yù)定義的閾值時,信息檢索系統(tǒng)將檢索參考文獻(xiàn)并刪除具有較低概率的術(shù)語概率。這種方法旨在處理LLM可能需要額外知識的情況。

? ? ? ?Self-RAG引入了一種名為反射代幣的重要創(chuàng)新。生成這些特殊標(biāo)記是為了查看輸出,有兩種類型:Retrieve和Critic。該模型可以自主決定何時檢索段落或使用設(shè)置的閾值來觸發(fā)檢索。當(dāng)需要檢索時,生成器處理同時對多個段落進(jìn)行分段級波束搜索,得到最佳序列。每個細(xì)分的分?jǐn)?shù)都使用Critic分?jǐn)?shù)進(jìn)行更新,并且可以在推理過程中調(diào)整這些權(quán)重,以自定義模型的行為。Self-RAG框架還允許LLM自主確定是否需要召回,避免訓(xùn)練額外的分類器或依賴NLI模型。這增強(qiáng)了模型自主判斷輸入并生成準(zhǔn)確答案的能力。

七、RAG評估

       在探索RAG的開發(fā)和優(yōu)化過程中,有效評估其性能已成為一個核心問題本章主要討論了評估方法、RAG的關(guān)鍵指標(biāo)、它應(yīng)該具備的能力,以及一些主流評價框架。

7.1 評價方法

評估RAG有效性主要有兩種方法:獨(dú)立評估端到端評估

獨(dú)立評估

獨(dú)立評估包括評估檢索模塊和生成(讀取/合成)模塊。

1.檢索模塊

       一套衡量系統(tǒng)(如搜索引擎、推薦系統(tǒng)或信息檢索系統(tǒng))根據(jù)查詢或任務(wù)對項目進(jìn)行排名的有效性的指標(biāo)通常用于評估RAG檢索模塊的性能。示例包括命中率、MRR、NDCG、精度等。

2.生成模塊

       這里的生成模塊是指通過將檢索到的文檔補(bǔ)充到查詢中而形成的增強(qiáng)或合成輸入,與通常評估的最終答案/響應(yīng)生成不同端到端。生成模塊的評估指標(biāo)主要集中在上下文相關(guān)性上,測量檢索到的文檔與查詢問題的相關(guān)性。

端到端評估

? ? ? ?端到端評估評估RAG模型對給定輸入生成的最終響應(yīng),包括模型生成的答案與輸入查詢的相關(guān)性和一致性。從內(nèi)容生成目標(biāo)的角度來看,評估可以分為未標(biāo)記的以及標(biāo)記的內(nèi)容。未標(biāo)記內(nèi)容評估指標(biāo)包括答案保真度、答案相關(guān)性、無害性等,而標(biāo)記內(nèi)容評估標(biāo)準(zhǔn)包括準(zhǔn)確性和EM。此外,從評估方法的角度來看,端到端評估可以分為手動評估和使用LLM的自動評估。以上總結(jié)了RAG端到端評估的一般情況。此外,基于RAG在特定領(lǐng)域的應(yīng)用,采用了特定的評估指標(biāo),例如用于問答任務(wù)的EM,UniEval和用于摘要任務(wù)的E-F1,以及用于機(jī)器翻譯的BLEU。這些指標(biāo)有助于理解RAG在各種特定應(yīng)用場景中的性能。

7.2 關(guān)鍵指標(biāo)和能力

? ? ? ?現(xiàn)有的研究往往缺乏對檢索增強(qiáng)生成對不同LLM的影響的嚴(yán)格評估。在大多數(shù)情況下,評估RAG在各種下游任務(wù)和不同檢索器中的應(yīng)用可能會產(chǎn)生不同的結(jié)果。然而,一些學(xué)術(shù)和工程實(shí)踐側(cè)重于RAG的一般評估指標(biāo)及其有效使用所需的能力。本節(jié)主要介紹了評估RAG有效性的關(guān)鍵指標(biāo)和評估其性能的基本能力。

主要績效指標(biāo)

? ? ? ?最近的OpenAI報告提到了優(yōu)化大型語言模型(LLM)的各種技術(shù),包括RAG及其評估指標(biāo)。此外,最新的評估框架,如RAGAS和ARES也涉及RAG評估指標(biāo)??偨Y(jié)這些工作,主要關(guān)注三個核心指標(biāo):答案的真實(shí)性、答案相關(guān)性和上下文相關(guān)性。

1.誠信

       該指標(biāo)強(qiáng)調(diào),模型生成的答案必須與給定的上下文保持一致,確保答案與上下文信息一致,不會偏離或矛盾。評估的這一方面對于解決大型模型中的幻覺至關(guān)重要。

2.答案相關(guān)性

這個指標(biāo)強(qiáng)調(diào)生成的答案需要與提出的問題直接相關(guān)。

3.語境相關(guān)性

? ? ? 該度量要求檢索到的上下文信息盡可能準(zhǔn)確和有針對性,避免不相關(guān)的內(nèi)容。畢竟,處理長文本對LLM來說代價高昂,過多的無關(guān)信息會降低LLM利用上下文的效率。OpenAI報告還提到“上下文回憶”作為一個補(bǔ)充指標(biāo),衡量模型檢索回答問題所需的所有相關(guān)信息的能力。該度量反映了RAG檢索模塊的搜索優(yōu)化水平。低召回率表明潛在地需要優(yōu)化搜索功能,例如引入重新排序機(jī)制或微調(diào)嵌入,以確保更相關(guān)的內(nèi)容檢索。

關(guān)鍵能力

       RGB的工作從RAG所需的四個基本能力方面分析了不同大型語言模型的性能,包括噪聲魯棒性、負(fù)抑制、信息集成和反事實(shí)魯棒性,為檢索增強(qiáng)生成建立了基準(zhǔn)。RGB主要關(guān)注以下四個方面能力:

1.噪聲魯棒性

       這種能力衡量模型處理有噪聲文檔的效率,這些文檔與問題有關(guān),但不包含有用的信息。

2.否定拒絕

? ? ? 當(dāng)模型檢索到的文檔缺乏回答問題所需的知識時,模型應(yīng)該正確地拒絕響應(yīng)。在陰性拒絕的測試設(shè)置中,外部文件僅包含噪音。理想情況下,LLM應(yīng)該發(fā)出“缺乏信息”或類似的拒絕信號。

3.信息集成

      這種能力評估模型是否可以集成來自多個文檔的信息來回答更復(fù)雜的問題。

4.反事實(shí)穩(wěn)健性

       該測試旨在評估當(dāng)收到關(guān)于檢索信息中潛在風(fēng)險的指令時,模型是否能夠識別和處理文檔中的已知錯誤信息。反事實(shí)穩(wěn)健性測試包括LLM可以直接回答的問題,但相關(guān)的外部文件包含事實(shí)錯誤。

7.3 評估框架

? ? ? 最近,LLM社區(qū)一直在探索使用“LLM作為判斷”進(jìn)行自動評估,許多LLM使用強(qiáng)大的LLM(如GPT-4)來評估自己的LLM應(yīng)用程序輸出。Databricks使用GPT-3.5和GPT-4作為LLM法官來評估其聊天機(jī)器人應(yīng)用程序的實(shí)踐表明,使用LLM作為自動評估工具是有效的。他們相信這種方法還可以高效且經(jīng)濟(jì)高效地評估基于RAG的應(yīng)用程序。

? ? ? ?在RAG評估框架領(lǐng)域,RAGAS和ARES是相對較新的。這些評估的核心重點(diǎn)是三個主要指標(biāo):答案的真實(shí)性、答案相關(guān)性和上下文相關(guān)性。此外,業(yè)界提出的開源庫TruLens也提供了類似的評估模式。這些框架都使用LLM作為評委進(jìn)行評估。由于TruLens類似于RAGAS,因此第章將具體介紹RAGAS和ARES。

RAGAS

? ? ? ?該框架考慮了檢索系統(tǒng)識別相關(guān)和關(guān)鍵上下文段落的能力、LLM忠實(shí)使用這些段落的能力以及生成本身的質(zhì)量。RAGAS是一個基于簡單手寫提示的評估框架,使用這些提示以完全自動化的方式衡量質(zhì)量的三個方面——答案忠實(shí)性、答案相關(guān)性和上下文相關(guān)性。在實(shí)施和實(shí)驗中在這個框架中,所有提示都使用gpt3.5-turbo-16k模型進(jìn)行評估,該模型可通過OpenAI獲得API。

算法原理

1.評估答案的可信度:使用LLM將答案分解為各個陳述,并驗證每個陳述是否與上下文一致。最終,通過將支持的陳述數(shù)量與總數(shù)進(jìn)行比較來計算“可信度分?jǐn)?shù)”語句數(shù)。

2.評估答案相關(guān)性:使用LLM生成潛在問題,并計算這些問題與原始問題之間的相似性。答案相關(guān)性得分是通過計算所有生成問題與原始問題的平均相似性得出的。

3.評估上下文相關(guān)性:使用LLM提取與問題直接相關(guān)的句子,并使用這些句子與上下文中句子總數(shù)的比率作為上下文相關(guān)性得分。

ARES

        ARES旨在從三個方面自動評估RAG系統(tǒng)的性能:上下文相關(guān)性、答案可信度和答案相關(guān)性。這些評估指標(biāo)與RAGAS中的指標(biāo)相似。然而,RAGAS作為一種基于簡單手寫提示的較新評估框架,對新的RAG評估設(shè)置的適應(yīng)性有限,這也是ARES工作的意義之一。此外,如其評估所示,ARES的表現(xiàn)明顯低于RAGAS。

       ARES通過使用少量手動注釋數(shù)據(jù)和合成數(shù)據(jù)降低了評估成本,并利用預(yù)測驅(qū)動推理(PDR)提供統(tǒng)計置信區(qū)間,提高了評估的準(zhǔn)確性。

算法原理

1.生成合成數(shù)據(jù)集:ARES最初使用語言模型從目標(biāo)語料庫中的文檔中生成合成問答,以創(chuàng)建正樣本和負(fù)樣本。

2.準(zhǔn)備LLM評委:接下來,ARES使用合成數(shù)據(jù)集對輕量級語言模型進(jìn)行微調(diào),以訓(xùn)練它們評估上下文相關(guān)性、答案可信度和答案相關(guān)性。

3.使用置信區(qū)間對RAG系統(tǒng)進(jìn)行排名:最后,ARES將這些判斷模型應(yīng)用于RAG系統(tǒng)評分,并使用PPI方法將其與手動注釋的驗證集相結(jié)合,以生成置信區(qū)間,從而可靠地估計RAG系統(tǒng)。

八、未來前景

       在本章中,我們深入探討了RAG的三個未來前景,即RAG的縱向優(yōu)化、橫向擴(kuò)展和生態(tài)系統(tǒng)。

8.1 RAG的垂直優(yōu)化

       盡管RAG技術(shù)在過去一年中取得了快速進(jìn)步,但其垂直領(lǐng)域仍有幾個領(lǐng)域需要進(jìn)一步研究。

? ? ? 首先,RAG中的長上下文問題是一個重大挑戰(zhàn)。如文獻(xiàn)[Xu et al.,2023c]所述,RAG的生成階段受到LLM的上下文窗口的約束。如果窗口太短,則可能無法包含足夠的相關(guān)信息;如果時間過長,可能會導(dǎo)致信息丟失。目前,擴(kuò)展LLM的上下文窗口,甚至到無限上下文的程度,是LLM發(fā)展的一個關(guān)鍵方向。然而,一旦上下文窗口約束被移除,RAG應(yīng)該如何適應(yīng)仍然是一個值得注意的問題。

       其次,RAG的魯棒性是另一個重要的研究熱點(diǎn)。如果在檢索過程中出現(xiàn)不相關(guān)的噪聲,或者檢索到的內(nèi)容與事實(shí)相矛盾,則會顯著影響RAG的有效性。這種情況被比喻為“向毒蘑菇開書”。因此,增強(qiáng)RAG的穩(wěn)健性越來越受到研究人員的關(guān)注,如[Yu等人,2023a,Glass等人,2021,Baek等人,2023]等研究所示。

       第三,RAG和微調(diào)的協(xié)同問題也是一個主要的研究點(diǎn)?;旌弦阎饾u成為RAG的主流方法之一,以RADIT為例。如何協(xié)調(diào)兩者之間的關(guān)系,同時獲得參數(shù)化和非參數(shù)化的優(yōu)勢,是一個需要解決的問題。

? ? ? ?最后,RAG的工程實(shí)踐是一個值得關(guān)注的重要領(lǐng)域。易于實(shí)施和符合公司工程需求是RAG崛起的原因之一。然而,在工程實(shí)踐中,如何在大規(guī)模知識庫場景中提高檢索效率和文檔召回率,以及如何確保企業(yè)數(shù)據(jù)安全,例如防止LLM被誘導(dǎo)披露文檔的來源、元數(shù)據(jù)或其他信息,這些問題都是需要解決的關(guān)鍵問題。

RAG的水平擴(kuò)展

      關(guān)于RAG的研究在水平領(lǐng)域迅速擴(kuò)展。從最初的文本問答領(lǐng)域開始,RAG的思想逐漸應(yīng)用于更多的模態(tài)數(shù)據(jù),如圖像、代碼、結(jié)構(gòu)化知識、音頻和視頻等。這方面的工作已經(jīng)很多了。

       在圖像領(lǐng)域,BLIP2的提出,使用凍結(jié)圖像編碼器和大規(guī)模語言模型進(jìn)行視覺語言預(yù)訓(xùn)練,降低了模型訓(xùn)練的成本。此外,該模型可以生成圖像到文本的轉(zhuǎn)換來自零個樣本。在文本生成領(lǐng)域,VBR方法用于生成圖像,以指導(dǎo)語言模型的文本生成,在開放文本生成任務(wù)中具有顯著效果。

       在代碼領(lǐng)域,RBPS用于與代碼相關(guān)的小規(guī)模學(xué)習(xí)。通過編碼或頻率分析,可以自動檢索到與開發(fā)人員任務(wù)類似的代碼示例。該技術(shù)已在測試斷言生成和程序修復(fù)任務(wù)中證明了其有效性。在結(jié)構(gòu)化知識領(lǐng)域,方法包括CoK提示首先從知識圖中檢索與輸入問題相關(guān)的事實(shí),然后以提示的形式將這些事實(shí)添加到輸入中。該方法在知識圖問答任務(wù)中表現(xiàn)良好。

       對于音頻和視頻領(lǐng)域,GSS方法從口語詞匯庫中檢索并連接音頻片段,立即將MT數(shù)據(jù)轉(zhuǎn)換為ST數(shù)據(jù)。UEOP在端到端自動化方面取得新突破通過引入用于語音到文本映射的外部離線策略進(jìn)行語音識別。通過基于KNN的注意力融合,文本到語音方法生成的音頻嵌入和語義文本嵌入可以使ASR產(chǎn)生偏差,有效縮短領(lǐng)域自適應(yīng)時間。這個Vid2Seq架構(gòu)通過引入特殊的時間標(biāo)記來增強(qiáng)語言模型,使其能夠無縫預(yù)測同一輸出序列中的事件邊界和文本描述。

8.2 RAG的生態(tài)系統(tǒng)

下游任務(wù)和評估

       通過整合廣泛知識庫中的相關(guān)信息,RAG在增強(qiáng)語言模型處理復(fù)雜查詢和生成信息豐富的響應(yīng)的能力方面表現(xiàn)出了巨大的潛力。大量研究表明,RAG在各種下游任務(wù)中表現(xiàn)良好,如開放式問答和事實(shí)驗證。RAG模型不僅提高了下游應(yīng)用中信息的準(zhǔn)確性和相關(guān)性,還增加了響應(yīng)的多樣性和深度。

       鑒于RAG的成功,探索該模型在多領(lǐng)域應(yīng)用中的適應(yīng)性和通用性將是未來工作的一部分。這包括它在專業(yè)領(lǐng)域知識問答中的應(yīng)用,如醫(yī)學(xué)、法律和教育。在專業(yè)領(lǐng)域知識問答等下游任務(wù)的應(yīng)用中,RAG可以提供更低的培訓(xùn)成本和更好的性能好處比微調(diào)。

       同時,改進(jìn)RAG的評估系統(tǒng),以評估和優(yōu)化其在不同下游任務(wù)中的應(yīng)用,對于該模型在特定任務(wù)中的效率和效益至關(guān)重要。這包括為不同的下游任務(wù)開發(fā)更準(zhǔn)確的評估指標(biāo)和框架,如上下文相關(guān)性、內(nèi)容創(chuàng)造力和無害性等。

       此外,通過RAG增強(qiáng)模型的可解釋性,讓用戶更好地了解模型如何以及為什么做出特定響應(yīng),也是一項有意義的任務(wù)。

技術(shù)堆棧

? ? ? ?在RAG的生態(tài)系統(tǒng)中,相關(guān)技術(shù)堆棧的開發(fā)起到了推動作用。例如,隨著ChatGPT的普及,LangChain和LLamaIndex迅速廣為人知。它們都提供了一套豐富的RAG相關(guān)API,逐漸成為大模型時代不可或缺的技術(shù)。與此同時,新型技術(shù)堆棧正在不斷開發(fā)。盡管它們提供的功能不如LangChain和LLamaIndex那么多,但它們更多地關(guān)注自己的獨(dú)特特性。例如,F(xiàn)lowise AI6強(qiáng)調(diào)低代碼,允許用戶實(shí)現(xiàn)以RAG為代表的各種AI應(yīng)用程序,而無需編寫代碼,只需拖放即可。其他新興技術(shù)包括HayStack、Meltno和Cohere Coral。

       除了AI原生框架,傳統(tǒng)軟件或云服務(wù)提供商也擴(kuò)大了服務(wù)范圍。例如,Verb7,由矢量數(shù)據(jù)庫公司W(wǎng)eaviate提供,專注于個人助理。亞馬遜為用戶提供了基于RAG思想的智能企業(yè)搜索服務(wù)工具Kendra。用戶可以通過內(nèi)置連接器在不同的內(nèi)容存儲庫中進(jìn)行搜索。

       技術(shù)堆棧和RAG的發(fā)展是相輔相成的。新技術(shù)對現(xiàn)有技術(shù)棧提出了更高的要求,而技術(shù)棧功能的優(yōu)化進(jìn)一步推動了RAG技術(shù)的發(fā)展。總體而言,RAG工具鏈的技術(shù)堆棧已初步形成,許多企業(yè)級應(yīng)用程序已逐漸出現(xiàn),但一體化平臺仍需完善。

九、結(jié)論

? ? ? ?本文深入探討了檢索增強(qiáng)生成(RAG),這是一種使用外部知識庫來補(bǔ)充大型語言模型(LLM)的上下文并生成響應(yīng)的技術(shù)。值得注意的是,RAG結(jié)合了LLM的參數(shù)化知識和非參數(shù)化外部知識,緩解了幻覺問題,通過檢索技術(shù)及時識別信息,并提高了響應(yīng)的準(zhǔn)確性。此外,通過引用來源,RAG提高了模型輸出的透明度和用戶信任度。RAG還可以通過索引相關(guān)文本語料庫來基于特定領(lǐng)域進(jìn)行定制。RAG的發(fā)展和特點(diǎn)概括為三種范式:Naive RAG、Advanced RAG和Modular RAG,每種范式都有其模型、方法和缺點(diǎn)。Naive RAG主要涉及“檢索-閱讀”過程。高級RAG使用更多細(xì)化數(shù)據(jù)處理,優(yōu)化知識庫索引,并引入多次或迭代檢索。隨著探索的深入,RAG集成了微調(diào)等其他技術(shù),導(dǎo)致了模塊化RAG范式的出現(xiàn),它用新的模塊豐富了RAG過程,并提供了更多的靈活性。

       在接下來的章節(jié)中,我們將進(jìn)一步詳細(xì)分析RAG的三個關(guān)鍵部分。第4章介紹了RAG的檢索器,如何處理語料庫以獲得更好的語義表示,如何縮小查詢和文檔之間的語義差距,以及如何調(diào)整檢索器以適應(yīng)生成器。第5章解釋了生成器如何通過對檢索到的文檔進(jìn)行后處理來獲得更好的生成結(jié)果,避免“中間丟失”問題,以及調(diào)整生成器以適應(yīng)檢索器的方法。隨后,在第六章中,我們從檢索階段、檢索數(shù)據(jù)來源和檢索過程等方面回顧了當(dāng)前的檢索增強(qiáng)方法。

       第7章解釋了如何評估當(dāng)前的RAG方法,包括評估、關(guān)鍵指標(biāo)和當(dāng)前的評估框架。最后,我們對RAG未來的潛在研究方向進(jìn)行了展望。RAG作為一種將檢索和生成相結(jié)合的方法,在未來的研究中有許多潛在的發(fā)展方向。通過不斷改進(jìn)技術(shù)并擴(kuò)大其應(yīng)用,RAG的性能和實(shí)用性可以進(jìn)一步提高。

參考文獻(xiàn):

[1]?https://arxiv.org/pdf/2312.10997.pdf

本文章轉(zhuǎn)載微信公眾號@ArronAI

#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費(fèi)

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費(fèi)