談?wù)凴ag的產(chǎn)生原因、基本原理與實(shí)施路徑

3 評(píng)論 3967 瀏覽 25 收藏 26 分鐘

在人工智能領(lǐng)域,RAG技術(shù)正成為推動(dòng)大模型應(yīng)用的關(guān)鍵。本文將深入探討RAG技術(shù)的原理、挑戰(zhàn)以及在不同階段的優(yōu)化策略,幫助讀者全面了解并有效實(shí)施這一技術(shù)。如果你對(duì)提升AI Agent的性能感興趣,不妨繼續(xù)閱讀。

《大佬們都在關(guān)注的AI Agent,到底是什么?用5W1H分析框架拆解AI Agent(上篇)》中,風(fēng)叔提到要實(shí)現(xiàn)良好的AI Agent性能,RAG技術(shù)的使用至關(guān)重要,今天我們就來(lái)重點(diǎn)談一談RAG。

一、什么是Rag?

RAG,Retrieval-Augmented Generation,中文名檢索增強(qiáng)生成,是AI領(lǐng)域非常重要的一種技術(shù)方案。其核心作用是給LLM大模型外掛專(zhuān)門(mén)的知識(shí)庫(kù),指導(dǎo)大模型生成更準(zhǔn)確的輸出。

為什么要給LLM大模型外掛知識(shí)庫(kù)呢?因?yàn)殡m然大模型的能力越來(lái)越強(qiáng)大,但其內(nèi)在的缺點(diǎn)也非常明顯。

第一,存在幻覺(jué)問(wèn)題。LLM大模型的底層原理是基于數(shù)學(xué)概率進(jìn)行預(yù)測(cè),其模型輸出本質(zhì)上是一種概率預(yù)測(cè)的結(jié)果。所以LLM大模型有時(shí)候會(huì)出現(xiàn)胡言亂語(yǔ),或者生成一些似是而非的答案,在大模型并不擅長(zhǎng)的領(lǐng)域,幻覺(jué)問(wèn)題會(huì)更加嚴(yán)重。使用者要區(qū)分幻覺(jué)問(wèn)題是非常困難的,除非使用者本身就具備了相應(yīng)領(lǐng)域的知識(shí),但這里就會(huì)存在矛盾,已經(jīng)具備相關(guān)知識(shí)的人是不會(huì)采用大模型生成的答案的。

第二,缺乏對(duì)生成結(jié)果的可解釋性。LLM大模型本身就是一個(gè)黑盒,這個(gè)模型使用了什么數(shù)據(jù)進(jìn)行訓(xùn)練,對(duì)齊策略是怎么樣的,使用者都無(wú)從得知。所以對(duì)于大模型生成的答案,更加難以追蹤溯源。

第三,缺乏對(duì)專(zhuān)業(yè)領(lǐng)域知識(shí)的理解。LLM大模型知識(shí)的獲取嚴(yán)重依賴(lài)訓(xùn)練數(shù)據(jù)集的廣度,但目前市面上大多數(shù)的數(shù)據(jù)訓(xùn)練集都來(lái)源于網(wǎng)絡(luò)公開(kāi)數(shù)據(jù),對(duì)于企業(yè)內(nèi)部數(shù)據(jù)、特定領(lǐng)域或高度專(zhuān)業(yè)化的知識(shí),大模型無(wú)從學(xué)習(xí)。因此大模型的表現(xiàn)更像是一個(gè)及格的通才,但是在一些專(zhuān)業(yè)場(chǎng)景,比如企業(yè)內(nèi)部的業(yè)務(wù)流,一個(gè)及格的通才是無(wú)法使用的,需要利用企業(yè)的專(zhuān)屬數(shù)據(jù)進(jìn)行喂養(yǎng)和訓(xùn)練,打造為優(yōu)秀的專(zhuān)才。

