最新RAG綜述來了!北京大學(xué)發(fā)布AIGC的檢索增強(qiáng)技術(shù)綜述
近期,RAG(Retrieval-Augmented Generation)在 AI 領(lǐng)域引起了廣泛關(guān)注,成為了眾多研究者和開發(fā)者熱議的焦點(diǎn)。
作為一種將檢索與生成相結(jié)合的技術(shù),RAG 展示了在各種任務(wù)中,如問答、對話生成和文本摘要等,取得卓越成果的潛力。它的出現(xiàn)為解決復(fù)雜問題提供了新的視角,使得人工智能在理解和回應(yīng)用戶需求方面更加精準(zhǔn)和高效。RAG 的重要性不容忽視,它為 AI 領(lǐng)域帶來了創(chuàng)新的思路和突破性的進(jìn)展。
越來越多的研究者和開發(fā)者開始關(guān)注并投入到 RAG 的研究與應(yīng)用中,以期在未來的智能對話系統(tǒng)中實(shí)現(xiàn)更高水平的性能。例如,OpenAI 為 GPT-4 集成了 web browsing 選項(xiàng),騰訊將 RAG 技術(shù)結(jié)合到混元模型的實(shí)際應(yīng)用場景當(dāng)中,百川也積極使用 RAG 技術(shù)構(gòu)建垂直領(lǐng)域大模型,百度 AI 對話也是在百度知識增強(qiáng)大語言模型文心一言的基礎(chǔ)上集成了搜索引擎返回的結(jié)果。因此,RAG 的火爆程度和重要地位已經(jīng)深入人心,預(yù)示著它將在 AI 領(lǐng)域持續(xù)發(fā)揮關(guān)鍵作用。
針對如此火爆的 RAG,來自北京大學(xué)崔斌教授帶領(lǐng)的數(shù)據(jù)與智能實(shí)驗(yàn)室(PKU-DAIR)系統(tǒng)調(diào)研現(xiàn)有 RAG 技術(shù),覆蓋了近 300 篇相關(guān)論文,發(fā)布綜述(Retrieval-Augmented Generation for AI-Generated Content: A Survey)。
文章詳細(xì)介紹了 AIGC 場景下檢索增強(qiáng)技術(shù)(RAG)的組成部件,不同組件之間的結(jié)合方法,以及對 RAG 系統(tǒng)的優(yōu)化提升技術(shù)。此外,文章還梳理總結(jié)了 RAG 在包括文本,圖像,代碼,音頻,視頻,3D 等多個(gè)不同領(lǐng)域,不同模態(tài)上的具體應(yīng)用以及現(xiàn)有的 RAG 系統(tǒng)評估標(biāo)準(zhǔn)或者工具。最后,本文還分析探討了當(dāng)前 RAG 中存在的局限性以及未來的發(fā)展趨勢和方向。
文章鏈接:
??https://arxiv.org/pdf/2402.19473.pdf??
GitHub鏈接:
??https://github.com/hymie122/RAG-Survey??
01 介紹
近年來,AIGC 的關(guān)注度持續(xù)攀升,大型生成模型在眾多領(lǐng)域和模態(tài)中展現(xiàn)出令人矚目的成果,例如文本和代碼領(lǐng)域的 GPT 系列和 LLAMA 系列模型、圖像領(lǐng)域的 DALL-E 和 Stable Diffusion 模型、以及文生長視頻背后的 Sora 模型。
雖然這些強(qiáng)大的生成器能夠帶來令人驚艷的效果,但仍存在一系列不容忽視的問題和挑戰(zhàn),如難以更新維護(hù)知識、不易掌握長尾知識、以及泄露私人訓(xùn)練數(shù)據(jù)的風(fēng)險(xiǎn)。
為了應(yīng)對這些問題,檢索增強(qiáng)生成技術(shù)(RAG)應(yīng)運(yùn)而生。它運(yùn)用信息檢索(Information Retrieval, IR),在龐雜的外部數(shù)據(jù)中精準(zhǔn)地找到相關(guān)的現(xiàn)有信息。這些外部存儲的數(shù)據(jù)便于修改,能夠涵蓋更廣泛的長尾知識,同時(shí)還可以支持敏感數(shù)據(jù)編碼。此外,在特定場景下,RAG 還能為長文本提供支持,降低模型成本并提高響應(yīng)速度。
▲ RAG 的通用架構(gòu)。用戶的查詢可以是不同的模態(tài),用作檢索器和生成器的輸入。檢索器搜索存儲中的相關(guān)數(shù)據(jù)源,而生成器與檢索結(jié)果交互,并最終生成各種模態(tài)的結(jié)果。
如上圖所示,一個(gè)典型的 RAG 流程包括以下步驟:首先,面對一個(gè)輸入查詢,檢索器會定位并提取相關(guān)的數(shù)據(jù)源。接著,這些檢索到的結(jié)果將與生成器相互作用,從而提升生成內(nèi)容的質(zhì)量和相關(guān)性。檢索到的信息可以通過多種方式與生成過程互動,這些具體的互動機(jī)制將在后續(xù)部分詳細(xì)闡述。
基于現(xiàn)有的 RAG 系統(tǒng),許多工作還提出了提升方法提高模型的整體質(zhì)量,包括針對特定組件的方法以及針對整個(gè)管道的優(yōu)化。盡管 RAG 的概念最初出現(xiàn)在文本生成中,其他模態(tài)和任務(wù)對檢索增強(qiáng)生成的探索也很早就出現(xiàn)了。
RAG 如今已在各個(gè)領(lǐng)域的生成任務(wù)中應(yīng)用,包括代碼、音頻、圖像、視頻、3D、結(jié)構(gòu)化知識和人工智能科學(xué)等等。 跨越不同的模態(tài)和任務(wù),RAG 的基本思想和流程在基本保持一致,而具體使用到的檢索器和生成器根據(jù)特定任務(wù)需要而變化。
本文深入探討了 RAG 的基礎(chǔ)方法、針對 RAG 特定組件以及整個(gè)系統(tǒng)的優(yōu)化策略、RAG 的實(shí)際應(yīng)用場景、評估 RAG 性能的方法,以及對 RAG 當(dāng)前的局限性和未來的發(fā)展方向。
02 RAG 基礎(chǔ)方法
我們根據(jù)檢索器如何與生成器交互,將 RAG 基礎(chǔ)范式分為 4 類,如圖所示:
▲ RAG 基礎(chǔ)方法的分類
1. 基于查詢的 RAG 方法:該方法也稱為提示擴(kuò)充。它將用戶的查詢與檢索過程中提取的內(nèi)容直接集成到生成模型輸入的初始階段。這種范式是 RAG 應(yīng)用程序中最廣泛采用的方法。
一旦檢索到相關(guān)信息,它們的內(nèi)容就會與原始用戶查詢合并,以創(chuàng)建一個(gè)復(fù)合輸入序列。該增強(qiáng)序列隨后被送到生成模型中以生成響應(yīng)。對于常見的基于大型語言模型(LLM)的文本生成任務(wù)而言,該方法實(shí)際上根據(jù)檢索到的內(nèi)容構(gòu)建了輸入的提示詞(prompt),可以直接與提示詞工程、少樣本學(xué)習(xí)相結(jié)合。
2. 基于隱空間表達(dá)的 RAG 方法:在該方法中,檢索器得到的內(nèi)容將與生成模型在內(nèi)部以隱空間表達(dá)(latent representation)的方式進(jìn)行交互,這種邊生成邊交互的方式可以有效的提升生成模型的理解能力以及最終生成內(nèi)容的質(zhì)量。這里常見的交互方法包括簡單的拼接以及設(shè)計(jì)注意力機(jī)制等等。
3. 基于概率表示的 RAG 方法:在采用概率表示(logit)的 RAG 系統(tǒng)中,生成模型在解碼階段會利用概率方法來融合檢索到的信息。通常情況下,模型會對檢索結(jié)果的概率分布進(jìn)行求和或融合,以此計(jì)算出逐步生成文本的概率。這種方法允許模型在生成響應(yīng)時(shí),權(quán)衡不同檢索信息的相關(guān)性和可信度。
4. 投機(jī) RAG 方法:投機(jī) RAG 方法是利用檢索過程替代部分或全部的生成過程。當(dāng)檢索器的成本低于生成器的生成成本時(shí),這種方法具有很大的應(yīng)用潛力。例如,在投機(jī)推理中,可以使用檢索方式替代小型模型的生成,然后將用戶查詢和檢索到的內(nèi)容一起送入大型模型進(jìn)行驗(yàn)證。此外,在使用類似 ChatGPT 接口作為生成器的場景下,調(diào)用次數(shù)越多意味著成本越高,因此可以搜索過往的相同或極度相似的問題來直接得到回答。
03 RAG 提升方法
▲ RAG提升方法的分類
很多工作使用了一系列提升方法來提高基本 RAG 系統(tǒng)的效果。我們根據(jù)提升方法的目標(biāo)將現(xiàn)有方法分為 5 類:對輸入的提升、對檢索過程的提升、對生成過程的提升、對結(jié)果的提升、以及對整個(gè) RAG 流程的優(yōu)化。
1. 輸入提升:輸入指的是用戶的查詢,該查詢最初被輸入到檢索器中。輸入的質(zhì)量顯著影響檢索階段的最終結(jié)果,因此對輸入優(yōu)化變得至關(guān)重要。在這里,我們將介紹兩種方法:查詢改寫和數(shù)據(jù)增強(qiáng)。
查詢改寫(Query Transformation)可以通過修改輸入查詢來提高檢索結(jié)果。數(shù)據(jù)增強(qiáng)(Data Augmentation)是指在檢索之前提前對數(shù)據(jù)進(jìn)行改進(jìn),如去除無關(guān)信息、消除歧義、更新過時(shí)文檔、合成新數(shù)據(jù)等,可以有效提高最終 RAG 系統(tǒng)的性能。
2. 檢索器提升:在 RAG 系統(tǒng)中,檢索過程對結(jié)果影響很大。一般來說,內(nèi)容質(zhì)量越好,就越容易激發(fā) LLM 的上下文學(xué)習(xí)能力(in-context learning)以及其他生成模型的能力;內(nèi)容質(zhì)量越差,就越有可能導(dǎo)致模型幻覺。
遞歸檢索(Recursive Retrieve)是在檢索之前拆分查詢,并執(zhí)行多次搜索以檢索更多、更高質(zhì)量的內(nèi)容的過程。
塊優(yōu)化(Chunk Optimization)技術(shù)是指調(diào)整塊的大小以獲得更好的檢索結(jié)果。
檢索器微調(diào)(Finetune Retriever)是對檢索器的優(yōu)化,一般是對嵌入模型能力的提升。檢索器的能力越強(qiáng),就可以為后續(xù)生成器提供更多有用的信息,從而提高 RAG 系統(tǒng)的有效性。一個(gè)好的嵌入模型可以使語義相似的內(nèi)容在向量空間中更緊密地結(jié)合在一起;此外,對于已經(jīng)具有良好表達(dá)能力的嵌入模型,我們?nèi)匀豢梢允褂酶哔|(zhì)量的領(lǐng)域數(shù)據(jù)或任務(wù)相關(guān)數(shù)據(jù)對其進(jìn)行微調(diào),以提高其在特定領(lǐng)域或任務(wù)中的性能。
混合檢索(Hybrid Retrieve)是指同時(shí)使用多種類型的檢索器,如同時(shí)使用統(tǒng)計(jì)詞頻的方式和計(jì)算向量相似性的方式來得到檢索結(jié)果。
重排序(Re-ranking)技術(shù)是指對檢索到的內(nèi)容進(jìn)行重新排序,以實(shí)現(xiàn)更大的多樣性和更好的結(jié)果。
元數(shù)據(jù)過濾(Meta-data Filtering)則是處理檢索到的文檔的另一種方法,它使用元數(shù)據(jù)(如時(shí)間、目的等)來對檢索回的文件進(jìn)行過濾篩選以獲得更合適的內(nèi)容。
3. 生成器提升:在 RAG 系統(tǒng)中,生成器的質(zhì)量通常決定最終輸出結(jié)果的質(zhì)量。在這里,我們將介紹如下一些提升生成器能力的技術(shù)。
提示詞工程(Prompt Engineering)是一種專注于提高 LLM 輸出質(zhì)量的技術(shù),其中包括提示詞壓縮、回退提示、主動提示、思維鏈提示等等,以上這些同時(shí)也都適用于使用 LLM 生成器的 RAG 系統(tǒng)中。
解碼過程控制、調(diào)整(Decoding Tuning)是指在生成器處理過程中添加額外的控制,可以通過調(diào)整超參數(shù)來實(shí)現(xiàn)更大的多樣性或者以某種形式限制輸出詞匯表等等。
生成器微調(diào)(Finetune Generator)可以使生成模型具有更精確的領(lǐng)域知識或更好地與檢索器匹配的能力。
4. 結(jié)果提升:在許多情況下,RAG 的最終結(jié)果可能無法達(dá)到預(yù)期效果,一些結(jié)果提升方法可以幫助緩解這一問題。
結(jié)果改寫(Rewrite Output)是在生成結(jié)果的基礎(chǔ)上,使用另一個(gè)生成模型作為編輯器、改寫器,以使生成結(jié)果更好的符合生成目標(biāo)或者結(jié)果的規(guī)則。
5. RAG 流程提升:我們將對整個(gè) RAG 流程上的優(yōu)化分為如下兩大類:自適應(yīng)檢索和迭代 RAG。
自適應(yīng)檢索(Adaptive Retrieval)是基于一個(gè)觀察:很多 RAG 的研究和實(shí)踐表明,檢索并不總是有利于最終生成的結(jié)果。當(dāng)模型本身的參數(shù)化知識足以回答相關(guān)問題時(shí),過度檢索會造成資源浪費(fèi),并可能增加模型的混亂。因此,一些工作提出了基于規(guī)則和基于模型的自適應(yīng)檢索方法。
基于規(guī)則等方法指的是通過判斷某些與模型生成高度相關(guān)的指標(biāo)來確定是否進(jìn)行搜索,具體而言,這個(gè)變量可以是模型生成過程中當(dāng)前 token 的生成概率,也可以是模型的困惑度(PPL)等等。基于模型的方法則指的是借助模型能力來判斷是否進(jìn)行搜索,這里的模型可以是生成模型本身也可以是借助外部模型。
迭代 RAG(Iterative RAG)則指的是迭代的進(jìn)行檢索和生成。生成器的當(dāng)前輪次輸出可以在一定程度上反映其仍然缺乏的知識,并且檢索器可以檢索缺失的信息作為下一輪的上下文信息,這有助于提高下一輪生成內(nèi)容的質(zhì)量。如此循環(huán)迭代,直到生成內(nèi)容達(dá)到標(biāo)準(zhǔn)。
04 RAG應(yīng)用
▲ RAG在多模態(tài),多任務(wù)中的應(yīng)用分類
如上圖所示,我們在文中分別介紹了 RAG 在文本、代碼、音頻、圖像、視頻、3D,結(jié)構(gòu)化知識、以及 AI4S 等多個(gè)不同模態(tài)中不同具體任務(wù)上的具體應(yīng)用,并對每類應(yīng)用中的方法進(jìn)行了分析和解讀。更多詳細(xì)內(nèi)容,請參考原論文。
05 基準(zhǔn)測試
RAG 的主要評判標(biāo)準(zhǔn)包括忠實(shí)性、答案相關(guān)性和上下文相關(guān)性。忠實(shí)性衡量從檢索內(nèi)容中推斷正確答案的能力;答案相關(guān)性評估生成結(jié)果是否解決了問題;上下文相關(guān)性判斷檢索內(nèi)容是否包含足夠知識回答查詢,同時(shí)減少無關(guān)信息。
此外,還有其他評判指標(biāo),如噪聲穩(wěn)健性、拒絕回答能力、信息整合能力和反事實(shí)穩(wěn)健性。噪聲穩(wěn)健性評估從噪聲文檔中提取信息的能力;拒絕回答能力測量在內(nèi)容不足時(shí)是否拒絕響應(yīng)查詢;信息整合能力評估通過整合多個(gè)檢索內(nèi)容獲取知識并響應(yīng)的能力;反事實(shí)穩(wěn)健性衡量識別檢索內(nèi)容中反事實(shí)錯(cuò)誤的能力。
06 討論
1. 局限性
盡管 RAG 在各種應(yīng)用中被廣泛采用,但在有效性和效率方面仍存在一些局限性。
檢索結(jié)果中的噪聲:信息檢索系統(tǒng)在將信息編碼為向量時(shí)不可避免地會遭受信息丟失。同時(shí),近似最近鄰搜索(ANN)只能提供近似匹配而非精確匹配,導(dǎo)致檢索結(jié)果中含有一定程度的噪聲,如不相關(guān)或誤導(dǎo)性信息,這可能對 RAG 系統(tǒng)的輸出質(zhì)量產(chǎn)生負(fù)面影響。
雖然直覺上提高檢索準(zhǔn)確性似乎有利于提升 RAG 的效果,但最新研究出人意料地發(fā)現(xiàn),帶有噪聲的檢索結(jié)果有時(shí)反而能增強(qiáng)生成內(nèi)容的質(zhì)量。這可能是因?yàn)闄z索結(jié)果的多樣性在某些情況下對于生成過程是有益的。因此,噪聲對檢索結(jié)果的具體影響仍然是一個(gè)開放的問題,這也引發(fā)了關(guān)于如何選擇合適的檢索度量和如何優(yōu)化檢索器與生成器之間交互的討論。未來的研究有望為這些問題提供更清晰的答案。
額外開銷:盡管檢索在某些情況下能夠降低文本生成的成本,但將檢索與生成結(jié)合使用有時(shí)會引入顯著的額外開銷。鑒于 RAG 的主要目的是增強(qiáng)現(xiàn)有生成模型的能力,引入額外的檢索和交互步驟可能會導(dǎo)致處理延遲。特別是當(dāng)結(jié)合使用更為復(fù)雜的方法,如遞歸檢索或迭代 RAG 時(shí),這些開銷會更加突出。
此外,隨著檢索規(guī)模的擴(kuò)大,數(shù)據(jù)存儲和訪問的復(fù)雜性也會增加。在目前的技術(shù)實(shí)現(xiàn)中,RAG 系統(tǒng)需要在成本和性能之間做出權(quán)衡。未來,我們期待進(jìn)一步的系統(tǒng)優(yōu)化來降低這些額外開銷。
檢索與生成之間的復(fù)雜交互:為了實(shí)現(xiàn)檢索和生成組件之間的無縫集成,研究員和工程師需要精心設(shè)計(jì)和優(yōu)化。鑒于檢索器和生成器可能有不同的目標(biāo),并且它們可能不在同一潛在空間中操作,協(xié)調(diào)這兩個(gè)組件的交互是一項(xiàng)挑戰(zhàn)。
正如之前提到的,研究人員已經(jīng)開發(fā)了多種 RAG 的基礎(chǔ)方法,這些方法或是將檢索和生成過程分離,或是在中間階段進(jìn)行集成。盡管分離方法更具模塊化特性,但集成方法可能從聯(lián)合訓(xùn)練中獲益。目前,不同互動方式在不同應(yīng)用場景下的比較研究還不夠充分。
此外,RAG 系統(tǒng)的提升也面臨挑戰(zhàn),包括度量選擇和超參數(shù)調(diào)整等方面的相互作用尚未被充分研究。因此,為了最大化 RAG 系統(tǒng)的潛力,有必要在算法設(shè)計(jì)和系統(tǒng)部署方面進(jìn)行進(jìn)一步的完善。
長上下文生成的挑戰(zhàn):早期 RAG 系統(tǒng)面臨的一個(gè)主要挑戰(zhàn)是生成器的上下文長度限制,這限制了它們能夠處理的提示詞的數(shù)量和長度。盡管隨著研究進(jìn)展,如提示詞壓縮技術(shù)和系統(tǒng)優(yōu)化對長上下文的支持,這個(gè)問題已經(jīng)在一定程度上得到緩解,但這些解決方案往往需要在準(zhǔn)確性和成本之間做出一些折衷。
近來,有一種觀點(diǎn)提出,長上下文模型如 Gemini 1.5 可能會取代 RAG。然而,這種看法忽視了 RAG 在處理動態(tài)信息,尤其是最新和長尾知識方面的靈活性優(yōu)勢。我們認(rèn)為,未來的 RAG 系統(tǒng)將利用長上下文生成的能力,以提升最終性能,而不是被新模型所取代。
2. 未來潛在的研究方向
嘗試探索更多關(guān)于 RAG 基礎(chǔ)方法、提升方法、和應(yīng)用的研究:未來的研究方向?qū)㈥P(guān)注開發(fā)更先進(jìn)的方法來提升和應(yīng)用 RAG。由于檢索器和生成器的優(yōu)化目標(biāo)不同,實(shí)際的增強(qiáng)過程對生成結(jié)果有很大影響。通過研究更先進(jìn)的基礎(chǔ)方法和提升方法,RAG 的潛力有望被充分挖掘和利用。
更加高效的運(yùn)行、部署 RAG 系統(tǒng):目前已有幾種基于查詢的針對 LLM 的 RAG 部署解決方案,如 LangChain 和 LLAMA-Index。但其他類型的 RAG 和生成任務(wù),目前尚缺乏現(xiàn)成的解決方案??紤]到檢索帶來的額外開銷,以及檢索器和生成器復(fù)雜性的不斷增加,實(shí)現(xiàn)高效運(yùn)行、部署 RAG 仍是一個(gè)挑戰(zhàn),需要專門的系統(tǒng)優(yōu)化。
更好的發(fā)揮 RAG 系統(tǒng)結(jié)合長尾和實(shí)時(shí)知識的能力:RAG 的一個(gè)關(guān)鍵目標(biāo)是利用實(shí)時(shí)和長尾知識,但如何更新和擴(kuò)展知識庫尚未得到充分研究。許多現(xiàn)有研究僅將生成器的訓(xùn)練數(shù)據(jù)作為檢索源,忽視了檢索信息源可以更加靈活動態(tài)的優(yōu)勢。
因此,一個(gè)有前景的研究方向使設(shè)計(jì)一個(gè)能夠不斷更新知識或使用靈活知識源的 RAG 系統(tǒng),并進(jìn)行相應(yīng)的系統(tǒng)優(yōu)化。鑒于 RAG 能夠利用長尾知識,我們期待它能夠整合個(gè)性化信息和功能,以更好地適應(yīng)當(dāng)今的網(wǎng)絡(luò)服務(wù)。
將 RAG 技術(shù)與其他先進(jìn) AIGC 技術(shù)結(jié)合使用:RAG 技術(shù)與旨在提高 AIGC 有效性的其他技術(shù)(如微調(diào)、強(qiáng)化學(xué)習(xí)、思想鏈、基于 Agent 的生成和其他優(yōu)化方法)是互補(bǔ)的。目前將 RAG 與這些技術(shù)結(jié)合的嘗試還處于初期階段,我們期待未來有更多研究來探索算法設(shè)計(jì)并最大化這些技術(shù)的潛力。
感謝閱讀,更多詳細(xì)內(nèi)容,請參考原論文。
本文轉(zhuǎn)自 PaperWeekly ,作者:趙鵬昊
