2萬字解讀:RAG(檢索增強(qiáng)生成)起源、演進(jìn)與思考研究報(bào)告

0 評論 3729 瀏覽 19 收藏 64 分鐘

RAG(檢索增強(qiáng)生成)作為一種融合信息檢索與自然語言生成的創(chuàng)新技術(shù)范式,正在重塑AI在知識密集型任務(wù)中的應(yīng)用方式。本文將深入剖析RAG的起源、發(fā)展脈絡(luò)以及其在現(xiàn)代AI系統(tǒng)中的架構(gòu)與演進(jìn)路徑。

RAG(Retrieval Augmented Generation)是一種通過集成外部知識源來增強(qiáng)大型語言模型(LLM)能力的范式??梢宰匪莸絉AG從信息檢索(IR)和自然語言生成(NLG)這兩個(gè)基礎(chǔ)領(lǐng)域的知識譜系,經(jīng)歷了開放域問答(ODQA)的早期探索,直至2020年其正式定型。剖析現(xiàn)代RAG的體系結(jié)構(gòu),詳細(xì)闡述了其核心組件以及從初級(Naive)到高級(Advanced)和模塊化(Modular)RAG的演進(jìn)路徑。最后,對代理式(Agentic)、自適應(yīng)(Adaptive)和多模態(tài)(Multimodal)RAG的出現(xiàn)引發(fā)的思考

第一章:混合式人工智能,RAG的基礎(chǔ)前身

檢索增強(qiáng)生成(RAG)并非憑空出現(xiàn)的發(fā)明,而是兩個(gè)歷史悠久的獨(dú)立領(lǐng)域,信息檢索(Information Retrieval, IR)與自然語言生成(Natural Language Generation, NLG)在特定技術(shù)突破的催化下,歷經(jīng)漫長演化后融合的產(chǎn)物。

1.1 雙生支柱:信息檢索(IR)與自然語言生成(NLG)的歷史

RAG的核心理念在于“檢索”與“生成”的結(jié)合,這兩種能力分別源自兩個(gè)成熟的計(jì)算機(jī)科學(xué)分支。

1)信息檢索

信息檢索的歷史可以追溯到20世紀(jì)50至60年代,其核心目標(biāo)是從大規(guī)模文檔集合中找出與用戶查詢相關(guān)的資料。漢斯·彼得·盧恩(Hans Peter Luhn)和杰拉德·薩爾頓(Gerard Salton)等先驅(qū)奠定了該領(lǐng)域的基礎(chǔ)。薩爾頓在康奈爾大學(xué)領(lǐng)導(dǎo)的研究小組是該領(lǐng)域的早期重鎮(zhèn)。關(guān)鍵概念包括:

向量空間模型(Vector Space Model):

該模型將文檔和查詢表示為高維空間中的向量,通過計(jì)算向量間的相似度(如余弦相似度)來判斷相關(guān)性,也就是我們?nèi)藶榈脑O(shè)定一個(gè)規(guī)則,給詞語定義坐標(biāo)的方式,將文本數(shù)字化,從而讓計(jì)算機(jī)能夠通過計(jì)算坐標(biāo)的遠(yuǎn)近和方向,來理解文章和詞語的含義。

這是一種早期的語義檢索嘗試。就比如說,我們要讓一臺完全不懂人類語言的電腦去理解詞語之間的關(guān)系。它該如何“思考”呢?核心問題是電腦只認(rèn)識數(shù)字,不認(rèn)識文字。如何把“詞語的含義”轉(zhuǎn)換成電腦能處理的數(shù)字?所以只能通過向量化來解決,詞聽起來很數(shù)學(xué),但您可以把它理解為,含義坐標(biāo)。就像在地圖上,每個(gè)城市都有一個(gè)經(jīng)緯度坐標(biāo)(例如,北京:東經(jīng)116°,北緯39°)。我們可以用一組數(shù)字 [116, 39] 來唯一標(biāo)識北京的位置。

向量化做的就是類似的事情,我們給每個(gè)詞語都分配一個(gè)“含義坐標(biāo)”,這個(gè)坐標(biāo)通常由成百上千個(gè)數(shù)字組成。

簡單例子(二維坐標(biāo)):

假設(shè)我們用兩個(gè)維度來描述詞語:[“生物性”, “人類關(guān)聯(lián)性”]

  • “狗”可能被表示為 [9, 4] (生物性得分9,人類關(guān)聯(lián)性得分4)
  • “貓”可能被表示為 [9, 3] (和“狗”很像,所以坐標(biāo)很接近)
  • “石頭”可能被表示為 [1, 0] (生物性很低,人類關(guān)聯(lián)性也低)
  • “國王”可能被表示為 [7, 9] (生物性較高,人類關(guān)聯(lián)性極高)
  • “女王”可能被表示為 [7, 8.9] (和“國王”坐標(biāo)非常接近)

所有這些詞語的“含義坐標(biāo)”共同組成的那個(gè)多維度的“含義地圖”,就是向量空間 (Vector Space)。在這個(gè)“地圖”上,意思相近的詞,它們的坐標(biāo)點(diǎn)就靠得很近。

OK,當(dāng)我們得到了一個(gè)向量空間之后,那我們?nèi)绾尉_計(jì)算兩個(gè)詞到底有多“像”呢?“余弦相似度”就是一種測量方法。它不關(guān)心兩個(gè)點(diǎn)之間的直線距離,而是關(guān)心它們方向的一致性。舉個(gè)例子,你和朋友都從同一個(gè)廣場中心出發(fā)。如果你們都朝著正北方走,即使你走了100米,他走了200米(距離不同),但你們的方向是完全一致的。這時(shí),你們的余弦相似度就是最高的(等于1)。

  • 如果一個(gè)朝正北,一個(gè)朝正東,方向呈90度角,那么余弦相似度就是0,代表“不相關(guān)”。
  • 如果一個(gè)朝正北,一個(gè)朝正南,方向完全相反,余弦相似度就是最低的(等于-1),代表“含義相反”。

所以,在向量空間里,“貓”和“狗”的向量方向會非常接近,所以它們的余弦相似度很高。而“貓”和“宇宙飛船”的向量方向會相差很遠(yuǎn),相似度就很低。

詞頻-逆文檔頻率(TF-IDF):

作為一種經(jīng)典的加權(quán)技術(shù),TF-IDF用于評估一個(gè)詞對于一份文檔或一個(gè)語料庫的重要性。也就是說,哪個(gè)詞出現(xiàn)次數(shù)最多,哪個(gè)詞就最重要。但很快你會發(fā)現(xiàn)問題,像“的”、“是”、“和”這些詞出現(xiàn)次數(shù)最多,但它們毫無意義。

TF-IDF就是為了解決這個(gè)問題而設(shè)計(jì)的、一種非常聰明的加權(quán)算法。它由兩部分組成:

a) 詞頻 (TF – Term Frequency)

舉個(gè)例子, 在一篇1000個(gè)詞的關(guān)于“人工智能”的文章里,“模型”這個(gè)詞出現(xiàn)了30次。

它的TF就是 30 / 1000 = 0.03。

b) 逆文檔頻率 (IDF – Inverse Document Frequency)

這是TF-IDF算法的精髓。它用來衡量一個(gè)詞的稀有度。一個(gè)詞在越多的文章里都出現(xiàn)過,它的“獨(dú)特性”就越差,IDF值就越低。就像剛才提到“的”、“是”這種詞,幾乎所有中文文章里都會有。所以它們的IDF值會無限趨近于0。而像“梯度下降”、“神經(jīng)網(wǎng)絡(luò)”這種專業(yè)術(shù)語,只會在AI相關(guān)的文章里出現(xiàn)。因此,它們在所有文章里是“稀有”的,IDF值就會很高。

公式:TF-IDF = 詞頻(TF) × 逆文檔頻率(IDF)

最終的得分,同時(shí)考慮了“在本文中的重要性”和“在所有文章中的獨(dú)特性”。

