一文了解RAG到底是什么?

0 評(píng)論 2204 瀏覽 8 收藏 17 分鐘

在人工智能領(lǐng)域,RAG(Retriever-Augmented Generation)技術(shù)正逐漸成為提升自然語言處理任務(wù)性能的關(guān)鍵。這種結(jié)合了檢索與生成的模型架構(gòu),通過從大量文檔中檢索相關(guān)信息,并利用這些信息生成響應(yīng)或文本,顯著提高了預(yù)測(cè)的準(zhǔn)確性。

最近在負(fù)責(zé)調(diào)研RAG產(chǎn)品,雖然之前通過Dify和Coze使用過其中知識(shí)庫的RAG功能,但始終對(duì)其相關(guān)配置能力的理解還較為有限。

RAG(Retriever-Augmented Generation)是一種將檢索與生成相結(jié)合的人工智能模型架構(gòu)。

當(dāng)大模型回答問題或生成文本,首先從大量文檔中檢索相關(guān)信息,隨后再利用這些檢索到的信息來生成響應(yīng)或文本,從而提高預(yù)測(cè)的質(zhì)量。

其主要用于知識(shí)密集型的自然語言處理任務(wù),尤其是在需要結(jié)合外部知識(shí)庫的信息生成高質(zhì)量文本的場(chǎng)景中。

于是在惡補(bǔ)了2周知識(shí)后,結(jié)合自己所關(guān)注的點(diǎn),現(xiàn)梳理出一篇關(guān)于RAG到底是什么的文章(其中大部分信息來源于整合,小部分內(nèi)容為個(gè)人見解)。

本文將分為3大部分:

1、RAG到底是什么?

2、RAG能幫助企業(yè)做什么?

3、RAG未來將怎樣發(fā)展?

01 RAG到底是什么?

2020年,首次出現(xiàn)了RAG這個(gè)概念,但其真正火起來也是自ChatGPT發(fā)布以后(2022年12月)才開始的。前面應(yīng)用ChatGPT給出了官方一些的說明,本質(zhì)上其給大模型帶來的價(jià)值可以粗略提煉為:沒有應(yīng)用RAG技術(shù)的大模型在回答問題時(shí)是閉卷考試,而應(yīng)用了RAG技術(shù)的大模型則是——通過外掛了一個(gè)知識(shí)庫來實(shí)現(xiàn)開卷考試。

目前大模型在生成回答時(shí)有3大問題:容易出現(xiàn)幻覺、缺乏專業(yè)知識(shí)、回答缺乏可解釋性,而RAG技術(shù)通過外掛專業(yè)的知識(shí)庫、在生成答案時(shí)結(jié)合知識(shí)庫回答問題、同時(shí)在最終生成結(jié)果中展示知識(shí)庫信息來源,一定程度上有效的解決了這3大問題。

那么,RAG是怎樣解決上面這3大問題的呢?

首先我們來看一下RAG的架構(gòu),整體分為索引、檢索、增強(qiáng)、生成4個(gè)大的階段:

1.1 索引Indexing

這一步指通過內(nèi)容分塊、向量化等方式,生成索引并存入向量數(shù)據(jù)庫。為什么這里這么麻煩,既要分塊又要做向量化處理來建索引,而不是像一些關(guān)系型數(shù)據(jù)庫直接去建立索引呢?

這是核心因?yàn)?個(gè)點(diǎn):

(1)大模型需要通過向量化去建立語義理解。

通過將包含高維信息的知識(shí)降維拍到向量空間里,這些知識(shí)就變成了一堆數(shù)字串;此時(shí),當(dāng)用戶去提問時(shí),先將提問的知識(shí)向量化變成一串?dāng)?shù)字后,再從知識(shí)庫中通過余弦計(jì)算等方式找出和用戶提問數(shù)字串最相似的信息出來,這就完成了所謂的語義理解(當(dāng)然這塊還有復(fù)雜的對(duì)稱和不對(duì)稱計(jì)算等,不做展開了)。

(2)分塊能夠有效提升檢索效率和緩解上下文長(zhǎng)度限制。