第四,數(shù)據(jù)的安全性。這是對(duì)上面第三點(diǎn)的延伸,沒(méi)有企業(yè)愿意承擔(dān)數(shù)據(jù)泄露的風(fēng)險(xiǎn),將自身的私域數(shù)據(jù)上傳第三方平臺(tái)進(jìn)行訓(xùn)練。因此,完全依賴(lài)通用大模型自身能力的應(yīng)用方案,在企業(yè)場(chǎng)景下是行不通的。

第五,知識(shí)的時(shí)效性不足。大模型的內(nèi)在結(jié)構(gòu)會(huì)被固化在其被訓(xùn)練完成的那一刻,但是當(dāng)你詢(xún)問(wèn)大模型一些最新發(fā)生的事情,則難以給出答案。

為了克服這些問(wèn)題,第一種方式是微調(diào),即Finetune。但是由于生成模型依賴(lài)于內(nèi)在知識(shí),也就是各類(lèi)參數(shù)的權(quán)重,即使做了微調(diào),模型還是無(wú)法擺脫幻覺(jué)問(wèn)題。此外在實(shí)際場(chǎng)景中,很多新的信息、數(shù)據(jù)、政策每時(shí)每刻都在產(chǎn)生,除非對(duì)模型進(jìn)行高頻的微調(diào),否則模型的訓(xùn)練速度永遠(yuǎn)趕不上外部信息更新的速度,而高頻微調(diào)的成本就太高了,

在2020 年,Meta AI 的研究人員提出了檢索增強(qiáng)生成(RAG)的方法,為L(zhǎng)LM大模型提供了一種與外部信息高效互動(dòng)的解決方案。其主要作用類(lèi)似于搜索引擎,找到用戶(hù)提問(wèn)最相關(guān)的知識(shí)或者是相關(guān)的對(duì)話(huà)歷史,并結(jié)合原始提問(wèn),創(chuàng)造信息豐富的prompt,指導(dǎo)LLM大模型生成更準(zhǔn)確的輸出。

這就是Rag技術(shù)產(chǎn)生的背景和原因。

二、Rag技術(shù)的基本原理

聊聊炙手可熱的Rag:產(chǎn)生原因、基本原理與實(shí)施路徑

RAG可分為5個(gè)基本流程:知識(shí)文檔的準(zhǔn)備、嵌入模型、存入向量數(shù)據(jù)庫(kù)、查詢(xún)檢索和生產(chǎn)回答。

現(xiàn)實(shí)場(chǎng)景中,我們面對(duì)的知識(shí)源可能包括多種格式,如Word文檔、TXT文件、CSV數(shù)據(jù)表、Excel表格,甚至圖片和視頻。因此需要使用專(zhuān)門(mén)的文檔加載器(例如PDF提取器)或多模態(tài)模型(如OCR技術(shù)),將這些豐富的知識(shí)源轉(zhuǎn)換為大語(yǔ)言模型可理解的純文本數(shù)據(jù),然后開(kāi)啟RAG的五個(gè)核心步驟。

第一步,文檔切片/分塊:在企業(yè)級(jí)應(yīng)用場(chǎng)景中,文檔尺寸可能非常大,因此需要將長(zhǎng)篇文檔分割成多個(gè)文本塊,以便更高效地處理和檢索信息。分塊的方式有很多種,比如按段落、按內(nèi)容或者其他特殊結(jié)構(gòu)。同時(shí),需要注意分塊的尺寸,如果分塊太小,雖然查詢(xún)更精準(zhǔn),但召回時(shí)間更長(zhǎng);如果分塊太大,則會(huì)影響查詢(xún)精準(zhǔn)度。

第二步,嵌入模型:嵌入模型的核心任務(wù)是將文本轉(zhuǎn)換為向量形式,這樣我們就能通過(guò)簡(jiǎn)單的計(jì)算向量之間的差異性,來(lái)識(shí)別語(yǔ)義上相似的句子。