回到例子:

  • “模型”:在AI文章中TF值較高,同時(shí)它也不是一個(gè)通用詞(經(jīng)濟(jì)學(xué)、建筑學(xué)文章里不常用),所以IDF值也較高。最終TF-IDF得分就很高,被識別為關(guān)鍵詞。
  • “的”:在AI文章中TF值極高,但它的IDF值趨近于0。兩者相乘,最終TF-IDF得分也很低,被認(rèn)為是無意義的停用詞。
  • “手機(jī)”:在這篇AI文章里可能一次都沒出現(xiàn)(TF=0),那么不管它IDF值多高,最終TF-IDF得分也是0。

概率模型(Probabilistic Models):

TF-IDF 已經(jīng)很不錯(cuò)了,還有沒有優(yōu)化的空間?它在某些情況下還是不夠“智能”。

概率模型,特別是像BM25這樣的算法,可以看作是TF-IDF的超級升級版**。它不再是簡單地把兩個(gè)值乘起來,而是從“概率”的角度思考,當(dāng)用戶搜索這個(gè)詞時(shí),他看到這篇文章感到滿意的可能性有多大?

BM25主要在兩個(gè)方面做了優(yōu)化:

詞頻飽和度 (Term Frequency Saturation)

TF-IDF有一個(gè)假設(shè):一個(gè)詞出現(xiàn)10次,就比出現(xiàn)5次重要兩倍。但現(xiàn)實(shí)是這樣嗎?

舉個(gè)例子: 一篇文章里,“蘋果”這個(gè)詞出現(xiàn)1次,說明文章和蘋果相關(guān)。如果出現(xiàn)10次,那它和蘋果的相關(guān)性大大增強(qiáng)。但如果從10次增加到20次,相關(guān)性的提升效果其實(shí)是在減弱的。

BM25引入了,詞頻飽和度的概念,意思是詞頻的作用會“飽和”,有一個(gè)上限。就像吃飯,吃第一碗飯幸福感很強(qiáng),吃第二碗幸福感還在增加,但到了第十碗,幸福感就不會再增加了,而且你還有點(diǎn)想吐。這更符合我們對重要性的直觀感受。

文檔長度懲罰 (Document Length Normalization)

TF-IDF對長文章和短文章的處理方式不太公平。

舉個(gè)例子: 搜索“愛因斯坦”

一篇是500字的愛因斯坦簡介。

另一篇是50萬字的《物理學(xué)史》,其中也提到了愛因斯坦。很可能在《物理學(xué)史》這本巨著里,“愛因斯坦”出現(xiàn)的次數(shù)更多,導(dǎo)致TF-IDF算分更高。但這顯然不合理,因?yàn)槟瞧喗椴攀歉嚓P(guān)的文檔。所以BM25會對長文檔進(jìn)行“懲罰”。它會考慮文章的長度,如果一篇文章的長度遠(yuǎn)超平均水平,它就需要出現(xiàn)更多的關(guān)鍵詞才能獲得與短文章同樣的分?jǐn)?shù)。

自然語言生成

與此同時(shí),自然語言處理(NLP)及其子領(lǐng)域自然語言生成(NLG)也在獨(dú)立發(fā)展。其目標(biāo)是讓計(jì)算機(jī)能夠理解并生成流暢、連貫的人類語言。其發(fā)展歷程包括:

早期探索:最初的嘗試集中在基于規(guī)則的機(jī)器翻譯和基于語法的文本生成,這些系統(tǒng)通常依賴于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等結(jié)構(gòu)。

統(tǒng)計(jì)語言模型:20世紀(jì)80至90年代,隨著統(tǒng)計(jì)方法的興起,N-gram模型成為主流。它通過計(jì)算詞序列出現(xiàn)的概率來生成文本,極大地推動了NLG的發(fā)展。

NLG的發(fā)展為RAG的“生成”環(huán)節(jié)提供了必要的技術(shù)儲備,使其能夠?qū)z索到的信息轉(zhuǎn)化為自然、可讀的答案。

一段歷史性的“競爭”:在早期發(fā)展中,IR和AI/NLP領(lǐng)域之間存在一種方法論上的“競爭”。IR領(lǐng)域更偏向于統(tǒng)計(jì)和定量分析,而早期的AI則更側(cè)重于基于邏輯和符號的推理。這種差異導(dǎo)致兩個(gè)領(lǐng)域在很長一段時(shí)間內(nèi)并行發(fā)展,鮮有交集。然而,正是這種差異化的發(fā)展,為日后兩者的優(yōu)勢互補(bǔ)與融合埋下了伏筆。

1.2 早期融合嘗試:開放域問答(ODQA)時(shí)代

在RAG被正式提出之前,開放域問答(Open-Domain Question Answering, ODQA)系統(tǒng)是融合IR與NLG最成功的嘗試,可以被視為“原型RAG”(Proto-RAG)。

可以這么理解,在RAG(檢索增強(qiáng)生成)這個(gè)概念正式誕生之前,它的“原型”或“老前輩”早就存在了,它就是開放域問答(Open-Domain QA)系統(tǒng)

從“單科考試”到“超級圖書館”

最早的問答AI,玩的是“封閉式問答”,就像單科開卷考試。你只能問關(guān)于某一本書或某個(gè)特定領(lǐng)域(比如公司產(chǎn)品手冊)的問題。

而開放域問答(ODQA)則是把AI扔進(jìn)了一個(gè)超級圖書館(比如整個(gè)維基百科),然后要求它能回答關(guān)于任何主題的事實(shí)性問題。這是AI首次系統(tǒng)性地嘗試應(yīng)對需要海量外部知識的挑戰(zhàn),難度指數(shù)級上升。IBM為電視節(jié)目開發(fā)的那個(gè)著名AI“沃森”(Watson),就是這個(gè)時(shí)代的巔峰之作。

“兩步走”的經(jīng)典工作流

這些早期的“原型RAG”系統(tǒng),采用的是一種非常經(jīng)典的“兩步走”流水線架構(gòu):

第一步:圖書管理員(檢索器 – Retriever)

這個(gè)模塊像個(gè)圖書管理員,接到你的問題后,先用一些傳統(tǒng)的搜索技術(shù)(比如TF-IDF或BM25,可以理解為基于關(guān)鍵詞匹配)從海量文檔中,快速找出幾十篇可能相關(guān)的段落。

第二步:閱讀理解專家(閱讀器 – Reader)

然后,這些找出的段落被交給一個(gè)獨(dú)立的“閱讀理解專家”。它的任務(wù)就是精讀這些段落,并從中準(zhǔn)確地抽取出答案,或者基于這些信息生成一句話回答。

這個(gè)“先撈信息,后精讀作答”的模式,就是RAG最核心思想的雛形。

與此同時(shí),盡管這個(gè)“兩步走”模式很成功,但它存在幾個(gè)根本性的缺陷,也正是這些缺陷,直接催生了后來更先進(jìn)的RAG架構(gòu):

視野太窄,只見樹木不見森林。當(dāng)時(shí)的“閱讀器”能力有限,只能處理很短的文本片段。這迫使“圖書管理員”只能遞給它一小段一小段的文字。但很多復(fù)雜問題的答案,需要通讀整篇文章甚至好幾篇文章才能明白,這種“管中窺豹”的做法常常導(dǎo)致關(guān)鍵信息丟失。

檢索員和閱讀員“互相拉黑”,無法協(xié)作。這是最致命的一點(diǎn)。檢索員(Retriever)和閱讀員(Reader)是分開訓(xùn)練、獨(dú)立工作的。這意味著,即便閱讀員發(fā)現(xiàn)檢索員給的材料全是垃圾,它也沒法把這個(gè)“反饋”傳遞回去,告訴檢索員“下次別找這種了,換個(gè)方向找”。檢索員永遠(yuǎn)無法從最終答案的好壞中學(xué)習(xí),也就無法變得更聰明。

知識庫的信息不足。有時(shí)候,答案壓根就不在知識庫里?;蛘撸脩舻膯栴}有歧義,導(dǎo)致檢索員找來一堆不相關(guān)的“噪聲”文檔,嚴(yán)重干擾了閱讀員的工作。

跨專業(yè)能力極差。一個(gè)在“維基百科”這個(gè)通用圖書館里訓(xùn)練出來的檢索員,你把它直接派到專業(yè)的“醫(yī)學(xué)”或“法律”圖書館,它就抓瞎了。因?yàn)樗徽J(rèn)識專業(yè)術(shù)語,不理解領(lǐng)域的知識結(jié)構(gòu)。想讓它適應(yīng)新領(lǐng)域,就得花巨大成本重新培訓(xùn),非常笨重。