理想狀態(tài)下,在檢索時(shí)將每個(gè)信息都遍歷一遍肯定就不會(huì)漏信息了,但是當(dāng)信息量大且不能讓用戶等待過久的時(shí)候,還是需要更高效和更具性價(jià)比的方式;同時(shí),大模型一次能輸入的上下文有長(zhǎng)度限制,雖然已經(jīng)有大模型將上下文長(zhǎng)度延伸至了更高量級(jí),但似乎實(shí)驗(yàn)證明更大的上下文窗口不一定對(duì)檢索結(jié)果更有效。

而分塊技術(shù),則可以理解為將一篇50w字的書籍文檔按照段落或者語義等方式劃分成n個(gè)塊。這樣,既能夠有效解決上下文長(zhǎng)度限制問題,同時(shí)也對(duì)于檢索有一定的效率提升;但同時(shí)也存在可能會(huì)丟失文檔的全局結(jié)構(gòu)、不同塊之間的前后邏輯等問題(不過這些問題都在陸續(xù)通過建立重疊上下塊內(nèi)容、建立塊的類似索引結(jié)構(gòu)等方式逐漸解決中)。

1.2 檢索Retrieval

當(dāng)用戶提問后,通過檢索技術(shù)則可以從知識(shí)庫中召回相關(guān)內(nèi)容塊。根據(jù)2024年一篇很火的RAG論文,其將RAG劃分為3大范式:原生RAG、先進(jìn)RAG、模塊化RAG。

目前2024年基本大部分廠商已經(jīng)在第二步(先進(jìn)RAG)這一層面了,例如Dify就有全文檢索和向量檢索2種模式。

因此,在檢索這一步,我特地畫了2種混合檢索來做示意,個(gè)人判斷混合檢索會(huì)是未來的一大趨勢(shì),因?yàn)槊糠N檢索都有其優(yōu)勢(shì)和弊端,只有結(jié)合才能取長(zhǎng)補(bǔ)短。而檢索方式將不局限于關(guān)鍵詞檢索和向量檢索,最終的形態(tài)一定是多種檢索方式的結(jié)合和互補(bǔ)。當(dāng)混合檢索結(jié)束后,再通過一個(gè)Rerank的機(jī)制重新對(duì)不同渠道的檢索結(jié)果做一個(gè)最終的整合和排序。

1.3 增強(qiáng)Augment

當(dāng)重排序結(jié)束后,將生成最終前n個(gè)匹配度最高的內(nèi)容塊,將這些內(nèi)容塊與用戶的查詢、系統(tǒng)配置的prompt等做整合,一并讓大模型根據(jù)這些信息生成最終的回答。

在整個(gè)完整的RAG過程中,索引和檢索將極大的影響最終生成的質(zhì)量。

02 RAG能幫助企業(yè)做什么?

從下述生成式AI技術(shù)應(yīng)用跟蹤來看,目前最常見的幾大使用場(chǎng)景:知識(shí)助手、智能客服、數(shù)據(jù)分析等無一例外都應(yīng)用到了知識(shí)庫及RAG技術(shù)。

當(dāng)企業(yè)某一業(yè)務(wù)存在大量重復(fù)性、知識(shí)密集型且標(biāo)準(zhǔn)化較高的特征時(shí),則可以考慮使用RAG來搭建一個(gè)問答機(jī)器人。如果是搭建基礎(chǔ)知識(shí)問答助手,F(xiàn)astGPT、Dify社區(qū)版、Coze都可以很快捷地進(jìn)行知識(shí)庫的搭建,也有完整的FAQ支持。

以我們公司為例,產(chǎn)品本身專業(yè)性強(qiáng)所以使用門檻較高,因此搭建了圍繞產(chǎn)品使用的問答助手;

某醫(yī)療公司每年都會(huì)推出新的醫(yī)療器械、醫(yī)藥等,醫(yī)藥代表不一定能及時(shí)記憶最新的產(chǎn)品和細(xì)節(jié),則可以通過新產(chǎn)品問答助手隨時(shí)查詢圍繞產(chǎn)品的細(xì)節(jié);

而某高端社區(qū)打造了社區(qū)內(nèi)部的社群服務(wù),每天都要頻繁被咨詢?nèi)绾蝿?chuàng)建社群、如何參加活動(dòng)、停車、wifi等問題,此時(shí)他們則選擇通過AI客服助手來解決重復(fù)回答效率低的問題。

如今的AI問答其優(yōu)勢(shì)在于能夠很好的理解自然語言、并很好的生成自然語言,這讓對(duì)話不再顯得是那么的「人工智障」和生硬(雖然又會(huì)容易存在幻覺問題,但問題總在解決的過程中嘛)。