第三步,存入向量數(shù)據(jù)庫(kù):將文檔切片和嵌入模型的結(jié)果存儲(chǔ)進(jìn)入向量數(shù)據(jù)庫(kù)。向量數(shù)據(jù)庫(kù)的主要優(yōu)勢(shì)在于,它能夠根據(jù)數(shù)據(jù)的向量接近度或相似度,快速、精確地定位和檢索數(shù)據(jù),實(shí)現(xiàn)很多傳統(tǒng)數(shù)據(jù)庫(kù)無(wú)法實(shí)現(xiàn)的功能,比如根據(jù)旋律和節(jié)奏搜索出特定的歌曲、在電影中搜索浪漫的片段、在文檔中找出意圖相近的段落等等。

第四步,用戶(hù)查詢(xún)檢索:用戶(hù)的問(wèn)題會(huì)被輸入到嵌入模型中進(jìn)行向量化處理,然后系統(tǒng)會(huì)在向量數(shù)據(jù)庫(kù)中搜索與該問(wèn)題向量語(yǔ)義上相似的知識(shí)文本或歷史對(duì)話(huà)記錄并返回,這就是檢索增強(qiáng)。

第五步,生成問(wèn)答:最終將用戶(hù)提問(wèn)和上一步中檢索到的信息結(jié)合,構(gòu)建出一個(gè)提示模版,輸入到大語(yǔ)言模型中,由大模型生成最終的結(jié)果并返回。

Rag技術(shù)一經(jīng)問(wèn)世,就取得了非常廣泛的使用,成為AI大模型產(chǎn)品落地中必不可少的一環(huán)。根據(jù)具體的使用場(chǎng)景,可以分為以下幾類(lèi)。

  1. 通用問(wèn)答系統(tǒng):RAG可以根據(jù)檢索到的相關(guān)信息生成準(zhǔn)確的答案,幫助員工更快地獲取所需信息,提高決策效率,比如搭建企業(yè)內(nèi)部知識(shí)庫(kù)、公司規(guī)章制度查詢(xún)、新員工入職培訓(xùn)、公司合同資料解讀和查詢(xún)等。
  2. 智能客服系統(tǒng):RAG可以結(jié)合產(chǎn)品資料知識(shí)庫(kù)、聊天記錄、用戶(hù)反饋等數(shù)據(jù),自動(dòng)為用戶(hù)提供更精準(zhǔn)的回答,已經(jīng)有非常多的初創(chuàng)公司選擇用RAG技術(shù)構(gòu)建新一代的智能客服系統(tǒng)。
  3. 智能數(shù)據(jù)分析:RAG可以結(jié)合外部數(shù)據(jù)源,如數(shù)據(jù)庫(kù)、API、文件等,為用戶(hù)提供更便捷的數(shù)據(jù)分析服務(wù)。傳統(tǒng)企業(yè)的數(shù)據(jù)分析主要靠BI分析師,每天都需要寫(xiě)大量的SQL語(yǔ)句進(jìn)行查詢(xún),而在RAG的支持下,企業(yè)的每個(gè)員工都能以自然對(duì)話(huà)的方式獲取數(shù)據(jù)。比如門(mén)店店長(zhǎng)直接用語(yǔ)音對(duì)話(huà),“請(qǐng)幫我找出上周銷(xiāo)量排名前10,但本周銷(xiāo)量下滑最快的品類(lèi)”,系統(tǒng)即可直接給出答復(fù)。
  4. 自動(dòng)化文檔處理:企業(yè)還可以利用RAG和LLM大模型自動(dòng)化文檔處理流程,例如自動(dòng)生成合同、撰寫(xiě)周報(bào)、總結(jié)會(huì)議紀(jì)要等,節(jié)省時(shí)間和人力成本。

三、Rag實(shí)施路徑

Rag技術(shù)雖然相對(duì)比較容易入門(mén),但是要部署到生產(chǎn)環(huán)境并且對(duì)外提供穩(wěn)定的服務(wù),還是有很多路要走的,尤其是其流程的各個(gè)環(huán)節(jié)都有非常多的優(yōu)化空間。