正是為了解決這些“視野狹窄”、“協(xié)作不暢”、“適應(yīng)性差”的硬傷,一個(gè)更整合、更智能的RAG框架才應(yīng)運(yùn)而生。

1.3 技術(shù)催化劑:Transformer與密集檢索的崛起

兩項(xiàng)關(guān)鍵技術(shù)的突破為解決上述挑戰(zhàn)并最終催生RAG鋪平了道路。

Transformer革命:2017年Transformer架構(gòu)的提出是一個(gè)分水嶺事件。其核心的自注意力機(jī)制(Self-Attention)使得模型能夠捕捉文本中長距離的依賴關(guān)系,生成上下文感知的詞嵌入(Contextualized Embeddings)。像BERT這樣的模型,能夠深刻理解詞語在不同上下文中的確切含義,遠(yuǎn)超簡單的關(guān)鍵詞匹配。在此之前,計(jì)算機(jī)理解一句話里的詞語,很大程度上是孤立的,或者只能看到旁邊的幾個(gè)詞。而 Transformer 讓計(jì)算機(jī)能夠像人一樣,通讀整段話,理解每個(gè)詞在當(dāng)前語境下的確切含義。

舉個(gè)例子,就比如說“說曹操,曹操到”和“曹操是個(gè)大奸臣”這兩句話里的“曹操”的意思是不同的

密集檢索 vs. 稀疏檢索:這一進(jìn)步直接推動了檢索技術(shù)的革新,即從“稀疏檢索”向“密集檢索”的轉(zhuǎn)變。

稀疏檢索(Sparse Retrieval):以TF-IDF和BM25為代表,它們依賴于關(guān)鍵詞的精確匹配,將文檔表示為高維但大部分元素為零的“稀疏”向量。就像書后面的索引或者電腦上的 Ctrl+F 查找。你搜“汽車”,它就只找文本里出現(xiàn)“汽車”這個(gè)詞的地方。特點(diǎn)就是快,因?yàn)樗蛔龊唵蔚奈淖制ヅ?。但是同時(shí)也很笨,它不理解“汽車”和“車輛”是近義詞。如果你搜“汽車”,它絕對找不到只寫了“車輛”的文章。

可以想象它用一個(gè)巨大的清單來表示一篇文章,清單上列出了所有可能的詞。一篇文章只用了其中很少一部分詞,所以這個(gè)清單上絕大部分都是0,看起來很“稀疏”。

密集檢索(Dense Retrieval):利用 Transformer 的強(qiáng)大理解力,它不再是匹配文字,而是匹配“意思”。它會把你的查詢(比如“關(guān)于羅馬帝國衰落的書”)和所有文檔(比如一本標(biāo)題叫《古代晚期歷史》的書)都轉(zhuǎn)換成一個(gè)代表其核心思想的意義向量(一串?dāng)?shù)字)。然后,它在數(shù)學(xué)上尋找哪個(gè)文檔的“意義”和你的查詢最接近。特點(diǎn)就是,它能理解概念。即便文章里沒有“羅馬帝國衰落”這幾個(gè)字,但如果內(nèi)容是講這個(gè)的,它也能找到。這就是真正的語義搜索。

所以,因?yàn)槲覀冇辛?Transformer 這種能深度理解上下文的“大腦”,我們的搜索技術(shù)也跟著升級了。我們不再滿足于死板的關(guān)鍵詞查找(稀疏檢索),而是進(jìn)化到了能理解你真實(shí)意圖的、更智能的語義搜索(密集檢索)。

這兩者的結(jié)合,最終為RAG創(chuàng)造了完美的條件。它通過將兩者的優(yōu)點(diǎn)統(tǒng)一在一個(gè)框架內(nèi),最終解決了IR與NLP領(lǐng)域長久以來的“競爭”關(guān)系,實(shí)現(xiàn)了一加一大于二的效果

像 GPT-4 這樣的大模型,強(qiáng)項(xiàng)在于理解、推理、總結(jié)和生成流暢的語言。信息檢索 (IR)像搜索引擎里的技術(shù),強(qiáng)項(xiàng)在于從海量信息中精確地找到最相關(guān)的內(nèi)容。隨著大型語言模型的參數(shù)量呈指數(shù)級增長,一個(gè)根本性的問題出現(xiàn)了,如果試圖把全世界所有的知識都塞進(jìn)一個(gè)大模型的“大腦”(參數(shù))里,成本會高到無法承受,而且模型一旦訓(xùn)練好,知識就“過時(shí)”了,無法更新。而RAG就是它不把所有知識都硬塞給模型,而是將海量的、需要經(jīng)常更新的知識存放在一個(gè)外部的、成本低廉的“圖書館”(如向量數(shù)據(jù)庫)里,利用BM25對于需要精確匹配的專有名詞、代碼等非常有效。利用現(xiàn)代語義搜索理解模糊的、概念性的問題。當(dāng)需要回答問題時(shí),模型會先去這個(gè)“圖書館”里查找最新的、最相關(guān)的資料,然后再利用自己的推理和總結(jié)能力,生成最終答案。所以,它讓大模型不必成為一個(gè)死記硬背所有知識的書呆子,而是變成一個(gè)懂得如何利用外部圖書館來獲取最新信息,并在此基礎(chǔ)上進(jìn)行深度思考和回答的天才

第二章:RAG的正式化——知識密集型NLP的范式轉(zhuǎn)移

2020年,由Patrick Lewis及其同事發(fā)表的論文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》正式提出并命名了RAG框架,標(biāo)志著一個(gè)新范式的誕生。

2.1 Lewis等人的技術(shù)深潛:開創(chuàng)性的RAG論文

這篇由Facebook AI(現(xiàn)Meta AI)研究人員發(fā)表的論文,其核心貢獻(xiàn)是提出了一個(gè)“通用的微調(diào)秘方”(a general-purpose fine-tuning recipe)。該秘方旨在將一個(gè)預(yù)訓(xùn)練的參數(shù)化記憶(Parametric Memory)與一個(gè)非參數(shù)化記憶(Non-parametric Memory)相結(jié)合。

舉個(gè)例子,比如說咱們要參加一場開卷考試,考試的題目是論述題,請分析并總結(jié)量子糾纏的最新研究進(jìn)展。

答題前

首先看到考題的時(shí)候,參數(shù)化記憶就像是我的大腦,已經(jīng)背下來的知識,這些知識已經(jīng)內(nèi)化成了你的一部分(存儲在模型的“參數(shù)”里)。它的優(yōu)點(diǎn)是反應(yīng)快,隨時(shí)能調(diào)用。缺點(diǎn)是知識有上限,而且可能會記錯(cuò)或忘記細(xì)節(jié)。這就是seq2seq模型,它本身就是一個(gè)知識淵博的“大腦”。

另外一個(gè)是,非參數(shù)化記憶 ,就像是帶進(jìn)考場的參考資料,這是考試允許你帶的外部資料,比如一整本《量子物理學(xué)》教科書或者一疊最新的學(xué)術(shù)論文(在RAG論文里,這就是維基百科)。這些知識不儲存在你的大腦里,而是放在外部,需要時(shí)可以去“查閱”。它的優(yōu)點(diǎn)是信息量巨大、準(zhǔn)確且可以隨時(shí)更新(比如換一本新版的書)。缺點(diǎn)是查找信息需要時(shí)間。這就是外部知識庫。

但是現(xiàn)在我們應(yīng)該如何利用好這個(gè)參考資料,將檢索到的文檔視為一個(gè)潛變量 (Latent Variable)

當(dāng)我們看到“量子糾纏”這個(gè)題目后,迅速在你的參考資料(非參數(shù)化記憶)里翻找。你不會只找一篇文章,而是找到了5篇看起來都相關(guān)的論文。那么問題來了,哪一篇才是“正確”的答案來源?

