一個(gè)樸素的 RAG 系統(tǒng)流程是這樣的:先由用戶提出問(wèn)題,然后系統(tǒng)基于用戶提問(wèn)進(jìn)行召回,對(duì)召回結(jié)果進(jìn)行重排序,最后拼接提示詞后送給 LLM 生成答案。
一部分簡(jiǎn)單場(chǎng)景下,樸素的 RAG 已經(jīng)可以滿足用戶意圖明確的場(chǎng)景的要求,因?yàn)榇鸢敢呀?jīng)包含在檢索出來(lái)的結(jié)果中,只要交給 LLM 即可。然而在更多的情況下用戶意圖并不明確,無(wú)法直接通過(guò)檢索找到答案,例如一些針對(duì)多文檔的總結(jié)類提問(wèn)需要進(jìn)行多步推理 (Reasoning) 等等。這類場(chǎng)景就需要引入 Agentic RAG ,也就是在問(wèn)答的過(guò)程中引入任務(wù)編排機(jī)制。
Agentic RAG,顧名思義,是基于 Agent 的 RAG。Agent 與 RAG 關(guān)系緊密,兩者互為基石。Agentic RAG 和簡(jiǎn)單 RAG 的最大區(qū)別在于Agentic RAG 引入了 Agent 的動(dòng)態(tài)編排機(jī)制,因此可以根據(jù)用戶提問(wèn)的不同意圖,引入反饋和查詢改寫(xiě)機(jī)制,并進(jìn)行“多跳”式的知識(shí)推理,從而實(shí)現(xiàn)對(duì)復(fù)雜提問(wèn)的回答。
下面,我們先通過(guò)兩個(gè)高級(jí) RAG 來(lái)看看 Agentic RAG 的工作原理。首先是 Self-RAG (參考文獻(xiàn)[1]),它的工作流程如下:
Self-RAG 是一種引入了反思機(jī)制的 RAG。從知識(shí)庫(kù)中檢索出結(jié)果后,它會(huì)評(píng)估結(jié)果是否與用戶提問(wèn)相關(guān)。如果不相關(guān),就要改寫(xiě)查詢,然后重復(fù) RAG 流程直到相關(guān)度評(píng)分達(dá)到要求。實(shí)現(xiàn) Self-RAG 需要實(shí)現(xiàn)以下兩大組件:
- 一套基于 Graph 的任務(wù)編排系統(tǒng)。
- 在 Graph 內(nèi)執(zhí)行的必要算子:比如在 Self-RAG 中,評(píng)分算子就至關(guān)重要。在原始論文中, 是需要自己訓(xùn)練一個(gè)打分模型來(lái)針對(duì)檢索結(jié)果評(píng)分;在實(shí)際實(shí)現(xiàn)中也可以采用 LLM 進(jìn)行評(píng)分,這樣可以簡(jiǎn)化系統(tǒng)開(kāi)發(fā)并且減少對(duì)各類環(huán)節(jié)依賴。
Self-RAG 是相對(duì)初級(jí)的 Agentic RAG,RAGFlow 中也已提供了相關(guān)實(shí)現(xiàn)。實(shí)踐證明,Self-RAG 對(duì)于較復(fù)雜的多跳問(wèn)答和多步推理可以明顯提升性能。
再來(lái)看看另一種 Agentic RAG — Adaptive RAG (參考文獻(xiàn)[2])。它可以根據(jù)用戶提問(wèn)的不同意圖采用對(duì)應(yīng)的策略:
- 開(kāi)放域問(wèn)答:直接通過(guò) LLM 產(chǎn)生答案而無(wú)需依賴 RAG 檢索。
- 多跳問(wèn)答:首先將多跳查詢分解為更簡(jiǎn)單的單跳查詢,重復(fù)訪問(wèn) LLM 和 RAG 檢索器來(lái)解決這些子查詢,并合并它們的答案以形成完整答案。
- 自適應(yīng)檢索:適用于需要多步邏輯推理的復(fù)雜問(wèn)題。復(fù)雜的問(wèn)答往往需要從多個(gè)數(shù)據(jù)源綜合信息并進(jìn)行多步推理。自適應(yīng)檢索通過(guò)迭代地訪問(wèn) RAG 檢索器和 LLM,逐步構(gòu)建起解決問(wèn)題所需的信息鏈。
如下圖所示,Adaptive-RAG 的工作流程與 Self-RAG 類似,只是在前面增加了一個(gè)查詢分類器,就提供了更多種對(duì)話的策略選擇。
從以上兩種 Agentic RAG 例子可以看出,這類高級(jí) RAG 系統(tǒng)都需要基于任務(wù)編排系統(tǒng)上提供以下功能:
- 復(fù)用已有的 Pipeline 或者子圖。
- 與包含 Web Search 在內(nèi)的外部工具協(xié)同工作。
- 可以規(guī)劃查詢?nèi)蝿?wù),例如查詢意圖分類,查詢反饋等等。
任務(wù)編排系統(tǒng)類似的實(shí)現(xiàn)主要有Langchain的 ?LangGraph 和 llamaIndex;Agent 的開(kāi)發(fā)框架包括 AgentKit、Databricks最新發(fā)布的 Mosaic AI Agent Framework 等等。任務(wù)編排系統(tǒng)需要基于圖(Graph)來(lái)實(shí)現(xiàn),圖中的節(jié)點(diǎn)和邊定義了應(yīng)用的流程和邏輯。節(jié)點(diǎn)可以是任何可調(diào)用的算子,也可以是其他可運(yùn)行組件(比如鏈接起來(lái)的多個(gè)算子或者 Agents),每個(gè)節(jié)點(diǎn)執(zhí)行特定的任務(wù)。邊定義了節(jié)點(diǎn)間的連接和數(shù)據(jù)流。圖需要具備節(jié)點(diǎn)的狀態(tài)管理功能,從而根據(jù)節(jié)點(diǎn)的跳轉(zhuǎn)而不斷更新?tīng)顟B(tài)。需要注意的是,這種基于圖的任務(wù)編排框架并不是一個(gè) DAG (Directed Acyclic Graph), 而是一個(gè)需要引入循環(huán)的編排系統(tǒng)。環(huán)是提供反思機(jī)制的基礎(chǔ),對(duì)于 Agentic RAG 的編排至關(guān)重要。沒(méi)有反思機(jī)制的 Agent 只能提供類似工作流這樣的任務(wù)編排而無(wú)法實(shí)現(xiàn)更高級(jí)的多跳和多步推理機(jī)制,沒(méi)法真正像人類那樣去思考性地解決問(wèn)題。在吳恩達(dá)給出的四種 Agent 設(shè)計(jì)模式(參考文獻(xiàn)[3])中:反思被放在頭一個(gè),其他三個(gè)都是工作流相關(guān),分別是工具、規(guī)劃,和多 Agent 協(xié)同。反思被單列出來(lái)是因?yàn)樗伎己屯评矶急仨毣谒鼇?lái)進(jìn)行,而 Agentic RAG 正是反思機(jī)制在 RAG 的體現(xiàn)。
Agentic RAG 代表了信息處理方式的變革,為 Agent 本身引入了更多的智能。結(jié)合了工作流的 Agentic RAG 也有更廣闊的應(yīng)用場(chǎng)景。比如:在文檔摘要中,Agentic RAG 會(huì)首先確定用戶的意圖是要求摘要還是要求對(duì)比細(xì)節(jié)。如果是前者,就通過(guò) Agent 先獲取每塊內(nèi)容的摘要再獲取整體的摘要;如果是后者,就需要進(jìn)一步路由,通過(guò)檢索提取相應(yīng)數(shù)據(jù)點(diǎn),再把相關(guān)數(shù)據(jù)傳遞給 LLM。在客戶服務(wù)支持中,Agentic RAG 可以理解客戶更加復(fù)雜的提問(wèn),從而可以提供更加個(gè)性化的準(zhǔn)確回復(fù)。在文獻(xiàn)助手中,Agentic RAG 可以綜合更多的文獻(xiàn)、數(shù)據(jù)和研究結(jié)果,讓使用者具備更全面的理解;在法律和醫(yī)療助手中,Agentic RAG 可以幫助理解和解釋復(fù)雜的領(lǐng)域知識(shí),提供更準(zhǔn)確地見(jiàn)解;在內(nèi)容生成應(yīng)用中,Agentic RAG 可以幫助生成更高質(zhì)量的、上下文相關(guān)的企業(yè)級(jí)長(zhǎng)文檔。
RAGFlow 將從 v0.8.0 開(kāi)始原生支持基于圖的任務(wù)編排系統(tǒng),并支持以無(wú)代碼的方式進(jìn)行編輯;另一方面, RAGFlow 也在不斷完善各類查詢規(guī)劃算子以簡(jiǎn)化 Agentic RAG 以及基于 Agentic RAG 的各類 Agent 應(yīng)用的開(kāi)發(fā)過(guò)程,真正從端到端解決企業(yè)級(jí) RAG 應(yīng)用的各類痛點(diǎn)。RAGFlow 一直在快速演進(jìn),歡迎關(guān)注、star,并積極參與到我們的項(xiàng)目中來(lái)!
項(xiàng)目地址:https://github.com/infiniflow/ragflow
參考文獻(xiàn):
- Self-RAG: Learning to retrieve, generate, and critique through self-reflection, arXiv preprint arXiv:2310.11511
- Adaptive-RAG: Learning to adapt retrieval-augmented large language models through question complexity, arXiv preprint arXiv:2403.14403
- https://www.deeplearning.ai/the-batch/issue-242/
未經(jīng)允許不得轉(zhuǎn)載:RPA中國(guó) | RPA全球生態(tài) | 數(shù)字化勞動(dòng)力 | RPA新聞 | 推動(dòng)中國(guó)RPA生態(tài)發(fā)展 | 流 > Agentic RAG 與圖任務(wù)編排
熱門(mén)信息
閱讀 (14993)
1 2023第三屆中國(guó)RPA+AI開(kāi)發(fā)者大賽圓滿收官&獲獎(jiǎng)名單公示閱讀 (14119)
2 《Market Insight:中國(guó)RPA市場(chǎng)發(fā)展洞察(2022)》報(bào)告正式發(fā)布 | RPA中國(guó)閱讀 (13123)
3 「RPA中國(guó)杯 · 第五屆RPA極客挑戰(zhàn)賽」成功舉辦及獲獎(jiǎng)名單公示閱讀 (13034)
4 與科技共贏,與產(chǎn)業(yè)共進(jìn),第四屆ISIG中國(guó)產(chǎn)業(yè)智能大會(huì)成功召開(kāi)閱讀 (11798)
5 《2022年中國(guó)流程挖掘行業(yè)研究報(bào)告》正式發(fā)布 | RPA中國(guó)