可「自主進(jìn)化」的Agent?首個(gè)端到端智能體符號(hào)化訓(xùn)練框架開(kāi)源了
本文主要作者來(lái)自波形智能、浙江大學(xué)、和北京航空航天大學(xué)。共同一作中,周王春澍是波形智能的聯(lián)合創(chuàng)始人和 CTO,歐翌昕是浙江大學(xué)碩士二年級(jí),丁盛為為北京航空航天大學(xué)四年級(jí)本科生。文章的通訊作者為周王春澍和姜昱辰,姜昱辰是波形智能的聯(lián)合創(chuàng)始人和 CEO。
隨著各類(lèi)大模型 API 的迭代以及各類(lèi) AI Agent 框架的開(kāi)源,基于大模型的智能體在學(xué)術(shù)界和工業(yè)界收獲了廣泛的關(guān)注、研究、和應(yīng)用。
盡管基于大模型的智能體 (AI Agent) 在很多場(chǎng)景都取得了不錯(cuò)的效果,并且在一些場(chǎng)景下已經(jīng)能夠?qū)嶋H落地應(yīng)用,AI Agent 的研究和開(kāi)發(fā)的進(jìn)展仍然局限于 “expert-centric”,或者說(shuō) “engineering-centric” 的范式中。也就是說(shuō),現(xiàn)在的 Agent 的創(chuàng)建和調(diào)優(yōu)過(guò)程還是幾乎完全依賴(lài)人類(lèi)專(zhuān)家 (算法工程師) 的人力和經(jīng)驗(yàn)來(lái)設(shè)計(jì)智能體的 promtps, tools,和 workflow。這樣的過(guò)程費(fèi)時(shí)費(fèi)力,并且注定了無(wú)法使用海量數(shù)據(jù)對(duì)智能體的這些符號(hào)化元素進(jìn)行學(xué)習(xí)和訓(xùn)練。而大部分智能體依賴(lài)于閉源的 API 調(diào)用,無(wú)法對(duì)大模型基座本身進(jìn)行優(yōu)化,即使使用開(kāi)源大模型,對(duì)模型基座本身的優(yōu)化也在大部分 AI 智能體的應(yīng)用場(chǎng)景中受到資源、算力、穩(wěn)定性等原因而無(wú)法實(shí)際進(jìn)行。因此現(xiàn)在的智能體還處于 “專(zhuān)家系統(tǒng)” 的發(fā)展階段。
眾所周知,神經(jīng)網(wǎng)絡(luò)成為機(jī)器學(xué)習(xí) / 人工智能的基礎(chǔ)范式的重要原因正是因?yàn)榭梢愿咝У厥褂煤A繑?shù)據(jù)進(jìn)行訓(xùn)練和優(yōu)化,而不需要手工設(shè)計(jì)復(fù)雜的結(jié)構(gòu)和學(xué)習(xí)算法。因此,來(lái)自波形智能的研究人員們認(rèn)為,AI Agent 從以專(zhuān)家經(jīng)驗(yàn)為核心 (expert-centric) 到以數(shù)據(jù)為核心 (data-centric) 的轉(zhuǎn)變,將會(huì)是基于大模型的智能體的一個(gè)重要發(fā)展方向。
為了實(shí)現(xiàn)這個(gè)目標(biāo),來(lái)自波形智能的研究團(tuán)隊(duì)借鑒連接主義訓(xùn)練神經(jīng)網(wǎng)絡(luò) (connectionist learning) 的基本方式,即反向傳播和梯度下降,將 AI Agent 和神經(jīng)網(wǎng)絡(luò)進(jìn)行類(lèi)比,使用文本和大模型建模損失函數(shù)、梯度、和優(yōu)化器,模擬反向傳播和梯度下降算法,實(shí)現(xiàn)對(duì) Agent 的端到端的符號(hào)化訓(xùn)練算法,構(gòu)建了一套可以對(duì) AI 智能體進(jìn)行端到端訓(xùn)練的算法框架,代碼已經(jīng)開(kāi)源在 GitHub。
- 論文地址:https://arxiv.org/pdf/2406.18532
- 代碼倉(cāng)庫(kù):https://github.com/aiwaves-cn/agents
具體來(lái)說(shuō),團(tuán)隊(duì)首先將基于大模型的智能體解構(gòu)為三個(gè)主要元素,即 prompts, tools, 和 agent pipeline (workflow)。接著,框架中將一個(gè) Agent 系統(tǒng)看作是一個(gè) “符號(hào)化” 神經(jīng)網(wǎng)絡(luò),將 Agent workflow 中的每一個(gè) node 看作是網(wǎng)絡(luò)中的一個(gè) layer,而將每個(gè)節(jié)點(diǎn)中的 prompts 和 tools 看作是這個(gè) layer 的 weights,智能體的 workflow/pipeline 則可以看作是網(wǎng)絡(luò)的計(jì)算圖。這樣下來(lái),智能體系統(tǒng)可以看作是一個(gè)權(quán)重從數(shù)字 / 張量空間變成離散符號(hào)空間 (文字,代碼都是符號(hào)化的表示) 的神經(jīng)網(wǎng)絡(luò),而這種網(wǎng)絡(luò)的訓(xùn)練自然也就可以參考傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的優(yōu)化方式,即反向傳播和梯度下降。
圖 1: Agent Symbolic Learning 框架示意圖
要使傳統(tǒng)的反向傳播和梯度下降能夠處理符號(hào)化的權(quán)重空間,agent symbolic learning 框架中通過(guò)文本和大模型 + 提示詞的方式建模了損失,損失函數(shù),反向傳播的流程,梯度,以及基于梯度的優(yōu)化器。具體來(lái)說(shuō),前向傳播過(guò)程中,框架會(huì)將每一層的輸入、權(quán)重、和輸出都保存在計(jì)算圖中。接下來(lái),通過(guò)大模型 + 提示詞的方式,在提示詞中結(jié)合當(dāng)前樣本的輸入,輸出,和整體任務(wù)的描述,之后由大語(yǔ)言模型輸出對(duì)當(dāng)前樣本任務(wù)完成情況的評(píng)價(jià)和總結(jié)。得到的文本形式的評(píng)價(jià) / 總結(jié),正如神經(jīng)網(wǎng)絡(luò)中的 loss 一樣,用來(lái)衡量任務(wù)完成的好壞,研究團(tuán)隊(duì)將其稱(chēng)為 “文本形式的損失”,即 language-based loss。
之后,該研究通過(guò)大語(yǔ)言模型和精心設(shè)計(jì)的提示詞工程,來(lái)生成智能體流程中對(duì)最后一個(gè)節(jié)點(diǎn)的 “反思”。反思中包括模型的輸出應(yīng)該怎樣變化才能更符合要求,以及提示詞和工具調(diào)用應(yīng)該如何優(yōu)化才能使輸出朝這樣的方向發(fā)生變化。這一內(nèi)容和神經(jīng)網(wǎng)絡(luò)優(yōu)化中梯度的作用剛好一致,都是包含了參數(shù)應(yīng)該如何調(diào)整才能最小化整個(gè)模型的損失的信息,因此研究團(tuán)隊(duì)將這樣的反思稱(chēng)作 “文本形式的梯度”,即 language-based gradient。
接下來(lái)要做的就是從后向前,得到每一層的梯度,這對(duì)于神經(jīng)網(wǎng)絡(luò)的優(yōu)化至關(guān)重要。受到神經(jīng)網(wǎng)絡(luò)中基于鏈?zhǔn)椒▌t的公式的反向傳播的啟發(fā),波形智能的研究人員通過(guò)文本和大模型,用一套精心設(shè)計(jì)的 prompt 來(lái)模擬了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)優(yōu)化的鏈?zhǔn)椒▌t。具體來(lái)說(shuō),這套 prompts 讓大模型基于上一層的梯度信息 (即對(duì)上一層執(zhí)行任務(wù)的反思) 以及本層的輸入、輸出、以及權(quán)重 (這些輸入和反向傳播公式中的參數(shù)完全對(duì)應(yīng)),輸出對(duì)當(dāng)前節(jié)點(diǎn)的 prompt/tool usage 的反思,即當(dāng)前層的 language-based gradient。這樣基于文本的反向傳播的方案使得該研究能夠得到一個(gè)包含多個(gè)節(jié)點(diǎn)和復(fù)雜 workflow 的智能體中每一節(jié)點(diǎn) / 層的參數(shù)的梯度,也就可以直接優(yōu)化每一個(gè) prompt 和 tool 對(duì)整個(gè)智能體性能的作用,從而實(shí)現(xiàn) end-to-end 的 joint optimization。
最后,得到了每組參數(shù)的 language-based gradient 之后,框架中使用基于大模型的 optimizer,使用精心設(shè)計(jì)的 prompt,以每一層的提示詞和工具調(diào)用,以及基于文本的梯度作為輸入,輸出優(yōu)化過(guò)后的 prompts 和 tools,從而實(shí)現(xiàn)對(duì)智能體參數(shù)的更新。
除此之外,框架中還支持了對(duì)網(wǎng)絡(luò)結(jié)構(gòu),即 agent workflow 的優(yōu)化。具體來(lái)說(shuō),框架中將 agent workflow 以特定的編程語(yǔ)言進(jìn)行表示,這樣就將智能體網(wǎng)絡(luò)的 “計(jì)算圖” 也處理成了符號(hào)化的權(quán)重。之后通過(guò)一個(gè)單獨(dú)設(shè)計(jì)的基于大模型的優(yōu)化器,以當(dāng)前智能體的工作流和工作流中的各個(gè)節(jié)點(diǎn)的文本形式的梯度為輸入來(lái)對(duì)智能體的工作流進(jìn)行更新。這在神經(jīng)網(wǎng)絡(luò)中訓(xùn)練中可以類(lèi)比自動(dòng)網(wǎng)絡(luò)結(jié)構(gòu)搜索相關(guān)的研究。
圖 2: Agent Symbolic Learning 算法流程
圖 3 大模型評(píng)測(cè)任務(wù)上的實(shí)驗(yàn)結(jié)果
圖 4 智能體級(jí)別評(píng)測(cè)任務(wù)的實(shí)驗(yàn)結(jié)果
波形智能的研究人員在大模型和智能體的一系列 benchmark 上對(duì)該算法進(jìn)行了評(píng)估,如圖 3 和圖 4 所示,agent symbolic learning 相比 DSpy 和傳統(tǒng)的沒(méi)有學(xué)習(xí)能力的智能體框架相比,在各類(lèi)任務(wù)上都有了明顯的提升,在一些任務(wù)上甚至使用 GPT-3.5 也能和其他智能體框架使用 GPT-4 的表現(xiàn)類(lèi)似。而簡(jiǎn)單的對(duì)智能體中每一個(gè)節(jié)點(diǎn)中的提示詞使用局部的基于大語(yǔ)言模型的提示詞自動(dòng)優(yōu)化算法 (AutoPE) 則無(wú)法取得很明顯的效果。另外,如圖 5 所示,該算法在創(chuàng)意寫(xiě)作任務(wù)中,從初始的只基于一個(gè)提示詞進(jìn)行寫(xiě)作的單節(jié)點(diǎn)智能體,自主進(jìn)化到了支持寫(xiě)作 + 編輯的工作流,并且將寫(xiě)作節(jié)點(diǎn)的提示詞進(jìn)行了更新和優(yōu)化。
圖 5 Agent Symbolic Learning 框架學(xué)習(xí)效果展示 (以創(chuàng)意寫(xiě)作任務(wù)為例)
波形智能的研究團(tuán)隊(duì)介紹了 Agent Symbolic Learning 的兩種應(yīng)用場(chǎng)景。首先,該框架可以用于開(kāi)發(fā)者或研究人員創(chuàng)建和調(diào)優(yōu)智能體系統(tǒng)中。像神經(jīng)網(wǎng)絡(luò)的訓(xùn)練一樣,開(kāi)發(fā)者和研究人員可以對(duì)指定的任務(wù)收集(或者使用框架中提供的自動(dòng)生成)大量的樣本,之后使用該框架在大量數(shù)據(jù)上完成 “data-centric” 的智能體的訓(xùn)練和優(yōu)化,在之后像普通智能體的部署一樣,在產(chǎn)品生產(chǎn)環(huán)境中以靜態(tài)的方式部署優(yōu)化過(guò)后的智能體。
除此之外,該框架的另一個(gè)重要應(yīng)用場(chǎng)景是支持能夠在環(huán)境 / 交互中自主進(jìn)化的 Agent。具體來(lái)說(shuō),因?yàn)樵撚?xùn)練框架本身只需要調(diào)用大模型的能力而不需要復(fù)雜的基于 GPU 的訓(xùn)練和部署,因此一個(gè) Agent 可以將該訓(xùn)練框架作為其自身可以調(diào)用的一個(gè)工具,通過(guò)在環(huán)境中探索或者和人類(lèi)進(jìn)行交互的過(guò)程中,不斷收集新的訓(xùn)練樣本,定期或者主動(dòng)調(diào)用智能體訓(xùn)練的算法工具,對(duì)自身的 prompts, tools, 和 workflow 進(jìn)行更新。波形智能在 AIWaves Agents 的開(kāi)源代碼庫(kù)中也支持了這樣的部署邏輯,實(shí)現(xiàn)了首個(gè)可以在被部署到實(shí)際產(chǎn)品和生產(chǎn)環(huán)境中之后,依然可以不斷自主進(jìn)化、自我迭代的智能體系統(tǒng)。
Agent Symbolic Learning 框架將 AI Agent 視作由復(fù)雜 workflow 中的 prompts 和 tools 連接而成的符號(hào)化 “神經(jīng)網(wǎng)絡(luò)”,通過(guò)基于自然語(yǔ)言模擬反向傳播和梯度下降,使得基于大模型的智能體可以自主對(duì)自身的 “網(wǎng)絡(luò)參數(shù)”,即 prompts 和 tools,以及 “網(wǎng)絡(luò)結(jié)構(gòu)”,即 agent workflow,進(jìn)行優(yōu)化,從而實(shí)現(xiàn)了能夠高效利用大量數(shù)據(jù)和經(jīng)驗(yàn),進(jìn)行 “data-centric learning” 的智能體框架,讓能夠持續(xù)自主進(jìn)化的智能體系統(tǒng)變成了可能。目前,該框架已經(jīng)在波形智能的多個(gè)產(chǎn)品和應(yīng)用中發(fā)揮作用,解決了 Agent 人工優(yōu)化和評(píng)測(cè)困難的問(wèn)題。為了推進(jìn) “Data-centric Agent” 和 “Agent Learning” 的發(fā)展和研究,波形智能的研究團(tuán)隊(duì)也將算法的全部代碼開(kāi)源,期待智能體領(lǐng)域?qū)W術(shù)界和工業(yè)界一起探索更多更有趣的算法和應(yīng)用。