老舊的、死板的方法(非RAG)會先判斷出“嗯,第3篇最相關(guān)!”,然后把你所有的論述都完全基于第3篇文章來寫。如果判斷失誤,或者答案其實(shí)需要結(jié)合第1篇和第3篇,你的最終得分就會很低。這是一個(gè)“先檢索,后生成”的僵化流水線。而RAG有一個(gè)更聰明的方法(潛變量思維),就是并不要立刻決定哪一篇是“唯一正確”的。你的大腦里會進(jìn)行一個(gè)快速的、模糊的概率評估。這個(gè)“不確定的、隱藏的正確答案來源”,就是所謂的潛變量,你就會開始琢磨了,根據(jù)我的知識判斷,論文1 看起來有70% 的可能性對解題有用。論文2 只有10%的可能性。而論文3有90%的可能性非常關(guān)鍵。

答題中

接下來,我們寫的每一句話,都不是只看著某一篇文章寫的,而是在腦海中“融合”了所有高可能性資料的結(jié)果。

這就是“邊際化 (Marginalization)”的通俗理解:進(jìn)行加權(quán)求和,融合多種可能性。

而不是考慮單一來源,如果我只看了論文1,這句話我可能會這么寫,但是如果我看了論文3,我可能會從另一個(gè)角度寫,但是加權(quán)融合也就是邊際化,其實(shí)都是通過我們看了三篇論文之后,做了平衡之后的結(jié)果,

最終的句子 = (90%權(quán)重 * 按論文3的寫法) + (70%權(quán)重 * 按論文1的寫法) + (10%權(quán)重 * 按論文2的寫法) + …

通過這種方式,答案綜合了所有相關(guān)資料的精華,而不是死守著一篇。即使最重要的那篇論文(論文3)缺少某個(gè)細(xì)節(jié),你也能從論文1中把它補(bǔ)充進(jìn)來。這讓你的答案更全面、更準(zhǔn)確。

答題后(考試結(jié)束)

老師批改試卷,也就是模型訓(xùn)練的過程。如果是老舊的、死板的方法, 老師會分兩步給你打分。第一步,評估你“挑選參考資料”的能力(單獨(dú)訓(xùn)練檢索器)。第二步,在你選定的資料基礎(chǔ)上,評估你的“寫作能力”(單獨(dú)訓(xùn)練生成器)。這兩個(gè)環(huán)節(jié)是脫節(jié)的。

但是RAG更聰明的方法(端到端訓(xùn)練)是老師只看你的最終答案。如果你的論述非常精彩(最終輸出正確),他就給你一個(gè)高分。這個(gè)“高分”會同時(shí)獎(jiǎng)勵(lì)你整個(gè)答題流程,既獎(jiǎng)勵(lì)了你的寫作能力(生成器),也獎(jiǎng)勵(lì)了你挑選和融合資料的能力(檢索器)

反之,如果你答案錯(cuò)了,這個(gè)差評也會同時(shí)傳遞給你整個(gè)流程,讓你自己去反思,到底是查資料的環(huán)節(jié)錯(cuò)了,還是寫作的環(huán)節(jié)錯(cuò)了?模型會在下一次訓(xùn)練中,自動地、同步地調(diào)整這兩個(gè)部分。

端到端 (End-to-End) 的優(yōu)勢在于,我們不再需要告訴模型,應(yīng)該看哪篇,不該看那篇。而是,我們只需要給它最終的正確答案,它就能自己學(xué)會如何去尋找信息、如何去利用信息,整個(gè)過程一氣呵成,大大降低了訓(xùn)練的復(fù)雜度和成本。

2.2 架構(gòu)創(chuàng)新:參數(shù)化與非參數(shù)化記憶的結(jié)合

Lewis等人的RAG架構(gòu)由明確定義的組件構(gòu)成,這些組件協(xié)同工作,實(shí)現(xiàn)了知識的動態(tài)融合 。

為了完成一項(xiàng)復(fù)雜的報(bào)告任務(wù),我們組建了一個(gè)精英團(tuán)隊(duì)。這個(gè)團(tuán)隊(duì)由兩名核心成員組成:

一名圖書管理員(檢索器)和一名首席作家(生成器)

這位圖書管理員負(fù)責(zé)從一個(gè)巨大的圖書館(知識庫,如維基百科)中,快速、精準(zhǔn)地找出與報(bào)告主題最相關(guān)的資料。

他的核心技能:

DPR (Dense Passage Retrieval)。Dense 意味著他理解的是語義(Meaning),而不是簡單的關(guān)鍵詞匹配。他能理解“美國總統(tǒng)的官邸”和“白宮”說的是一回事,即使字面上完全不同。

他的工作流程:

  1. 前期準(zhǔn)備 (Encoding – 編碼):在接到任何任務(wù)之前,圖書管理員會進(jìn)行一項(xiàng)浩大的準(zhǔn)備工作。
  2. 文檔編碼器 (Document Encoder):他會閱讀圖書館里的每一本書、每一篇文章,并為每一篇寫下一張“內(nèi)容摘要卡”。這張卡片非常特殊,它不是用文字寫的,而是用一種獨(dú)特的含義代碼(即向量)來表示。最終,他建立了一個(gè)包含數(shù)百萬張含義代碼卡的目錄冊,這個(gè)目錄冊就是文檔向量索引。
  3. 查詢編碼器 (Query Encoder):當(dāng)報(bào)告任務(wù)(用戶問題)下達(dá)時(shí),他會先讓查詢編碼器把這個(gè)問題也轉(zhuǎn)換成完全相同格式的含義代碼
  4. 執(zhí)行任務(wù) (Searching – 檢索):現(xiàn)在,他手上有一張代表問題的含義代碼卡,和一整個(gè)目錄冊的圖書摘要代碼卡。
  5. 最大內(nèi)積搜索 (MIPS):這是一個(gè)聽起來復(fù)雜但原理很直觀的技術(shù)。你可以把它想象成一個(gè)磁力匹配系統(tǒng)。問題代碼卡和圖書代碼卡都是特制的磁鐵。MIPS系統(tǒng)能瞬間測算出,目錄冊中哪些圖書卡片的磁力(內(nèi)積)與問題卡的磁力最相吸。
  6. 最終,他會把磁力吸引最強(qiáng)的前K個(gè)(比如Top-5)圖書資料找出來,交給首席作家。
  7. 接下來就到了作家(BART模型),負(fù)責(zé)將用戶最初的問題和圖書管理員找來的資料,最終撰寫成一份通順、準(zhǔn)確的報(bào)告。他是一位擁有4億“腦細(xì)胞”(參數(shù))的語言大師。他非常擅長理解上下文(雙向-Bidirectional),并能一個(gè)詞一個(gè)詞地(自回歸-Auto-Regressive)生成優(yōu)美的句子。他的任務(wù)是接收兩樣?xùn)|西:原始問題圖書管理員找來的資料,然后基于這兩者,寫出最終的答案。

現(xiàn)在,團(tuán)隊(duì)的兩位核心成員已經(jīng)就位。但是,根據(jù)報(bào)告任務(wù)的復(fù)雜程度,他們有兩種不同的協(xié)作模式。

RAG-Sequence (專注單一信源模式)

這種模式適用于那些答案往往包含在單一、連貫的文檔里的任務(wù)。比如“請介紹一下埃菲爾鐵塔的歷史”。

工作流程:

  1. 圖書管理員找到了5篇最相關(guān)的文章。
  2. 先拿出第1篇文章,對作家說:“請你只根據(jù)這篇文章,完整地寫一份報(bào)告草稿?!弊骷彝瓿闪艘环莶莞錋。
  3. 然后,他收回第1篇,拿出第2篇文章,說:“現(xiàn)在,請你忘掉剛才的,只根據(jù)這一篇,再寫一份獨(dú)立的完整草稿?!弊骷彝瓿闪瞬莞錌。
  4. 這個(gè)過程重復(fù)K次(比如5次),最終得到5份獨(dú)立的報(bào)告草稿。
  5. 最后,團(tuán)隊(duì)會對這5份草稿進(jìn)行評估和融合,得出一份最終報(bào)告。融合時(shí),源自更相關(guān)文章(比如磁力最強(qiáng)的那篇)的草稿會占有更高的權(quán)重。

特點(diǎn): 結(jié)構(gòu)簡單,思路清晰。每次寫作都只聚焦于一個(gè)信息源,確保了內(nèi)容的連貫性。

RAG-Token (靈活多源融合模式)