當(dāng)然,如果是搭建復(fù)雜的知識(shí)問答助手,其難點(diǎn)還是在于:

  1. 面向問答機(jī)器人使用場(chǎng)景下,額外所需的文檔整理:例如某企業(yè)做了一個(gè)財(cái)務(wù)助手,對(duì)于某項(xiàng)報(bào)銷條款,不同角色能看到的內(nèi)容是不同的,而這就倒逼企業(yè)對(duì)該條款進(jìn)行一些元數(shù)據(jù)的二次處理
  2. 面向特定使用場(chǎng)景的索引與檢索策略:不同使用場(chǎng)景的前述2種策略往往有差異。

例如某產(chǎn)品推薦場(chǎng)景下,針對(duì)結(jié)構(gòu)化的產(chǎn)品數(shù)據(jù)則不需要做內(nèi)容分塊,直接針對(duì)字段進(jìn)行向量化和關(guān)鍵詞檢索即可;

針對(duì)某醫(yī)療問診助手場(chǎng)景下的大量非結(jié)構(gòu)化和疾病相關(guān)的pdf文檔,則需要分塊向量化;

而針對(duì)某社區(qū)提供的社群?jiǎn)柎鹬謭?chǎng)景,其直接提供了數(shù)十個(gè)Q&A結(jié)構(gòu)的文檔,那自然按照原始的Q&A結(jié)構(gòu)去做問題的分塊,才能更好的保證最終的檢索結(jié)果。

03 RAG未來將怎樣發(fā)展?

2024年這一年,RAG領(lǐng)域出現(xiàn)了非常多的論文,夸張的時(shí)候一周可能有十多篇。同時(shí),根據(jù)下圖這篇報(bào)告,2024年RAG占據(jù)設(shè)計(jì)的主導(dǎo)地位,而提示詞和微調(diào)已逐漸有些弱化掉了。這說明,RAG正處在一個(gè)大家對(duì)其充滿期望和肯定的蓬勃探索期。

這一年,RAG領(lǐng)域涌現(xiàn)了諸多新思路和新技術(shù),以下列舉比較熱門的3個(gè):

1、通過提煉內(nèi)容結(jié)構(gòu)和宏觀理解等來縮減語義鴻溝:如GraphRAG、SiReRAG、RAPTOR

以GraphRAG為例,這是一種微軟在24年中開源的圖RAG技術(shù),其本質(zhì)上是將知識(shí)圖譜和RAG做了融合。

通過利用大模型自動(dòng)抽取文檔內(nèi)的命名實(shí)體,然后利用這些實(shí)體自動(dòng)構(gòu)建知識(shí)圖譜。在圖譜中,同樣利用聚類產(chǎn)生實(shí)體聚集的“社區(qū)”,并利用 LLM 生成這些社區(qū)的摘要。在召回的時(shí)候,知識(shí)圖譜的實(shí)體、邊、以及社區(qū)摘要,它們連同原始文檔一起來做混合召回。

由于這些數(shù)據(jù)同樣形成了文檔中跨 Chunk 的關(guān)聯(lián)信息,因此對(duì)于宏觀性提問,多跳提問,有著更好的效果。GraphRAG 可以看作是解決語義鴻溝的當(dāng)下行之有效的策略和架構(gòu)。

2、通過Agent來加強(qiáng)RAG:即Agentic RAG

RAG 本身是 Agent 的重要算子,它可以解鎖 Agent 訪問內(nèi)部數(shù)據(jù)的能力;Agent 直接用于 RAG,可以提供高級(jí) RAG 能力,這就是所謂 Agentic RAG。

在RAG的過程中,諸如該如何進(jìn)行分塊、該如何選擇檢索方式、如何選擇最終召回結(jié)果、召回效果怎么樣評(píng)估、基于多跳問題該如何補(bǔ)足等,都可以利用大模型的能力打造一個(gè)獨(dú)立的Agent來實(shí)現(xiàn)。

3、多模態(tài)RAG

未來的 RAG 系統(tǒng)不僅限于文本檢索,還將能夠處理圖像、音頻等多種媒體類型。大模型將能夠理解并生成包含文本、圖像和聲音的信息,為用戶提供更豐富的互動(dòng)體驗(yàn)。