從優(yōu)化的方向來(lái)看,主要包括四個(gè)方面,知識(shí)分塊與索引優(yōu)化、用戶(hù)query改寫(xiě)優(yōu)化、數(shù)據(jù)召回優(yōu)化和內(nèi)容生成優(yōu)化。當(dāng)然,“羅馬不是一天建成的”,Rag相關(guān)項(xiàng)目的實(shí)施也需要分階段逐步進(jìn)行迭代和優(yōu)化,風(fēng)叔建議可以按照以下三個(gè)階段來(lái)實(shí)施。

第一階段,可運(yùn)行,即系統(tǒng)能跑通整體流程

1)知識(shí)分塊與索引

在RAG系統(tǒng)中,文檔需要分割成多個(gè)文本塊再進(jìn)行向量嵌入。在不考慮大模型輸入長(zhǎng)度限制和成本問(wèn)題情況下,其目的是在保持語(yǔ)義上的連貫性的同時(shí),盡可能減少嵌入內(nèi)容中的噪聲,從而更有效地找到與用戶(hù)查詢(xún)最相關(guān)的文檔部分。

如果分塊太大,可能包含太多不相關(guān)的信息,從而降低了檢索的準(zhǔn)確性。相反,分塊太小可能會(huì)丟失必要的上下文信息,導(dǎo)致生成的回應(yīng)缺乏連貫性或深度。

第一階段可先按固定字符拆分知識(shí),并通過(guò)設(shè)置冗余字符來(lái)降低句子截?cái)嗟膯?wèn)題,使一個(gè)完整的句子要么在上文,要么在下文。這種方式能盡量避免在句子中間斷開(kāi)的問(wèn)題,且實(shí)現(xiàn)成本最低,非常適合在業(yè)務(wù)起步階段。

2)用戶(hù)Query改寫(xiě)

在RAG系統(tǒng)中,用戶(hù)的查詢(xún)問(wèn)題會(huì)被轉(zhuǎn)化為向量,然后在向量數(shù)據(jù)庫(kù)中進(jìn)行匹配,因此查詢(xún)的措辭準(zhǔn)確度會(huì)直接影響搜索的結(jié)果。在向量空間中,對(duì)人類(lèi)來(lái)說(shuō)看似相同的兩個(gè)問(wèn)題其向量大小并不一定很相似

我們可以采用“查詢(xún)重寫(xiě)”方案,即直接利用LLM大模型重新表述問(wèn)題。在進(jìn)行多輪對(duì)話(huà)時(shí),用戶(hù)提問(wèn)中的某些內(nèi)容可能會(huì)指代上文中的部分信息,可以將歷史信息和用戶(hù)提問(wèn)一并交給LLM大模型進(jìn)行重新表述。

總體來(lái)說(shuō),第一階段可以先直接使用大模型的理解能力,結(jié)合上下文,突出用戶(hù)意圖。此時(shí)不需要做過(guò)多的Query改寫(xiě),以測(cè)試大模型理解能力和跑通流程為主。

3)數(shù)據(jù)召回

第一階段可以先使用最簡(jiǎn)單的向量召回方式,找到在語(yǔ)義向量維度最近似的答案進(jìn)行召回。這里需要注意的是,要找一個(gè)和自己業(yè)務(wù)比較契合的embedding模型和向量數(shù)據(jù)庫(kù)。

召回結(jié)果的數(shù)量是另一個(gè)關(guān)鍵因素,更多的結(jié)果可以提供豐富的預(yù)料,有助于系統(tǒng)更好地理解問(wèn)題的上下文和隱含細(xì)節(jié)。但是結(jié)果數(shù)量過(guò)多可能導(dǎo)致信息過(guò)載,降低回答準(zhǔn)確性并增加系統(tǒng)的時(shí)間和資源成本。第一階段我們可以先把召回?cái)?shù)量設(shè)置為10。

4)內(nèi)容生成

內(nèi)容生成環(huán)節(jié)更多的是考慮用戶(hù)體驗(yàn),在第一階段我們可以先簡(jiǎn)單一些,能順利輸出答案即可。因?yàn)閿?shù)據(jù)召回環(huán)節(jié)只有向量召回,因此這一步可以只將上一步召回環(huán)節(jié)返回的top 10的知識(shí)篩選出來(lái),然后提供給大模型生成答案。