這種模式更強(qiáng)大,適用于需要綜合多個(gè)信息源才能形成的復(fù)雜答案。比如,請比較并總結(jié)二戰(zhàn)期間,同盟國在歐洲和太平洋戰(zhàn)場的不同戰(zhàn)略重點(diǎn)。

工作流程:

圖書管理員找到了5篇最相關(guān)的文章,一次性全部攤在作家的桌子上。

作家開始寫報(bào)告,但他不是一篇一篇地看,而是一個(gè)詞一個(gè)詞地寫 (Token by Token)。

在寫第一個(gè)詞時(shí),他會快速瀏覽桌上所有的5篇文章,思考一下,綜合所有信息后,決定哪個(gè)詞作為開頭最好。

在寫第二個(gè)詞時(shí),他會再次快速瀏覽所有的5篇文章,并結(jié)合自己剛剛寫下的第一個(gè)詞,來決定第二個(gè)詞應(yīng)該是什么。

這個(gè)過程在生成每一個(gè)詞元(token)時(shí)都會重復(fù)。作家在整個(gè)寫作過程中,始終保持著對所有相關(guān)資料的“全局視野”,在每一步都動態(tài)地、靈活地從中汲取最需要的信息。

其中的特點(diǎn)就在于,能夠?qū)碜圆煌瑏碓吹乃槠畔?,天衣無縫地融合在一個(gè)連貫的答案中,非常適合處理復(fù)雜的、需要綜合分析的問題。

OK,我們簡單了解RAG的工作原理之后,會發(fā)現(xiàn)在RAG之前,大型語言模型在很大程度上是“黑箱” 。它們的知識被固化在數(shù)十億個(gè)不透明的參數(shù)中,其決策過程難以解釋。RAG通過將知識源外化,從根本上改變了這一狀況。它創(chuàng)造了一個(gè)本質(zhì)上更加透明和可驗(yàn)證的系統(tǒng)。

用戶原則上可以檢查模型引用的外部文檔,以核實(shí)其生成內(nèi)容的真實(shí)性。論文本身也強(qiáng)調(diào)了這一點(diǎn),認(rèn)為RAG提供了更強(qiáng)的可控性和可解釋性,并重新定義了AI的標(biāo)準(zhǔn):一個(gè)模型不僅要能生成看似合理的答案,更要能為其答案提供可追溯的證據(jù)支持。這對RAG在企業(yè)環(huán)境中的應(yīng)用至關(guān)重要,因?yàn)樵谶@些場景下,可審計(jì)性、可靠性和信任是不可或缺的。

第三章:現(xiàn)代RAG系統(tǒng)剖析

對當(dāng)今典型的RAG系統(tǒng)進(jìn)行解構(gòu),詳細(xì)分析其通用的架構(gòu)組件和工作流程。

3.1 核心流水線:分步解析

一個(gè)現(xiàn)代RAG系統(tǒng)的工作流程可以清晰地劃分為兩個(gè)主要階段,離線索引階段和在線推理階段。這種劃分體現(xiàn)了系統(tǒng)如何預(yù)處理知識以及如何在接收到用戶請求時(shí)實(shí)時(shí)響應(yīng)。

索引(Indexing)- 離線階段:

這是知識庫的預(yù)處理階段,目標(biāo)是創(chuàng)建一個(gè)高效、可搜索的知識索引。該階段通常在后臺一次性或周期性地完成,包括以下步驟:

加載(Load):從各種數(shù)據(jù)源(如文件系統(tǒng)、數(shù)據(jù)庫、API)加載原始數(shù)據(jù)。

分割(Split):將加載的長文檔(如PDF、網(wǎng)頁)分割成更小的、語義完整的文本塊(Chunks)。這一步至關(guān)重要,因?yàn)長LM的上下文窗口有限,且在較小的、主題集中的文本塊上進(jìn)行檢索更為精準(zhǔn)。

嵌入(Embed):使用嵌入模型(Embedding Model)將每個(gè)文本塊轉(zhuǎn)換成一個(gè)高維的數(shù)字向量(Vector Embedding)。這個(gè)向量捕捉了文本塊的語義信息。

存儲(Store):將生成的文本塊向量及其對應(yīng)的原始文本內(nèi)容存儲到一個(gè)專門的向量數(shù)據(jù)庫(Vector Store)中,并為這些向量建立索引,以便進(jìn)行快速的相似性搜索。

檢索與生成(Retrieval and Generation)- 在線/推理階段:

這是當(dāng)用戶提交查詢時(shí),系統(tǒng)實(shí)時(shí)執(zhí)行的階段,其目標(biāo)是生成一個(gè)基于知識的、準(zhǔn)確的回答:

  • 檢索(Retrieve):接收用戶查詢,使用與索引階段相同的嵌入模型將其轉(zhuǎn)換為查詢向量。然后,利用該查詢向量在向量數(shù)據(jù)庫中進(jìn)行相似性搜索,找出與查詢語義最相關(guān)的Top-K個(gè)文本塊。
  • 增強(qiáng)(Augment):將檢索到的這些文本塊作為上下文信息,與用戶的原始查詢組合在一起,形成一個(gè)“增強(qiáng)提示”(Augmented Prompt)
  • 生成(Generate):將這個(gè)增強(qiáng)提示輸入到大型語言模型(LLM)中。LLM基于其自身的語言能力和新提供的上下文信息,生成一個(gè)最終的、人類可讀的、且有事實(shí)依據(jù)的回答。

3.2 組件深度解析:RAG的構(gòu)建模塊

一個(gè)功能完備的RAG系統(tǒng)由多個(gè)協(xié)同工作的核心組件構(gòu)成。

數(shù)據(jù)源(Data Sources):

RAG的能力很大程度上取決于其能夠訪問的知識?,F(xiàn)代RAG系統(tǒng)可以處理多種類型的數(shù)據(jù),包括:

  • 非結(jié)構(gòu)化數(shù)據(jù):如PDF文檔、Word文件、網(wǎng)頁、純文本等,這是最常見的數(shù)據(jù)源 。
  • 結(jié)構(gòu)化數(shù)據(jù):如SQL數(shù)據(jù)庫中的表格、知識圖譜(Knowledge Graphs)等。通過特定技術(shù)(如Text-to-SQL),RAG可以查詢這些結(jié)構(gòu)化數(shù)據(jù)源
  • 半結(jié)構(gòu)化/多模態(tài)數(shù)據(jù):如包含圖片、表格和文本的復(fù)雜文檔,甚至獨(dú)立的圖片和視頻文件。

數(shù)據(jù)加載與分塊(Data Loading & Chunking):

這是RAG流水線的起點(diǎn)。分塊是將長文檔切分成小塊的過程,其重要性體現(xiàn)在:

1)適應(yīng)LLM有限的上下文窗口;

2)提高檢索的相關(guān)性,因?yàn)樾K通常主題更集中。但是分塊也會有弊端,不恰當(dāng)?shù)姆指羁赡軙茐脑牡恼Z義完整性,例如將一個(gè)完整的表格或一段連續(xù)的論證切開,從而影響后續(xù)步驟的質(zhì)量 。

嵌入模型(Embedding Models):嵌入模型是RAG系統(tǒng)的“翻譯官”,負(fù)責(zé)將文本信息轉(zhuǎn)換為機(jī)器可以理解的數(shù)學(xué)形式,也就是我們之前討論的向量。其核心作用是捕捉文本的語義含義。為了保證查詢和文檔在同一個(gè)語義空間中進(jìn)行比較,索引文檔和編碼查詢必須使用同一個(gè)嵌入模型。業(yè)界有許多成熟的嵌入模型可供選擇,例如OpenAI的 text-embedding系列和NVIDIA的NV-embed系列。

向量存儲/數(shù)據(jù)庫(Vector Stores/Databases):這些是為存儲和高效查詢高維向量而專門設(shè)計(jì)的數(shù)據(jù)庫。與傳統(tǒng)數(shù)據(jù)庫不同,它們的核心能力是執(zhí)行近似最近鄰(Approximate Nearest Neighbor, ANN)搜索

舉個(gè)例子,現(xiàn)在面臨一個(gè)巨大的挑戰(zhàn):圖書館里有數(shù)百萬甚至數(shù)十億本書。要如何才能快速找到離你最近的那幾本?