對(duì)于RAG未來將怎樣發(fā)展這個(gè)命題,我同意RAGFlow負(fù)責(zé)人的觀點(diǎn):

RAG 就相當(dāng)于過去的數(shù)據(jù)庫,對(duì)外暴露的接口無比簡(jiǎn)單,內(nèi)部卻無比復(fù)雜,它不僅僅包含了數(shù)據(jù)庫本身,還包含了各種小模型以及把它們串接起來的工具,從本質(zhì)上來說,它就是過去的企業(yè)搜索引擎在大模型時(shí)代的進(jìn)化,但它又大大超出了搜索引擎本身的范疇。

最后呢,我對(duì)未來的RAG的設(shè)想有如下3個(gè):

1)未來的RAG應(yīng)該是在數(shù)據(jù)源和上層AI應(yīng)用中間去搭建橋梁的關(guān)鍵角色。

基于上層AI應(yīng)用的訴求,對(duì)數(shù)據(jù)源制定不同的RAG策略,從而讓RAG能夠更好的服務(wù)于應(yīng)用的效果。

2)未來的RAG會(huì)因?yàn)槲⒄{(diào)和大模型本身的技術(shù)/性能突破而變得更加簡(jiǎn)單和統(tǒng)一化。

現(xiàn)在的很多RAG策略其實(shí)都是為了補(bǔ)足微調(diào)和大模型的短板而設(shè)計(jì)的,就像2023年最火的技術(shù)是門檻最低的Prompt、2024年最火的技術(shù)是RAG、2025年最火的技術(shù)將是Agent一樣,未來門檻越高的技術(shù)(如微調(diào))將逐漸變低,這對(duì)原來更為簡(jiǎn)單的技術(shù)會(huì)造成極大的影響。

而關(guān)于RAG的各類思路、技術(shù)也將逐漸收斂,其范式也將逐漸趨于穩(wěn)定和主流。

3)未來的RAG將作為關(guān)鍵支撐層服務(wù)于Agent。

講到這里,一定會(huì)有很多伙伴提出問題,就是未來的演進(jìn)究竟是RAG把自己變成一個(gè)Agent平臺(tái),還是各種Agent平臺(tái)把自己的RAG能力增強(qiáng)?這個(gè)趨勢(shì)很難預(yù)測(cè):正如我們?cè)跀?shù)字化時(shí)代,究竟是做數(shù)倉的,把做中臺(tái)這種包含業(yè)務(wù)的事情也做下來,還是做業(yè)務(wù)的最終下沉自身技術(shù)能力提供更好的數(shù)倉,兩者都有先例。

針對(duì)RAGFlow負(fù)責(zé)人對(duì)于RAG和Agent關(guān)系的如上觀點(diǎn),我有不一樣的看法:我認(rèn)為RAG最終還是要服務(wù)于Agent的。

客戶不可能用A平臺(tái)去做獨(dú)立的知識(shí)庫、B平臺(tái)去做獨(dú)立的Agent;客戶也不可能停留在做一個(gè)以RAG技術(shù)為主的問答助手,除了基礎(chǔ)問答外,肯定會(huì)伴隨著希望更多的流程和SOP自動(dòng)化智能化。此時(shí),就會(huì)優(yōu)先選擇Agent平臺(tái)去做集成:既能做流程、又能做知識(shí)。

因此,如果選擇繼續(xù)做RAG類產(chǎn)品:

  1. 至少要比agent平臺(tái)的知識(shí)庫做的靈活和更好(例如RAG三大范式里的Modular RAG)
  2. 設(shè)計(jì)好開放能力、準(zhǔn)備和更多的上層Agent應(yīng)用做對(duì)接和被集成

That’s all,以上就是對(duì)RAG的一些初步整合和淺見,如有問題煩請(qǐng)指正~后續(xù)也將針對(duì)RAG領(lǐng)域做更多產(chǎn)品類調(diào)研,歡迎關(guān)注。

專欄作家

冰冰醬;公眾號(hào):冰冰醬啊,人人都是產(chǎn)品經(jīng)理專欄作家。5年產(chǎn)品經(jīng)驗(yàn),創(chuàng)過業(yè)、帶過人、踩過坑;獨(dú)立負(fù)責(zé)從0-1搭建業(yè)務(wù)中臺(tái),持續(xù)深耕B端及SaaS領(lǐng)域。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,不得轉(zhuǎn)載。

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

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

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