第一階段的系統(tǒng)可能會(huì)存在較多問(wèn)題,大家會(huì)發(fā)現(xiàn)生成答案的相關(guān)性和準(zhǔn)確度都比較低。但是沒(méi)關(guān)系,這一階段的首要任務(wù)是跑通系統(tǒng)流程,優(yōu)化的工作我們放在第二和第三階段再做。

第二階段,可使用,即系統(tǒng)初步達(dá)到可上線水平

1)知識(shí)分塊與索引

知識(shí)的分塊與索引,對(duì)最終答案生成的準(zhǔn)確性有非常大的影響,尤其是在處理超長(zhǎng)文本的時(shí)候,會(huì)出現(xiàn)索引混淆問(wèn)題。

索引混淆是指知識(shí)文檔的核心關(guān)鍵詞被湮沒(méi)在大量的無(wú)效信息中,比如大量無(wú)關(guān)緊要的助詞、語(yǔ)氣詞、或無(wú)關(guān)信息,導(dǎo)致建立的索引中核心知識(shí)比重少,從而影響生成答案的質(zhì)量。針對(duì)這個(gè)問(wèn)題,我們可以采用三種優(yōu)化方案,索引降噪、多級(jí)索引和HYDE。

索引降噪:是根據(jù)業(yè)務(wù)特點(diǎn),去除索引數(shù)據(jù)中的無(wú)效成分,突出其核心知識(shí),從而降低噪音的干擾,保障核心知識(shí)的比重。比如原文檔內(nèi)容是“How can I download source code from github.com”,其核心內(nèi)容是“download source code、github”,其他噪音可以忽略。

多級(jí)索引:是指創(chuàng)建兩個(gè)索引,一個(gè)由文檔摘要組成,另一個(gè)由文檔塊組成,并分兩步搜索,首先通過(guò)摘要過(guò)濾掉相關(guān)文檔,然后只在這個(gè)相關(guān)組內(nèi)進(jìn)行搜索。這種多重索引策略使RAG系統(tǒng)能夠根據(jù)查詢(xún)的性質(zhì)和上下文,選擇最合適的索引進(jìn)行數(shù)據(jù)檢索,從而提升檢索質(zhì)量和響應(yīng)速度。但為了引入多重索引技術(shù),我們還需配套加入多級(jí)路由機(jī)制,比如對(duì)于查詢(xún)“最新發(fā)表的Rag論文推薦”,RAG系統(tǒng)首先將其路由至論文專(zhuān)題的索引,然后根據(jù)時(shí)間篩選最新的Rag相關(guān)論文。

聊聊炙手可熱的Rag:產(chǎn)生原因、基本原理與實(shí)施路徑

HYDE:全稱(chēng)是Hypothetical Document Embeddings,用LLM生成一個(gè)“假設(shè)”答案,將其和問(wèn)題一起進(jìn)行檢索。HyDE的核心思想是接收用戶(hù)提問(wèn)后,先讓LLM在沒(méi)有外部知識(shí)的情況下生成一個(gè)假設(shè)性的回復(fù)。然后,將這個(gè)假設(shè)性回復(fù)和原始查詢(xún)一起用于向量檢索。假設(shè)回復(fù)可能包含虛假信息,但蘊(yùn)含著LLM認(rèn)為相關(guān)的信息和文檔模式,有助于在知識(shí)庫(kù)中尋找類(lèi)似的文檔。

聊聊炙手可熱的Rag:產(chǎn)生原因、基本原理與實(shí)施路徑

2)用戶(hù)Query改寫(xiě)

直接使用原始的用戶(hù)query進(jìn)行檢索,會(huì)存在一些問(wèn)題。比如知識(shí)庫(kù)內(nèi)的數(shù)據(jù)無(wú)法直接回答,需要組合多種知識(shí)才能找到答案;此外,涉及細(xì)節(jié)比較多的問(wèn)題,大模型往往無(wú)法進(jìn)行高質(zhì)量的回答??梢允褂肦ag-Fusion進(jìn)行優(yōu)化。