如果是精確查找(最近鄰,Nearest Neighbor, NN)是最笨但最準(zhǔn)確的方法,拿出尺子,測量你和圖書館里每一本書的距離,然后比較,找出最近的。這就是“精確查找”。它的結(jié)果100%準(zhǔn)確。但它的問題是致命的:當(dāng)書的數(shù)量達(dá)到百萬、億級別時(shí),逐一測量會花費(fèi)幾分鐘甚至幾個(gè)小時(shí)。在需要實(shí)時(shí)問答的RAG應(yīng)用里,這是完全不可接受的。

現(xiàn)在變成,聰明地查找(近似最近鄰,ANN)為了實(shí)現(xiàn)“秒級”響應(yīng),向量數(shù)據(jù)庫采用了一種更聰明的策略,比如說,我們在找書之前先做好了導(dǎo)覽圖,按照區(qū)域去找,你找到的是不是全館最精確、最貼近你的那一本書?不一定!也許最貼近的那本書恰好就在你沒檢查的鄰近區(qū)域的邊界上。但你找到的書,也已經(jīng)是“非常非常近”(比如全館第二近或第三近)的了。對于問答任務(wù)來說,這種程度的精度已經(jīng)完全足夠。ANN的本質(zhì):犧牲一點(diǎn)點(diǎn)“絕對的精確性”,來換取成千上萬倍的“查詢速度”。這就是近似最近鄰 (ANN) 搜索。“近似”這個(gè)詞是精髓,它代表了一種效率與精度的權(quán)衡。

所以最終結(jié)果就是能夠在大規(guī)模數(shù)據(jù)集上快速找到與查詢向量最相似的向量。流行的向量數(shù)據(jù)庫包括Pinecone, Milvus, Chroma, Weaviate等。

3.3 首要任務(wù):緩解幻覺與增強(qiáng)事實(shí)基礎(chǔ)

RAG架構(gòu)的設(shè)計(jì)初衷,正是為了解決標(biāo)準(zhǔn)LLM存在的幾個(gè)根本性問題。

待解決的問題定義

  • 幻覺(Hallucinations):指LLM在缺乏相關(guān)知識時(shí),會編造聽起來合理但實(shí)際上是錯(cuò)誤或虛構(gòu)的信息。這是LLM最受詬病的問題之一。
  • 知識截止(Knowledge Cutoff):LLM的知識是靜態(tài)的,僅限于其訓(xùn)練數(shù)據(jù)截止的那個(gè)時(shí)間點(diǎn)。它對之后發(fā)生的新事件、新發(fā)現(xiàn)一無所知。
  • 缺乏領(lǐng)域/專有知識:通用的基礎(chǔ)模型沒有經(jīng)過企業(yè)內(nèi)部的、私有的數(shù)據(jù)訓(xùn)練,因此無法回答與特定組織或?qū)I(yè)領(lǐng)域相關(guān)的問題。

RAG作為解決方案:

RAG通過一個(gè)核心機(jī)制來應(yīng)對這些問題:事實(shí)接地(Factual Grounding)。它強(qiáng)制LLM的生成過程必須從外部檢索到的、可驗(yàn)證的、最新的事實(shí)為基礎(chǔ),而不是僅僅依賴其內(nèi)部固化的參數(shù)化記憶。這種機(jī)制帶來了多重好處:

  1. 通過提供準(zhǔn)確的上下文,顯著降低了幻覺的發(fā)生率
  2. 通過連接到可實(shí)時(shí)更新的知識庫,克服了知識截止的問題。
  3. 通過安全地訪問私有數(shù)據(jù)庫,使得LLM能夠利用專有知識,同時(shí)保護(hù)數(shù)據(jù)隱私。

從系統(tǒng)層面看,RAG的性能表現(xiàn)如同一條環(huán)環(huán)相扣的鏈條,其最終強(qiáng)度取決于最薄弱的一環(huán)。

一個(gè)頂級的生成器(LLM)也無法彌補(bǔ)由糟糕的檢索器提供的劣質(zhì)上下文所帶來的缺陷。同樣,一個(gè)完美的檢索器,如果其所依賴的知識庫在最初的分塊階段就存在致命缺陷(例如,將關(guān)鍵信息分割在兩個(gè)不相連的文本塊中),那么它也無能為力。

知識庫中內(nèi)容缺失、檢索器未能找到相關(guān)文檔、檢索到的文檔在整合時(shí)被忽略,或是最終LLM未能從提供的上下文中正確提取答案,這些問題都有可能發(fā)生。這表明,構(gòu)建一個(gè)高性能的RAG系統(tǒng),并不僅僅是一個(gè)“LLM優(yōu)化問題”,而是一個(gè)復(fù)雜的“系統(tǒng)工程問題”。

所以一個(gè)團(tuán)隊(duì)想要做好RAG,需要對從數(shù)據(jù)清洗、攝取到最終生成輸出每一個(gè)環(huán)節(jié)都非常清楚的開發(fā)團(tuán)隊(duì),不僅需要懂提示工程,還需要數(shù)據(jù)工程和信息檢索。

第四章:RAG范式的演進(jìn)軌跡

自2020年誕生以來,RAG技術(shù)經(jīng)歷了飛速的迭代和發(fā)展,以應(yīng)對日益復(fù)雜的應(yīng)用需求。其演進(jìn)路徑可以清晰地劃分為三個(gè)主要階段:初級RAG(Naive RAG)、高級RAG(Advanced RAG)和模塊化RAG(Modular RAG)。這一演進(jìn)過程反映了該領(lǐng)域從簡單的概念驗(yàn)證到復(fù)雜的生產(chǎn)級系統(tǒng)的快速成熟過程。

RAG范式演進(jìn)對比

4.1 初級RAG:奠基性的“檢索-閱讀”模型

初級RAG,或稱樸素RAG,是RAG最基礎(chǔ)的實(shí)現(xiàn)形式。它嚴(yán)格遵循一個(gè)簡單的、線性的“索引 -> 檢索 -> 生成”流水線,不包含任何高級的優(yōu)化策略。這與Lewis等人最初提出的概念模型基本一致。

其流程非常直接。當(dāng)用戶輸入一個(gè)查詢時(shí),系統(tǒng)就會開始將查詢編碼為向量。在向量數(shù)據(jù)庫中進(jìn)行一次相似性搜索,檢索出Top-K個(gè)最相關(guān)的文本塊。將這些文本塊與原始查詢拼接成一個(gè)增強(qiáng)提示。最后該提示送入LLM以生成最終答案。

同樣弊端也很明顯。隨著其在更復(fù)雜場景中的應(yīng)用,檢索質(zhì)量低,檢索到的文本塊可能與查詢只有表面的關(guān)鍵詞重合,但語義上并不相關(guān),引入了大量噪聲。與此同時(shí),由于檢索質(zhì)量不高,生成階段也隨之受到影響。生成的答案可能重復(fù)冗余、邏輯不連貫,甚至在檢索到的信息充滿噪聲或不足時(shí),仍然會產(chǎn)生幻覺。

4.2 高級RAG:多管齊下的優(yōu)化方法

簡單說來,高級RAG就是在傳統(tǒng)的“先搜索、后回答”模式的基礎(chǔ)上,增加了一些“準(zhǔn)備”和“加工”的步驟,讓結(jié)果更靠譜。

這主要分為兩大步:

優(yōu)化搜索的“原材料”

這一步是在搜索之前,先把我們的知識庫和用戶的問題變得更好用。

優(yōu)化知識庫(索引優(yōu)化):不是簡單地把文章切成一段一段,而是**智能分段 (語義分塊),**按意思來切分文章,保證每一段話的意思都是完整連貫的,而不是在句子中間斷開。

在給文檔貼標(biāo)簽 (元數(shù)據(jù)與層次化索引),給每一段內(nèi)容加上作者、日期、章節(jié)等標(biāo)簽。搜索時(shí)可以先按標(biāo)簽篩選,或者先搜一個(gè)“內(nèi)容摘要”,找到相關(guān)的長文章后,再到文章內(nèi)部去找具體段落。這就像先通過看書的目錄找到章節(jié),再去看具體內(nèi)容一樣高效。

優(yōu)化用戶提問(查詢轉(zhuǎn)換):把用戶可能模糊的問題,變得更清晰、更適合機(jī)器搜索。

