AI進(jìn)化論:從RAG到Agent,智能體如何重塑未來世界 引言 隨著ChatGPT、ChatGPT-4等的發(fā)布,我們徹底被大模型(LLM)的魅力所征服,越來越多的公司和企業(yè)開始聚焦大模型技術(shù)的研發(fā)和使用,為我們的日常生活帶來了極大的便利。但是,大模型同樣面臨著時(shí)效性、準(zhǔn)確性等各種問題,如何讓LLM變得更好?如何解決LLM所面臨的挑戰(zhàn)?如何構(gòu)建高級(jí)的LLM應(yīng)用?逐漸成為AI領(lǐng)域重要的研究課題。 為了解決這其中一些問題,RAG應(yīng)運(yùn)而生,RAG(檢索增強(qiáng)生成)技術(shù)在自然語(yǔ)言處理領(lǐng)域帶來了顯著突破。通過結(jié)合信息檢索和文本生成技術(shù),RAG使機(jī)器能夠更準(zhǔn)確地理解和回應(yīng)人類語(yǔ)言。但是隨著RAG的應(yīng)用,我們也逐漸意識(shí)到RAG的局限性,那么RAG究竟有何痛點(diǎn)?我們又應(yīng)該如何解決?讓我們來一起探尋吧! RAG痛點(diǎn) RAG技術(shù)可以在一些常見的自然語(yǔ)言處理任務(wù)中發(fā)揮作用,如問答系統(tǒng)、智能助手和虛擬代理、信息檢索、知識(shí)圖譜填充等,通過RAG,建立一個(gè)龐大的知識(shí)庫(kù),當(dāng)用戶查詢的時(shí)候,利用信息檢索從知識(shí)庫(kù)中查詢相關(guān)文本片段或?qū)崟r(shí)數(shù)據(jù),然后我們對(duì)檢索到的信息進(jìn)行篩選、排序和加權(quán)等操作,最后將整合后的信息作為生成模型的輸入,無疑是提高答案準(zhǔn)確性,減少虛假信息,極大的增強(qiáng)大模型的可用性。 但是RAG最初是為簡(jiǎn)單問題和小型文檔集設(shè)計(jì)的,所以能夠快速、高效。準(zhǔn)確的進(jìn)行輸出,比如: 特斯拉的主要風(fēng)險(xiǎn)因素是什么?(over Tesla 2021 10K) 作者在YC期間做了什么?(Paul Graham essay) 我們通過使用特定的知識(shí)庫(kù),針對(duì)以上簡(jiǎn)單問題,LLM可以給出很好的答案,但是,針對(duì)某些類型的問題,RAG可能無法產(chǎn)生準(zhǔn)確或者令人滿意的結(jié)果,例如: 總結(jié)性問題:“給我總結(jié)一下XXX公司的年度報(bào)告” 比較性問題:“比較開發(fā)者A和開發(fā)者B的開源貢獻(xiàn)” 結(jié)構(gòu)化分析 語(yǔ)義搜索:“告訴我美國(guó)最高業(yè)績(jī)的拼車公司的風(fēng)險(xiǎn)因素” 綜合性多部分問題: “告訴我文章A中的贊成X的論點(diǎn),然后告訴我文章B中的贊成Y的論點(diǎn),按照我們內(nèi)部的風(fēng)格指南制作一個(gè)表格,然后根據(jù)這些事實(shí)自行得出結(jié)論” Naive RAG,很多時(shí)候只是一個(gè)搜索系統(tǒng),針對(duì)一些簡(jiǎn)單問題或查詢,能夠給予用戶很好的反饋,但是有很多復(fù)雜問題/任務(wù)是它無法回答的,那么遇到復(fù)雜的問題/任務(wù),我們可以怎么做呢? RAG To Agent 常規(guī)的RAG應(yīng)用通常只是通過結(jié)合自有知識(shí)庫(kù)來增強(qiáng)大模型,以獲得更準(zhǔn)確、實(shí)時(shí)和豐富的垂直內(nèi)容或個(gè)性化結(jié)果,但這依然局限于內(nèi)容生成的范疇。如果你需要人工智能像一個(gè)“以終為始”的高效率員工一樣,自主選取各種工具,并與不同系統(tǒng)進(jìn)行溝通協(xié)作,直到交付最終結(jié)果,那么就需要從RAG轉(zhuǎn)變到Agent。 從RAG到Agent的轉(zhuǎn)變,并不是意味著拋棄RAG,而是在此基礎(chǔ)上增加以下幾個(gè)層次的功能: ● 多輪對(duì)話: 與用戶進(jìn)行更深入的交流,識(shí)別用戶意圖 ●查詢/任務(wù)規(guī)劃層: 能夠理解并規(guī)劃復(fù)雜的查詢和任務(wù) ●外部環(huán)境工具接口: 使用外部工具完成任務(wù) ●反思: 對(duì)執(zhí)行結(jié)果進(jìn)行反思總結(jié)和評(píng)估 ● 記憶: 維護(hù)用戶交互的歷史,從而提供個(gè)性化服務(wù) 通過增加這些功能,Agent不僅能適應(yīng)復(fù)雜任務(wù),還能在多變環(huán)境中靈活應(yīng)對(duì)。與RAG相比,Agent則專注于實(shí)現(xiàn)特定任務(wù),更注重與現(xiàn)有系統(tǒng)集成。它不僅能夠理解語(yǔ)言,還能在現(xiàn)實(shí)世界或數(shù)字系統(tǒng)中采取行動(dòng),它不僅能夠執(zhí)行復(fù)雜的多步驟任務(wù),如檢索信息、處理信息,它還可以無縫接入各種系統(tǒng)和API接口,訪問用戶數(shù)據(jù),與數(shù)據(jù)庫(kù)交互。 人類之所以是人類,一個(gè)最明顯的特征就是會(huì)使用工具。作為智能體,Agent同樣可以借助外部工具,使其能夠處理更加復(fù)雜的任務(wù)。比如Agent可以使用圖表生成工具生成在線圖表,可以使用天氣查詢工具查詢天氣。由此可見,Agent是可以真正釋放LLM潛能的關(guān)鍵,那么我們的LLM應(yīng)用,也終將從RAG轉(zhuǎn)向Agent,Agent無疑是RAG的盡頭。 案例分析 近日,阿里千問團(tuán)隊(duì)開發(fā)了一個(gè)Agent(智能體),通過結(jié)合RAG,用于理解包含百萬字詞的文檔,雖然僅使用Qwen2模型的8k上下文,但效果超過RAG和長(zhǎng)序列原生模型。 1.Agent構(gòu)建 該Agent的構(gòu)建主要包含三個(gè)復(fù)雜度級(jí)別,每一層都建立在前一層的基礎(chǔ)上 級(jí)別一:檢索 如何找出與提取關(guān)鍵詞最相關(guān)的塊,主要分為三個(gè)步驟: ● 步驟1:指令信息與非指令信息分開 用戶輸入:'回答時(shí)請(qǐng)用2000字詳盡闡述,我的問題是,自行車是什么時(shí)候發(fā)明的?請(qǐng)用英文回復(fù)。 信息拆解:{'信息': ['自行車是什么時(shí)候發(fā)明的'], '指令': ['回答時(shí)用2000字', '盡量詳盡', '用英文回復(fù)']}。 ●步驟2:聊天模型推導(dǎo)出多語(yǔ)言關(guān)鍵詞。 輸入:'自行車是什么時(shí)候發(fā)明的' 信息轉(zhuǎn)換:{'關(guān)鍵詞_英文': ['bicycles', 'invented', 'when'], '關(guān)鍵詞_中文': ['自行車', '發(fā)明', '時(shí)間']}。 ●步驟3:運(yùn)用BM25關(guān)鍵詞檢索方法。 級(jí)別二:分塊閱讀 如何解決相關(guān)塊與用戶查詢關(guān)鍵詞重疊程度不足時(shí)失效,導(dǎo)致這些相關(guān)的塊未被檢索到、沒有提供給模型。主要采用以下策略: ●步驟1:讓聊天模型對(duì)于每個(gè)512字塊評(píng)估其與用戶查詢的相關(guān)性,如果認(rèn)為不相關(guān)則輸出'無', 如果相關(guān)則輸出相關(guān)句子。 ● 步驟2:取出步驟1中相關(guān)句子,用它們作為搜索查詢?cè)~,通過BM25檢索出最相關(guān)的塊。 ●步驟3:基于檢索到的上下文生成最終答案。 級(jí)別三:逐步推理 如何解決多跳推理。例如,用戶輸入:“與第五交響曲創(chuàng)作于同一世紀(jì)的交通工具是什么?”模型首先需要拆分為子問題進(jìn)行回答,如“第五交響曲是在哪個(gè)世紀(jì)創(chuàng)作的?”,“自行車于19世紀(jì)發(fā)明” 可以采用工具調(diào)用(也稱為函數(shù)調(diào)用)智能體或ReAct智能體進(jìn)行解決: 向Lv3-智能體提出一個(gè)問題。 while (Lv3-智能體無法根據(jù)其記憶回答問題) { Lv3-智能體提出一個(gè)新的子問題待解答。 Lv3-智能體向Lv2-智能體提問這個(gè)子問題。 將Lv2-智能體的回應(yīng)添加到Lv3-智能體的記憶中。 } Lv3-智能體提供原始問題的最終答案。 2.實(shí)驗(yàn)對(duì)比 為了進(jìn)行驗(yàn)證,采取實(shí)驗(yàn)比對(duì)方式,通過采用以下三種模型進(jìn)行比對(duì): ●32k-模型:7B對(duì)話模型,主要在8k上下文樣本上進(jìn)行微調(diào),并輔以少量32k上下文樣本 ●4k-RAG:使用與32k-模型相同的模型,但采取了Lv1-智能體的RAG策略 ●4k-智能體:使用32k-模型的模型,但采用前文描述的更復(fù)雜的智能體策略 通過上述實(shí)驗(yàn),我們能夠看到4k-智能體始終表現(xiàn)優(yōu)于32k-模型和4k-RAG,它結(jié)合RAG,通過工具調(diào)用,可以有更高的效率和準(zhǔn)確率。但是Agent的優(yōu)勢(shì)遠(yuǎn)不止這些,Agent作為人工智能系統(tǒng)的關(guān)鍵角色,逐漸成為連接人與機(jī)器的重要橋梁,一旦Agent準(zhǔn)備就緒,就可以為很多問題提供更多的解決方案。 未來展望 對(duì)于未來,我們知道Agent應(yīng)用的開發(fā)必將遇到眾多挑戰(zhàn),但同樣是一種機(jī)遇。每一種挑戰(zhàn),都會(huì)觸發(fā)新的技術(shù)融合,李彥宏曾表示:以后不會(huì)存在程序員這種職業(yè)了,因?yàn)橹灰獣?huì)說話,人人都會(huì)具備程序員的能力。筆者認(rèn)為,Agent雖然功能強(qiáng)大,但路漫漫其修遠(yuǎn)兮,Agent的應(yīng)用落地依然有很長(zhǎng)的路要走,但是我堅(jiān)信不久的將來會(huì)有更多的Agent應(yīng)用落地,Agent應(yīng)用會(huì)涵蓋更多的技術(shù),終將會(huì)融進(jìn)各行各業(yè),為人類帶來更大的便利。 結(jié)語(yǔ) RAG和智能體(Agent)這些技術(shù)和理念的潛力在于相互結(jié)合,通過結(jié)合大模型的深層次語(yǔ)言理解和生成能力、RAG的垂直和實(shí)時(shí)的信息檢索能力以及Agent的決策和執(zhí)行能力,形成更為強(qiáng)大和敏捷的AI應(yīng)用。Agent能夠通過自我反思和反饋來改進(jìn)執(zhí)行,同時(shí)提供可觀察性,以便開發(fā)者能夠追蹤和理解Agent的行為,結(jié)合各種工具,融合RAG技術(shù),可以處理更復(fù)雜的業(yè)務(wù)邏輯。同時(shí),多個(gè)Agent可以同步或異步地交互,以執(zhí)行更復(fù)雜的任務(wù),助力構(gòu)建更加復(fù)雜的LLM應(yīng)用。 參考文獻(xiàn) https://qwenlm./zh/blog/qwen-agent-2405/ https://docs.google.com/presentation/d/1IWjo8bhoatWccCfGLYw_QhUI4zfF-MujN3ORIDCBIbc/edit#slide=id.g2bac367b3d6_0_0 |
|