RAG-Fusion:首先對(duì)用戶(hù)的原始query進(jìn)行擴(kuò)充,即使用 LLM 模型對(duì)用戶(hù)的初始查詢(xún),進(jìn)行改寫(xiě)生成多個(gè)查詢(xún);然后對(duì)每個(gè)生成的查詢(xún)進(jìn)行基于向量的搜索,形成多路搜索召回;接著應(yīng)用倒數(shù)排名融合算法,根據(jù)文檔在多個(gè)查詢(xún)中的相關(guān)性重新排列文檔,生成最終輸出。

聊聊炙手可熱的Rag:產(chǎn)生原因、基本原理與實(shí)施路徑

3)數(shù)據(jù)召回

在第一階段,我們使用了單純的語(yǔ)義向量做召回,但是當(dāng)文本向量化模型訓(xùn)練不夠好時(shí),向量召回的準(zhǔn)確率會(huì)比較低,此時(shí)需要利用其他召回方式作為補(bǔ)充。

分詞召回:一種有效的稀疏搜索算法是最佳匹配25(BM25),它基于統(tǒng)計(jì)輸入短語(yǔ)中的單詞頻率,頻繁出現(xiàn)的單詞得分較低,而稀有的詞被視為關(guān)鍵詞,得分會(huì)較高。我們可以結(jié)合稀疏和稠密搜索得出最終結(jié)果。

多路召回:多路召回的結(jié)果經(jīng)過(guò)模型精排,最終篩選出優(yōu)質(zhì)結(jié)果。至于使用幾種召回策略,根據(jù)業(yè)務(wù)而定。

聊聊炙手可熱的Rag:產(chǎn)生原因、基本原理與實(shí)施路徑

4)內(nèi)容生成

根據(jù)前幾個(gè)環(huán)節(jié)的優(yōu)化策略,內(nèi)容生成環(huán)節(jié)也需要有相應(yīng)的調(diào)整。

文檔合并去重:多路召回可能都會(huì)召回同一個(gè)結(jié)果,針對(duì)這部分?jǐn)?shù)據(jù)要去重,否則對(duì)大模型輸入的token數(shù)是一種浪費(fèi);其次,去重后的文檔可以根據(jù)數(shù)據(jù)切分的血緣關(guān)系,做文檔的合并。

重排模型:重排模型通過(guò)對(duì)初始檢索結(jié)果進(jìn)行更深入的相關(guān)性評(píng)估和排序,確保最終展示給用戶(hù)的結(jié)果更加符合其查詢(xún)意圖。這一過(guò)程通常由深度學(xué)習(xí)模型實(shí)現(xiàn),如Cohere模型。這些模型會(huì)考慮更多的特征,如查詢(xún)意圖、詞匯的多重語(yǔ)義、用戶(hù)的歷史行為和上下文信息等。

聊聊炙手可熱的Rag:產(chǎn)生原因、基本原理與實(shí)施路徑

經(jīng)過(guò)第二階段的優(yōu)化,答案生成的相關(guān)性和準(zhǔn)確度都會(huì)大幅提升,但是仍然會(huì)有較大概率出現(xiàn)答非所問(wèn)的情況,我們還需要對(duì)系統(tǒng)做更進(jìn)一步的優(yōu)化。

第三階段,很好用,即系統(tǒng)回答的準(zhǔn)確率達(dá)到用戶(hù)滿(mǎn)意水平

下面,風(fēng)叔介紹一些更高級(jí)的Rag優(yōu)化策略。

1)知識(shí)分塊與索引

雖然在第二階段,我們通過(guò)索引降噪、多級(jí)索引、HYDE等方式,大幅提升了知識(shí)庫(kù)的準(zhǔn)確度,但是按固定字符切,有時(shí)候會(huì)遇到句子含義聯(lián)系比較緊密的片段被切分成了兩條數(shù)據(jù),導(dǎo)致數(shù)據(jù)質(zhì)量比較差。