幫用戶把問題問得更好 (查詢重寫):用AI模型把用戶的簡單提問,改寫成一個(gè)更具體、更標(biāo)準(zhǔn)的問題。比如,你問“RAG有啥缺點(diǎn)?”,系統(tǒng)會自動幫你改成“檢索增強(qiáng)生成系統(tǒng)在實(shí)際應(yīng)用中,主要有哪些技術(shù)挑戰(zhàn)和限制?”這樣更容易搜到精準(zhǔn)答案。

讓AI“猜”一個(gè)完美答案 (假設(shè)性文檔嵌入):這個(gè)方法很巧妙。系統(tǒng)不直接搜索你的問題,而是先讓AI根據(jù)你的問題,“想象”并生成一個(gè)最完美的答案(一個(gè)“假”的文檔)。然后,系統(tǒng)拿著這個(gè)“假想的完美答案”去知識庫里找最相似的真實(shí)文檔。因?yàn)檫@個(gè)假想答案和真實(shí)答案在意思上會非常接近。

后置檢索策略:精煉上下文

這些策略發(fā)生在檢索之后、生成之前,目標(biāo)是對檢索到的初步結(jié)果進(jìn)行篩選和提純,為LLM提供最高質(zhì)量的上下文。

重排序(Re-ranking):這是一個(gè)兩階段的過濾過程。首先,一個(gè)快速但相對粗糙的檢索器(如向量搜索)從海量文檔中召回一個(gè)較大的候選集(例如Top 50)。然后,一個(gè)更強(qiáng)大、更復(fù)雜但計(jì)算成本也更高的模型(通常是交叉編碼器 Cross-encoder)會對這個(gè)小規(guī)模的候選集進(jìn)行二次打分和排序,以找出真正最相關(guān)的幾個(gè)文檔。交叉編碼器能夠同時(shí)處理查詢和文檔,從而進(jìn)行更深層次的相關(guān)性判斷,其精度遠(yuǎn)高于雙編碼器 21。

上下文壓縮/選擇(Context Compression/Selection):在將檢索到的內(nèi)容送入LLM之前,主動對其進(jìn)行壓縮和篩選。這包括移除與查詢無關(guān)的句子或段落,或者對多個(gè)文檔進(jìn)行摘要,以去除噪聲和冗余信息。這樣做的好處是雙重的:一是幫助LLM聚焦于最關(guān)鍵的證據(jù),避免“信息過載”;二是可以有效管理輸入LLM的token數(shù)量,防止超出其上下文窗口限制 22。

4.3 模塊化RAG:邁向可組合、靈活且可擴(kuò)展的架構(gòu)

模塊化RAG不僅是一系列技術(shù)的集合,更代表了一種根本性的系統(tǒng)設(shè)計(jì)范式轉(zhuǎn)變。它將原本線性的RAG流水線分解為多個(gè)獨(dú)立的、可插拔的、可獨(dú)立優(yōu)化的功能模塊,如檢索、推理、記憶和生成等。

核心組件與概念

  • 搜索模塊(Search Module):這不再是一個(gè)單一的檢索器,而是一個(gè)可以集成多種檢索策略(如向量搜索、關(guān)鍵詞搜索、知識圖譜搜索)的復(fù)合模塊。它甚至可以包含一個(gè)“查詢路由器”(Query Router),根據(jù)查詢的類型和意圖,智能地將其分發(fā)給最合適的檢索方法。
  • 推理模塊(Reasoning Module):該模塊可以執(zhí)行更復(fù)雜的操作,例如將復(fù)雜問題分解為多個(gè)子問題(Query Decomposition),然后進(jìn)行迭代式檢索(Iterative Retrieval),即根據(jù)第一輪檢索的結(jié)果生成新的查詢,進(jìn)行多輪檢索,模擬人類的研究過程。
  • 記憶模塊(Memory Module):該模塊可以集成對話歷史記錄,使RAG能夠處理多輪對話。更高級的實(shí)現(xiàn)甚至可以利用LLM自身生成的內(nèi)容作為一種“自記憶”(Self-memory),在后續(xù)的生成中加以利用,從而實(shí)現(xiàn)持續(xù)學(xué)習(xí)。
  • 融合/合并模塊(Fusion/Merging):當(dāng)系統(tǒng)通過多查詢或多源檢索獲得了多個(gè)結(jié)果集時(shí),需要一個(gè)智能的模塊來合并這些結(jié)果。例如,RAG-Fusion技術(shù)利用重排序算法來整合來自多個(gè)子查詢的結(jié)果,以提高最終檢索的魯棒性。
  • 反饋循環(huán)(Feedback Loops):模塊化架構(gòu)使得引入反饋機(jī)制變得更加容易。例如,可以利用用戶的隱式反饋(如點(diǎn)擊)或顯式反饋(如評分),通過強(qiáng)化學(xué)習(xí)(如RLHF)來持續(xù)優(yōu)化檢索模塊或生成模塊的性能。

這里先做個(gè)總結(jié),初級RAG好比一個(gè)簡單的、單體的Python腳本,足以完成一個(gè)功能演示。高級RAG則像是在這個(gè)腳本中加入了特定的庫和函數(shù)來優(yōu)化性能。而模塊化RAG,則代表了向基于微服務(wù)的理念的飛躍。每個(gè)組件(檢索、重排、生成)都被視為一個(gè)獨(dú)立的、可獨(dú)立部署和擴(kuò)展的服務(wù),它們之間通過定義清晰的API進(jìn)行通信。

第五章:下一代RAG架構(gòu)

5.1 Agent自適應(yīng)RAG:自主多步推理的曙光

當(dāng)前RAG的主流范式仍是一個(gè)線性的流水線,而被動地響應(yīng)用戶的單次查詢。未來的一個(gè)重要演進(jìn)方向,是從這種被動的“流水線”模式轉(zhuǎn)變?yōu)橹鲃拥摹?strong>代理式RAG”(Agentic RAG)模型。

從流水線到Agent

