Agent四大范式 | 綜述:全面理解Agent工作原理
什么是智能體Agent
Autonomous agents 又被稱為智能體Agent。能夠通過感知周圍環(huán)境、進行規(guī)劃以及執(zhí)行動作來完成既定任務(wù)。在這些能力中,規(guī)劃尤為重要,它涉及到復(fù)雜的理解、推理和決策制定。
大語言模型出現(xiàn)以前,我們一般通過規(guī)則的方法,或者強化學(xué)習(xí)的方法來實現(xiàn)。但是這兩種方法各有弊端:
- 規(guī)則的方法是指把復(fù)雜的自然語言問題轉(zhuǎn)化為規(guī)則符號,往往需要行業(yè)專家的介入,缺乏容錯能力,小錯誤可能導(dǎo)致整個系統(tǒng)的失敗。
- 而強化學(xué)習(xí)一般是構(gòu)建策略網(wǎng)絡(luò)或獎勵模型,但是一般需要大量樣本進行訓(xùn)練,但是收集數(shù)據(jù)往往成本很高,所以這種方法可行性不大,很難推廣開來。
近幾年,大語言模型的興起因此了智能體應(yīng)用這個領(lǐng)域的巨大變化。大語言模型在邏輯推理、工具應(yīng)用、策略規(guī)劃、指令遵循等方面都有非常不錯的表現(xiàn),這使得大家開始意識到,將大語言模型作為Agent應(yīng)用的核心認知系統(tǒng),可以極大的提高智能體的規(guī)劃能力。
而且最近,吳恩達一直在吹A(chǔ)gent的風(fēng) 劃重點 | 吳恩達:Agent模式將在不久的將來超過下一代模型 ,也確實,越來越多的人發(fā)現(xiàn),模型訓(xùn)練成本高昂,還不如用Agent的方法來實現(xiàn)更加智能的應(yīng)用體。
圖片
這篇文章中,作者將Agent應(yīng)用的能力分為五個主要類別:任務(wù)分解、多方案選擇、外部模塊輔助規(guī)劃、反思與優(yōu)化、記憶增強規(guī)劃。
圖片
? 任務(wù)分解是指借助LLM將任務(wù)拆解為若干個子任務(wù),并依次對每個子任務(wù)進行規(guī)劃。
? 多方案選擇是指大型語言模型深入“思考”,針對特定任務(wù)提出多種可能的方案。接著,利用針對性的任務(wù)搜索機制,從中挑選一個最合適的方案來實施。
? 外部模塊輔助規(guī)劃。該策略專門設(shè)計用于引入外部規(guī)劃器,以增強規(guī)劃過程的效率和計劃的可行性,同時大型語言模型主要負責(zé)將任務(wù)規(guī)范化。
? 反思與優(yōu)化。這種策略著重于通過自我反思和細節(jié)完善來增強規(guī)劃能力。它激勵大型語言模型Agent應(yīng)用在遭遇失敗后進行深入反思,并據(jù)此優(yōu)化規(guī)劃方案。
? 記憶增強規(guī)劃。該策略通過引入一個附加的記憶組件來提升規(guī)劃能力,該組件中存儲了各種寶貴信息,包括基本常識、歷史經(jīng)驗、領(lǐng)域?qū)I(yè)知識等。在進行規(guī)劃時,這些信息會被調(diào)取出來,充當(dāng)輔助提示,以增強規(guī)劃的效果。
這五大研究方向并非相互獨立,而是相互關(guān)聯(lián),往往需要同時運用多種技術(shù)手段。
任務(wù)分解
在現(xiàn)實世界中,環(huán)境往往充滿了復(fù)雜性和變化,因此通過一次規(guī)劃來解決復(fù)雜任務(wù)往往比較困難。所以將復(fù)雜任務(wù)簡化是一個非常有效的辦法,有點類似于“分而治之”的策略(如下圖)。任務(wù)分解一般包括兩個環(huán)節(jié):
? 將復(fù)雜任務(wù)拆解為多個子任務(wù),稱為分解階段
? 為子任務(wù)指定規(guī)劃,這個階段被稱為子規(guī)劃階段
圖片
目前,一般有兩種組合方式:
? 1.先分解后規(guī)劃(Decomposition-First Methods)
? 2.邊分解邊規(guī)劃(Interleaved Decomposition Methods)
先分解后規(guī)劃(Decomposition-First Methods)
先分解后規(guī)劃策略是先把任務(wù)拆解為子任務(wù),然后再為每個子任務(wù)指定子規(guī)劃。包括 HuggingGPT、Plan-and-Solve、ProgPrompt等典型方法都是用的這種方法進行規(guī)劃。
? HuggingGPT整合Huggingface Hub的多種多模態(tài)模型,打造出一個能夠應(yīng)對多模態(tài)任務(wù)的智能代理。該代理擅長處理如圖像生成、分類、物體識別、視頻注釋、語音轉(zhuǎn)文本等任務(wù)。LLM在此過程中充當(dāng)指揮官,負責(zé)解析人類輸入的任務(wù)、挑選合適的模型并產(chǎn)出最終答復(fù)。最為關(guān)鍵的初階段任務(wù)拆解中,HuggingGPT明確指導(dǎo)LLM將接到的任務(wù)細化為一系列子任務(wù),并明確任務(wù)間的依賴性。
? Plan-and-Solve 改進了Few Shot COT方法,將其原始的“讓我們一步步來思考”轉(zhuǎn)變?yōu)椤笆紫戎贫ㄓ媱潯焙汀皥?zhí)行計劃”的兩步提示指令。這種COT方法在數(shù)學(xué)、常識及符號推理方面均有所提升。
? ProgPrompt 則將自然語言描述的任務(wù)轉(zhuǎn)譯為編程問題,通過代碼定義代理的動作空間和環(huán)境中的對象,每個動作都明確為一個函數(shù),每個對象則作為一個變量。這樣,任務(wù)規(guī)劃便自然轉(zhuǎn)化為生成函數(shù)的過程。執(zhí)行任務(wù)時,代理會先創(chuàng)建一個以函數(shù)調(diào)用來體現(xiàn)的計劃,隨后逐步實施。
邊分解邊規(guī)劃(Interleaved Decomposition Methods)
邊分解邊規(guī)劃方法是指任務(wù)分解和子任務(wù)規(guī)劃交錯進行。包括思維鏈、ReAct、PAL、PoT等方法都是用的這種策略。
? CoT展示了LLM在少樣本學(xué)習(xí)上的能力。它通過幾個構(gòu)建的路徑引導(dǎo)LLM對復(fù)雜問題進行推理,利用LLM的推理能力進行任務(wù)拆解。Few Shot CoT 通過“讓我們一步步思考”這一神奇指令,激活了LLM的Few Shot COT功能。
? ReAct與CoT不同,它將推理與規(guī)劃分開處理,在推理(思考步驟)與規(guī)劃(行動步驟)之間進行切換,顯著提升了規(guī)劃能力。視覺ChatGPT采用ReAct機制,將LLM作為代理的大腦,結(jié)合一系列視覺模型,賦予代理圖像處理的能力。
? PAL 通過發(fā)揮LLM的編碼專長,優(yōu)化了CoT,在推理過程中引導(dǎo)LLM生成代碼,并最終通過代碼解釋器(如Python)執(zhí)行代碼以得到答案,有效助力代理解決數(shù)學(xué)和符號推理難題。
? PoT將推理過程徹底編程化,作者還運用了針對代碼數(shù)據(jù)訓(xùn)練的CodeX模型,增強了解決數(shù)學(xué)和財務(wù)問題的效能。
利弊
先分解后規(guī)劃的優(yōu)勢在于,能夠在子任務(wù)與原任務(wù)之間聯(lián)系更加緊密,所以可以降低任務(wù)遺漏和幻覺的風(fēng)險。但是,由于子任務(wù)在最初就被固定下來,缺乏靈活調(diào)整的機制,任何一步的失誤都可能會導(dǎo)致整體的失敗。
邊分解邊規(guī)劃的策略,可以根據(jù)環(huán)境反饋來調(diào)整分解策略,增強應(yīng)對錯誤得能力。但是在處理復(fù)雜任務(wù)時,如果過程太長,可能會導(dǎo)致LLM產(chǎn)生幻覺,讓后續(xù)的子任務(wù)和子規(guī)劃偏離既定目標(biāo)。
此外,任務(wù)分解帶來了額外的時間和計算成本。
而且,對于一些被拆分的子任務(wù)太多的高復(fù)雜度任務(wù)而言,規(guī)劃過程會受到LLM上下文長度的限制,從而導(dǎo)致規(guī)劃路徑偏離原有路徑。
多方案選擇
鑒于任務(wù)本身的復(fù)雜性及大型語言模型(LLM)內(nèi)在的不確定性,LLM-Agent為特定任務(wù)制定的計劃可能千差萬別。盡管LLM具備強大的推理能力,但單獨生成的計劃可能并非最優(yōu),甚至不可執(zhí)行。更自然的方法是采用多計劃選擇,該過程包括兩個主要步驟:多計劃生成和最優(yōu)計劃挑選。
多方案生成
多計劃生成的目的在于產(chǎn)生一系列計劃路徑,形成候選計劃集。常見的方法有:
? 通過在解碼過程中調(diào)整采樣策略,比如溫度參數(shù)、top-k參數(shù),來獲取不同的多個推理路徑。
? 思維樹(ToT)包括兩種生成計劃策略,一種是與前述的采樣策略參數(shù)調(diào)整一致,另一種是指導(dǎo)LLm通過提示詞中的少量示例來生成不同的規(guī)劃。
? 思維圖(GoT)引入思維轉(zhuǎn)換的概念,對ToT進行了擴展,支持任意思維的聚合。
? LLM-MCTS 和RAP 則將LLM作為蒙特卡洛樹搜索(MCTS)中的啟發(fā)式策略函數(shù),通過多次調(diào)用獲取多種可能的行動方案。
如何在多個方案中選擇最佳策略也有多種方法:
? 自洽性策略通過簡單的多數(shù)投票法來確定最受歡迎的計劃作為最佳選擇。
? 思維樹(ToT)利用其樹狀結(jié)構(gòu),支持包括廣度優(yōu)先搜索(BFS)和深度優(yōu)先搜索(DFS)在內(nèi)的樹狀搜索算法。在決定擴展哪個節(jié)點時,ToT借助大型語言模型Agent應(yīng)用(LLM)來評估多種可能的行動,并從中挑選出最佳選項。
? LLMMCTS 和RAP 也使用樹狀結(jié)構(gòu)輔助進行多計劃搜索,但它們采用的是蒙特卡洛樹搜索(MCTS)算法。
外部模塊輔助規(guī)劃
盡管大型語言模型(LLMs)在推理和任務(wù)分解方面表現(xiàn)出色,但在面對如數(shù)學(xué)問題求解或生成合法行動等具有復(fù)雜約束的環(huán)境時,仍面臨挑戰(zhàn)。為應(yīng)對這些挑戰(zhàn),研究人員采取了將LLMs與外部規(guī)劃器相結(jié)合的多種方法,這些方法大致可分為符號規(guī)劃器和神經(jīng)規(guī)劃器兩大類。
符號規(guī)劃器
? LLM+P 通過整合基于PDDL的符號規(guī)劃器,提升了LLMs的規(guī)劃效率。研究者利用LLM的語義解析和編碼能力,將問題轉(zhuǎn)化為文本語言提示,輸入至LLM。這樣,LLM便能將環(huán)境內(nèi)的行為和特定任務(wù)轉(zhuǎn)化為PDDL語言格式。在獲得正式化描述后,研究者使用Fast-Downward 求解器來執(zhí)行規(guī)劃。
? 在LLM+P的基礎(chǔ)上,LLM-DP專為動態(tài)交互環(huán)境設(shè)計,它在接收環(huán)境反饋后,將信息形式化為PDDL語言,并利用BFS 求解器來生成計劃。
? LLM+PDDL 同樣采用PDDL語言來形式化任務(wù),并增加了手動驗證步驟,以檢查LLM生成的PDDL模型中可能的問題。在規(guī)劃過程中,研究者建議使用LLM生成的計劃作為初始啟發(fā)式解,以加快局部搜索規(guī)劃器(如LPG)的搜索速度。
? LLM+ASP [Yang et al., 2023b]將LLM描述的自然語言問題轉(zhuǎn)化為原子事實,將任務(wù)轉(zhuǎn)化為答案集編程(ASP)問題,然后使用ASP求解器CLINGO來生成計劃。
神經(jīng)規(guī)劃器
神經(jīng)規(guī)劃器,這類深度學(xué)習(xí)模型通過強化學(xué)習(xí)或模仿學(xué)習(xí)在收集的規(guī)劃數(shù)據(jù)上進行訓(xùn)練,能夠在特定領(lǐng)域內(nèi)實現(xiàn)高效的規(guī)劃。以DRRN 為例,它通過強化學(xué)習(xí)方法將規(guī)劃過程視作馬爾可夫決策過程,培養(yǎng)出一個策略網(wǎng)絡(luò)來構(gòu)建深度決策模型。決策變換器(DT)則讓變換器模型能夠模仿規(guī)劃數(shù)據(jù)中的人類決策行為。
神經(jīng)規(guī)劃器雖然在部分領(lǐng)域使用了更小的參數(shù)獲得較高的規(guī)劃效率,但是經(jīng)常會遇到數(shù)據(jù)不足、泛化能力有限的情況。所以為了提高規(guī)劃能力,研究者一般吧Agent應(yīng)用和輕量級神經(jīng)規(guī)劃器結(jié)合的方式。
? CALM 就是這種結(jié)合的早期嘗試,它將語言模型與基于強化學(xué)習(xí)的神經(jīng)規(guī)劃器結(jié)合起來。語言模型負責(zé)處理文本形式的環(huán)境信息,并基于這些信息生成一系列候選行動。隨后,DRRN策略網(wǎng)絡(luò)對這些候選行動進行重新排序,以選出最優(yōu)的行動方案。
? SwiftSage 鑒了認知心理學(xué)中的雙系統(tǒng)理論,將規(guī)劃過程劃分為慢速思考和快速思考兩個部分。慢速思考負責(zé)復(fù)雜的推理和理性決策,而快速思考則依賴于長期訓(xùn)練形成的直覺反應(yīng)。研究者們利用通過模仿學(xué)習(xí)訓(xùn)練的DT模型作為快速思考模型,以快速生成計劃。當(dāng)計劃執(zhí)行中出現(xiàn)錯誤,暗示問題較為復(fù)雜時,系統(tǒng)會切換到慢速思考模式,此時LLM會基于當(dāng)前狀態(tài)進行深入的推理和規(guī)劃。這種快速與慢速思考相結(jié)合的方法,在提高效率方面顯示出了顯著的效果。
反思與優(yōu)化(Reflection and Refinement)
反思和優(yōu)化是規(guī)劃過程中不可或缺的兩大支柱,在提升模型Agent應(yīng)用的容錯和糾錯能力上有很大作用。由于大語言模型的幻覺特點,已經(jīng)在處理復(fù)雜問題時的局限性,Agent應(yīng)用在做任務(wù)規(guī)劃時,往往會陷入思維旋渦。通過回顧和總結(jié)經(jīng)驗,可以使得Agent在后續(xù)的嘗試中糾正錯誤,打破循環(huán)。
? Self-refine:是通過迭代生成、反饋、精煉,使得大語言模型每次生成計劃后,都能提供反饋,根據(jù)反饋進行調(diào)整。
? Reflexion:則是在ReAct的基礎(chǔ)上增加評估器,用來評估行動軌跡,在發(fā)現(xiàn)錯誤后進行自我反思,從而糾正錯誤。
? CRITIC:則是利用外部工具,比如知識庫、搜索引擎來驗證LLM生成的行動,然后借助外部知識進行自我糾錯,減少事實性錯誤。??Agent四大范式 | CRITIC:吳恩達力推Agent設(shè)計范式??
? InteRecAgent 采用了ReChain機制來進行自我糾錯,LLM在此過程中評估交互推薦代理生成的響應(yīng)和工具使用計劃,總結(jié)錯誤反饋,并決定是否需要重新開始規(guī)劃。
? LEMA 則先收集錯誤的規(guī)劃樣本,隨后利用更高級的GPT-4進行修正,這些經(jīng)過修正的樣本用于微調(diào)LLM-Agent,顯著提高了LLaMA模型在不同規(guī)模上的性能。
記憶增強規(guī)劃
大語言模型Agent應(yīng)用在記憶方面主要有兩種方法來增強規(guī)劃能力:基于檢索增強生成(RAG)的方法和基于 嵌入式記憶(Embodied Memory,這里我翻譯成嵌入式記憶可能更合理,有更好的翻譯也歡迎大家指正。)。
RAG記憶
RAG現(xiàn)在也是很火的一種LLM應(yīng)用技術(shù)框架,是指通過信息檢索的方式輔助文本生成,可以為LLM提供最新的知識更新。存儲的內(nèi)容形式多種多樣,包括文本、表格、知識圖譜等。
這里針對RAG不多講,下次爭取找?guī)灼猂AG的綜述跟大家一起讀一讀。
嵌入式記憶
所謂嵌入式記憶,是相對RAG將知識存儲在外部系統(tǒng)而言,嵌入式記憶是將知識通過Finetune的方式把知識存儲在大模型里面,嵌入到模型參數(shù)里面。從頭開始訓(xùn)練一個模型成本巨大,所以一般采用PEFT的技術(shù)來進行微調(diào),比如:LoRA、QLoRA、P-tuning等。
CALM通過訓(xùn)練一個GPT2模型,可以完成一些規(guī)劃任務(wù),并且還有比較好的泛化能力。AgentTuning 將不同任務(wù)的規(guī)劃軌跡整合成對話形式,對LLaMA模型進行微調(diào),顯著提升了在未見規(guī)劃任務(wù)上的性能表現(xiàn)。
Agent應(yīng)用的局限性
雖然在吳恩達最近的觀點中,Agent應(yīng)用有潛力成為未來AGI的通用技術(shù)路線,但是現(xiàn)有的Agent應(yīng)用還有很多問題和局限性。
? 幻覺現(xiàn)象。在規(guī)劃過程中,LLM常常出現(xiàn)幻覺,導(dǎo)致規(guī)劃不合理,對任務(wù)提示不忠實,或無法遵循復(fù)雜指令。比如,計劃中可能包含了與環(huán)境中不存在的物品進行交互的行動。雖然通過精心設(shè)計的提示可以緩解這些問題,但是理論上并不能完全消除幻覺帶來的問題。
? 生成計劃的可行性。基于統(tǒng)計學(xué)習(xí)的LLM通過海量數(shù)據(jù)優(yōu)化下一個詞的出現(xiàn)概率,與符號化人工智能相比,這種方法在遵循復(fù)雜約束時存在挑戰(zhàn),特別是在處理LLM訓(xùn)練期間不常遇到的約束。因此,LLM生成的計劃可能在沒有充分考慮先決條件的情況下缺乏可行性。將LLM與符號化規(guī)劃模型結(jié)合,而不改變LLM本身,是一個充滿希望的研究方向。
? 生成計劃的效率。高效地生成計劃是規(guī)劃中的關(guān)鍵議題。然而,現(xiàn)有的LLM代理在規(guī)劃時,往往只基于LLM輸出的生成計劃進行貪婪選擇,忽略了計劃的效率。未來的研究可能需要引入額外的效率評估模塊,與LLM協(xié)同工作,以制定更高效的計劃。
? 多模態(tài)環(huán)境反饋的處理。LLM最初旨在處理文本輸入,但現(xiàn)實世界的環(huán)境反饋往往是多模態(tài)的,包括圖像、音頻等,這些內(nèi)容在自然語言中難以表達。因此,LLM代理在處理這類情境時存在局限。未來的研究可能需要考慮整合多模態(tài)大型模型的發(fā)展,并重新考慮相關(guān)的規(guī)劃策略。
? 細致的評估方法。當(dāng)前的基準(zhǔn)測試主要依賴于任務(wù)的最終完成狀態(tài),缺少對每一步的細致評估。此外,環(huán)境反饋通常是規(guī)則驅(qū)動的、過于簡化的,與現(xiàn)實世界情境有較大差異。一個可能的研究方向是利用像LLM這樣的高智能模型來設(shè)計更加真實的評估環(huán)境。
例如,生成代理將人類代理的日常經(jīng)驗以文本形式存儲,并基于當(dāng)前情境的相關(guān)性和時效性來檢索記憶。MemoryBank、TiM和RecMind等系統(tǒng)則利用文本編碼模型將記憶編碼成向量,并建立索引結(jié)構(gòu),以便檢索。在檢索時,當(dāng)前狀態(tài)的描述作為查詢條件,用于從記憶庫中檢索記憶。不同系統(tǒng)在記憶更新方式上有所區(qū)別:MemGPT借鑒了計算機架構(gòu)中的多級存儲概念,將LLM的上下文視為RAM,而將額外的存儲結(jié)構(gòu)視作磁盤,LLM可以自主決定是否檢索歷史記憶或?qū)?dāng)前上下文存儲起來。REMEMBER系統(tǒng)則采用Q值表來存儲歷史記憶,每條記錄包含環(huán)境、任務(wù)、動作和Q值,以便在檢索時根據(jù)環(huán)境和任務(wù)的相似性來生成計劃Arxiv。
通往 AGI 的神秘代碼
if like_this_article():
do_action('點贊')
do_action('再看')
add_wx_friend('iamxxn886')
if like_all_arxiv_articles():
go_to_link('https://github.com/HuggingAGI/HuggingArxiv') star_github_repo(
本文轉(zhuǎn)載自??大語言模型論文跟蹤??,作者:HuggingAGI