這個(gè)情況下可以嘗試訓(xùn)練專(zhuān)門(mén)的語(yǔ)義理解小模型,然后使用實(shí)際語(yǔ)義進(jìn)行句子拆分,使拆分出來(lái)的知識(shí)片段語(yǔ)義更加完整。

另外一種方法是構(gòu)建元數(shù)據(jù),增加內(nèi)容摘要、時(shí)間戳、用戶(hù)可能提出的問(wèn)題等附加信息來(lái)豐富知識(shí)庫(kù),而元數(shù)據(jù)不需要被向量化。此外,我們還可以添加諸如章節(jié)或小節(jié)的引用,文本的關(guān)鍵信息、小節(jié)標(biāo)題或關(guān)鍵詞等作為元數(shù)據(jù),有助于改進(jìn)知識(shí)檢索的準(zhǔn)確性。

還有一種更加有效的方式是建立知識(shí)圖譜。嵌入模型雖然簡(jiǎn)單,但是沒(méi)法有效捕捉實(shí)體之間的復(fù)雜關(guān)系和層次結(jié)構(gòu),所以導(dǎo)致傳統(tǒng)RAG在面對(duì)復(fù)雜查詢(xún)的時(shí)候特別吃力。比如,用戶(hù)詢(xún)問(wèn)“《跨越鴻溝》這本書(shū)的主旨是什么”,傳統(tǒng)Rag技術(shù)是肯定回答不出來(lái)的。但是知識(shí)圖譜技術(shù)可以做到,因?yàn)槔弥R(shí)圖譜對(duì)數(shù)據(jù)集建立索引的時(shí)候,會(huì)做提取實(shí)體以及實(shí)體之間的關(guān)系,這樣就能構(gòu)建一種全局性的優(yōu)勢(shì),從而提升RAG的精確度。

但是,知識(shí)圖譜雖然很強(qiáng)大,可惜成本太高了,會(huì)大幅提升token使用量,大家需要綜合產(chǎn)品體驗(yàn)和成本進(jìn)行評(píng)估。

2)用戶(hù)query改寫(xiě)

Step-Back Prompting:如果果原始查詢(xún)太復(fù)雜或返回的信息太廣泛,我們可以選擇生成一個(gè)抽象層次更高的“退后”問(wèn)題,與原始問(wèn)題一起用于檢索,以增加返回結(jié)果的數(shù)量。例如,對(duì)于問(wèn)題“勒布朗詹姆斯在2005年至2010年在哪些球隊(duì)?”這個(gè)問(wèn)題因?yàn)橛袝r(shí)間范圍的詳細(xì)限制,比較難直接解決,可以提出一個(gè)后退問(wèn)題“勒布朗詹姆斯的職業(yè)生涯是怎么樣的?”,從這個(gè)回答的召回結(jié)果中再檢索上一個(gè)問(wèn)題的答案。

3)數(shù)據(jù)召回

圖譜召回:如果在知識(shí)分塊環(huán)節(jié)使用了知識(shí)圖譜,那么我們就可以直接用圖譜召回,大幅提升召回準(zhǔn)確度。

Agentic-rag:RAG應(yīng)用退化成一個(gè)Agent使用的知識(shí)工具。我們可以針對(duì)一個(gè)文檔/知識(shí)庫(kù)構(gòu)建多種不同的RAG引擎,比如使用向量索引來(lái)回答事實(shí)性問(wèn)題;使用摘要索引來(lái)回答總結(jié)性問(wèn)題;使用知識(shí)圖譜索引來(lái)回答需要更多關(guān)聯(lián)性的問(wèn)題等。