在代理式范式中,LLM的角色發(fā)生了根本性的轉(zhuǎn)變。它不再僅僅是流水線的終點(diǎn)(生成器),而是成為了一個(gè)能夠進(jìn)行規(guī)劃、推理和決策的自主Agent(Autonomous Agent)。檢索系統(tǒng)則從一個(gè)固定的處理環(huán)節(jié),轉(zhuǎn)變?yōu)榇砜梢园葱枵{(diào)用的“工具”(Tool)。

可以把新一代的RAG系統(tǒng)想象成一個(gè)從“初級員工”升級為了“高級專家”的AI。這個(gè)“專家”有三個(gè)核心的專業(yè)能力:

迭代式推理與檢索 (Iterative Reasoning and Retrieval)

這改變了過去“一問一搜一答”的簡單模式。現(xiàn)在,AI面對一個(gè)復(fù)雜問題時(shí),更像一個(gè)策略分析師在做深度研究。

工作模式:它會先將大問題分解成若干個(gè)邏輯子問題。接著,它進(jìn)行第一輪檢索,然后基于初步獲得的信息,動態(tài)地生成更精準(zhǔn)的新查詢,進(jìn)行第二輪、第三輪的探索,層層遞進(jìn)。

專業(yè)價(jià)值:這種迭代循環(huán)的能力,讓它能處理那些信息交錯(cuò)、單次搜索無法覆蓋的復(fù)雜或模糊查詢,逐步逼近最全面的答案。

動態(tài)工具使用 (Dynamic Tool Use)

在這里,Agent(智能代理)扮演了一個(gè)智能任務(wù)調(diào)度員的角色,擁有了自主決策權(quán)。

工作模式:它能根據(jù)問題的具體性質(zhì),實(shí)時(shí)判斷應(yīng)該調(diào)用哪個(gè)工具。比如,它會分析是應(yīng)該查詢內(nèi)部的向量數(shù)據(jù)庫,還是需要連接SQL數(shù)據(jù)庫提取結(jié)構(gòu)化數(shù)據(jù),抑或是必須執(zhí)行一次網(wǎng)絡(luò)搜索來獲取最新動態(tài)。

專業(yè)價(jià)值:這體現(xiàn)了系統(tǒng)的靈活性和資源優(yōu)化能力。它不再局限于單一知識源,而是能整合并調(diào)用最合適的工具來完成任務(wù),大大拓寬了其應(yīng)用場景和解決問題的上限。

自我校正與反思 (Self-Correction and Reflection)

這相當(dāng)于為系統(tǒng)內(nèi)置了一套“元認(rèn)知”和“質(zhì)量控制”機(jī)制。

工作模式:在檢索和推理的過程中,它會持續(xù)評估自己找到的信息質(zhì)量。如果判斷當(dāng)前信息關(guān)聯(lián)性不強(qiáng),或者不足以形成高質(zhì)量的回答,它能夠主動“叫?!辈ⅰ胺此肌?/strong>,然后嘗試一種全新的檢索策略或換用其他工具。

專業(yè)價(jià)值:這極大地提升了系統(tǒng)的魯棒性 (Robustness),避免了在錯(cuò)誤或低效的路徑上“一條路走到黑”,實(shí)現(xiàn)了動態(tài)的自我優(yōu)化和糾錯(cuò)。

5.2 多模態(tài)與圖增強(qiáng)RAG:超越文本的知識邊界

RAG系統(tǒng)將不再只是一個(gè)“文本處理專家”,它正在進(jìn)化,學(xué)習(xí)如何看懂、聽懂、并理解事物之間復(fù)雜的關(guān)系。

多模態(tài)RAG (Multimodal RAG):讓RAG擁有“五感”

這個(gè)方向的核心是讓RAG打破文本的次元壁,能夠理解和關(guān)聯(lián)圖片、聲音、視頻等多種類型的數(shù)據(jù)。

工作原理:它依賴于一種叫做“多模態(tài)嵌入模型”的技術(shù)。你可以把這個(gè)模型想象成一個(gè)“通用翻譯器”,它能把一張圖片的內(nèi)容、一段話的意思、甚至一段音頻的含義,都翻譯成一種通用的“數(shù)學(xué)語言”(即映射到共享的向量空間)。這樣一來,不同類型信息的可比性就打通了。

專業(yè)價(jià)值:這使得“跨模態(tài)檢索”成為可能。

舉個(gè)例子,比如:你可以用文字提問“給我看所有關(guān)于‘骨裂’的X光片”,系統(tǒng)能直接理解并找出相關(guān)的醫(yī)學(xué)影像。更進(jìn)一步,系統(tǒng)可以像一個(gè)專家小組一樣,同時(shí)分析患者的X光片(圖像)、電子病歷(結(jié)構(gòu)化數(shù)據(jù))和相關(guān)醫(yī)學(xué)文獻(xiàn)(文本),最終綜合所有信息,生成一個(gè)更全面、更可靠的診斷建議。

圖增強(qiáng)RAG (GraphRAG):賦予RAG“邏輯推理腦”

這個(gè)方法引入了知識圖譜 (Knowledge Graphs, KGs),為RAG裝上了一個(gè)結(jié)構(gòu)化、邏輯化的“大腦”,用它來補(bǔ)充甚至替代傳統(tǒng)的文本庫。

知識圖譜是什么?:它不是一堆雜亂的文檔,而是一個(gè)由“實(shí)體-關(guān)系-實(shí)體”構(gòu)成的巨型關(guān)系網(wǎng)絡(luò)。比如,“湯姆·漢克斯”是一個(gè)實(shí)體,“《阿甘正傳》”是另一個(gè)實(shí)體,“主演”就是它們之間的關(guān)系。所有知識都以這種清晰、明確的方式連接在一起。

相比傳統(tǒng)文本檢索,GraphRAG有兩大核心優(yōu)勢

足夠精確:知識圖譜中的事實(shí)是結(jié)構(gòu)化的,就像數(shù)據(jù)庫里的條目一樣清晰,沒有文本中常見的模糊和歧義。檢索結(jié)果因此變得極其精準(zhǔn)。

多跳推理 (Multi-hop Reasoning):這是它最強(qiáng)大的能力。當(dāng)回答一個(gè)問題需要串聯(lián)多個(gè)事實(shí)時(shí),GraphRAG可以在這個(gè)“關(guān)系網(wǎng)絡(luò)”上進(jìn)行“跳躍”,從而發(fā)現(xiàn)深層的、間接的聯(lián)系。

比如你問“哪位導(dǎo)演執(zhí)導(dǎo)了由湯姆·漢克斯主演、并且獲得了奧斯卡最佳影片的電影?”

它的推理路線就是系統(tǒng)會從“湯姆·漢克斯”這個(gè)點(diǎn)出發(fā),找到所有他“主演”的電影(第一跳),然后從這些電影中篩選出“獲得奧斯卡最佳影片”的那些(第二跳),最后再順著這條線找到對應(yīng)電影的“導(dǎo)演”(第三跳)。這種“連接零散信息點(diǎn)”的推理能力,對于從海量數(shù)據(jù)中挖掘隱藏關(guān)系至關(guān)重要。

最后做個(gè)總結(jié)

首先,我們可以達(dá)成一個(gè)共識:RAG(檢索增強(qiáng)生成)已不再僅僅是一個(gè)巧妙的技術(shù)工具,它已經(jīng)演變?yōu)楝F(xiàn)代AI應(yīng)用,尤其是企業(yè)級AI的核心支柱。它的發(fā)展歷程,清晰地揭示了整個(gè)AI領(lǐng)域的一個(gè)重要轉(zhuǎn)向:我們正從對“更大模型”的單一崇拜,轉(zhuǎn)向構(gòu)建“更智能、更高效的混合式系統(tǒng)”

RAG的核心價(jià)值在于,它通過將知識“外掛”的方式,成功地讓大模型在應(yīng)用中變得更精準(zhǔn)、可控、可信,且成本更優(yōu)。

未來發(fā)展的幾點(diǎn)思考:

基于當(dāng)前進(jìn)展,以下幾個(gè)方向不僅是RAG未來的研究焦點(diǎn),更是值得我們深入思考的戰(zhàn)略性問題。

思考點(diǎn)一:RAG系統(tǒng)的“成本與收益”如何平衡?

隨著代理式RAG(Agentic RAG)的出現(xiàn),系統(tǒng)變得空前強(qiáng)大,能夠進(jìn)行復(fù)雜的推理和多步操作。但這立刻帶來了一個(gè)現(xiàn)實(shí)的權(quán)衡問題:

智能的代價(jià)是什么? 更復(fù)雜的推理鏈條,必然意味著更長的響應(yīng)延遲和更高的計(jì)算成本。

我們該如何抉擇? 未來的挑戰(zhàn)在于,如何設(shè)計(jì)一個(gè)自適應(yīng)的控制系統(tǒng),使其能根據(jù)任務(wù)的重要性和復(fù)雜度,動態(tài)地在“極致智能”與“經(jīng)濟(jì)高效”之間找到最佳平衡點(diǎn)。這不僅是技術(shù)問題,更是決定其能否大規(guī)模商業(yè)化應(yīng)用的關(guān)鍵。

思考點(diǎn)二:如何跨越模態(tài)的鴻溝?

多模態(tài)RAG的目標(biāo)是讓AI能像人一樣,綜合處理文本、圖像、數(shù)據(jù)等多種信息。但真正的挑戰(zhàn)在于:

如何實(shí)現(xiàn)深度融合? 當(dāng)前的技術(shù)更多是“拼接”不同來源的信息。未來的突破點(diǎn)在于,如何讓模型真正理解并推理不同模態(tài)信息之間的深層關(guān)聯(lián),從而產(chǎn)生1+1>2的“知識涌現(xiàn)”?

例如,系統(tǒng)不僅是找到設(shè)計(jì)圖紙和銷售報(bào)告,而是能理解圖紙上的某個(gè)設(shè)計(jì)變更,是如何導(dǎo)致了銷售報(bào)告中的負(fù)面反饋。

https://www.numberanalytics.com/blog/future-of-open-domain-question-answering

https://www.forbes.com/councils/forbestechcouncil/2025/06/23/how-retrieval-augmented-generation-could-solve-ais-hallucination-problem/

https://blogs.nvidia.com/blog/what-is-retrieval-augmented-generation/

https://www.ibm.com/think/topics/rag-techniques

本文由 @胡泊Hubo 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!