在單個(gè)文檔/知識(shí)庫(kù)的多個(gè)RAG引擎之上設(shè)置一個(gè)DocAgent,把RAG引擎作為該Agent的tools,并利用LLM的能力由ToolAgent在自己“負(fù)責(zé)”的文檔內(nèi)使用這些tools來(lái)回答問(wèn)題。最后設(shè)置一個(gè)總的頂級(jí)代理TopAgent來(lái)管理所有的低階DocAgent,將DocAgent看作自己的tools,仍然利用LLM來(lái)規(guī)劃、協(xié)調(diào)、執(zhí)行用戶(hù)問(wèn)題的回答方案

聊聊炙手可熱的Rag:產(chǎn)生原因、基本原理與實(shí)施路徑

4)內(nèi)容生成

Prompt優(yōu)化:RAG系統(tǒng)中的prompt應(yīng)明確指出回答僅基于搜索結(jié)果,不要添加任何其他信息。例如可以設(shè)置prompt:“你是一名智能客服。你的目標(biāo)是提供準(zhǔn)確的信息,并盡可能幫助提問(wèn)者解決問(wèn)題。你應(yīng)保持友善,但不要過(guò)于啰嗦。請(qǐng)根據(jù)提供的上下文信息,在不考慮已有知識(shí)的情況下,回答相關(guān)查詢(xún)?!?此外,使用Few-shot的方法指導(dǎo)LLM如何利用檢索到的知識(shí),也是提升LLM生成內(nèi)容質(zhì)量的有效方法。

Self-rag:self-rag通過(guò)檢索評(píng)分(令牌)和反思評(píng)分(令牌)來(lái)提高質(zhì)量,主要分為三個(gè)步驟:檢索、生成和批評(píng)。Self-RAG首先用檢索評(píng)分來(lái)評(píng)估用戶(hù)提問(wèn)是否需要檢索,如果需要檢索,LLM將調(diào)用外部檢索模塊查找相關(guān)文檔。接著,LLM分別為每個(gè)檢索到的知識(shí)塊生成答案,然后為每個(gè)答案生成反思評(píng)分來(lái)評(píng)估檢索到的文檔是否相關(guān),最后將評(píng)分高的文檔當(dāng)作最終結(jié)果一并交給LLM。

四、總結(jié)

本篇文章重點(diǎn)介紹了Rag技術(shù)的概念、產(chǎn)生原因、基本原理和實(shí)施路徑,可以作為AI產(chǎn)品經(jīng)理和研發(fā)同學(xué)在實(shí)際項(xiàng)目中的參考資料。

圍繞Rag相關(guān)的各項(xiàng)技術(shù)和理念仍然在飛速迭代,從大方向來(lái)說(shuō),風(fēng)叔比較看好知識(shí)圖譜和AI Agent在Rag系統(tǒng)中的使用。

知識(shí)圖譜的成本一定會(huì)繼續(xù)下降,那么一定存在一個(gè)臨界點(diǎn),即使用知識(shí)圖譜帶來(lái)的對(duì)實(shí)體和實(shí)體關(guān)系的理解優(yōu)勢(shì),會(huì)遠(yuǎn)遠(yuǎn)大于對(duì)成本的考量。

對(duì)于AI Agent,其本身和Rag也是相輔相成的關(guān)系。Rag系統(tǒng)為AI Agent提供長(zhǎng)期記憶能力,而AI Agent的規(guī)劃與反思也會(huì)為Rag系統(tǒng)提供非常好的規(guī)劃管理和路由能力。

相信Rag會(huì)在各個(gè)領(lǐng)域的AI產(chǎn)品落地過(guò)程中,持續(xù)扮演重要的角色。

作者:風(fēng)叔,微信公眾號(hào):風(fēng)叔云

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

題圖來(lái)自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. 聽(tīng)不懂思密達(dá)

    來(lái)自廣東 回復(fù)
  2. 現(xiàn)有RAG存在的問(wèn)題沒(méi)說(shuō)

    來(lái)自廣東 回復(fù)
  3. 一個(gè)對(duì)我來(lái)說(shuō)全新的東西,如果以后要學(xué)習(xí)AI的話(huà)這個(gè)應(yīng)該會(huì)是個(gè)重點(diǎn)。

    來(lái)自廣東 回復(fù)