大模型自主智能體爆火,OpenAI也在暗中觀察、發(fā)力,這是內(nèi)部人的分析博客
最近幾個月,隨著大語言模型的持續(xù)火爆,利用其構(gòu)建 AI 智能體的研究陸續(xù)進入人們的視線。AI 智能體這個概念也流行開來,不斷突破人們的想象力。
先是斯坦福大學、谷歌的研究者,他們成功構(gòu)建了一個「虛擬小鎮(zhèn)」,小鎮(zhèn)上的居民不再是人,而是 25 個 AI 智能體。它們的行為比人類角色的扮演更加真實,甚至舉辦了一場情人節(jié)派對。
隨后商湯、清華等機構(gòu)提出了能夠自主學習解決任務(wù)的通才 AI 智能體 Ghost in the Minecraft (GITM),在《我的世界》中比以往所有智能體都有更優(yōu)秀的表現(xiàn)。
圖片
同一時間,英偉達開源的 VOYAGER,也給 AI 圈帶來了「小小的」的震撼。作為一個大模型驅(qū)動、可以終身學習的游戲智能體,VOYAGER 在《我的世界》中玩出了高水平。這些 AI 智能體的先后涌現(xiàn),甚至讓人認為是未來通用人工智能(AGI)的雛形。
很多 AI 領(lǐng)域的大佬和科技巨頭對 AI 智能體的發(fā)展產(chǎn)生了極大興趣并寄予了厚望。特斯拉前 AI 總監(jiān)、今年年初回歸 OpenAI 的 Andrej Karpathy 在一次開發(fā)者活動上透漏,每當有新的 AI 智能體論文出現(xiàn)時,OpenAI 內(nèi)部就會非常感興趣,并認真地進行討論。
圖片
圖源:https://twitter.com/GPTDAOCN/status/1673781206121578498
那么不禁要問,AI 智能體到底有哪些組成部分呢?它的神奇之處又具體表現(xiàn)在哪些方面呢?
近日,OpenAI 安全系統(tǒng)(Safety Systems)負責人 Lilian Weng 寫了一篇關(guān)于 AI 智能體的博客。她認為 AI 智能體的核心驅(qū)動力是大語言模型,規(guī)劃(Planning)、 記憶(Memory)和工具使用(Tool Use)是實現(xiàn)它的三個關(guān)鍵組件。
先前機器之心文章《GPT-4 背后的開發(fā)者:七大團隊,三十余位華人》也曾介紹過 Lilian Weng,她 2018 年加入 OpenAI,在 GPT-4 項目中主要參與預(yù)訓(xùn)練、強化學習 & 對齊、模型安全等方面的工作。
Lilian Weng 對每個組件展開詳細剖析,并提供了一些案例研究,比如科學發(fā)現(xiàn)智能體、生成式智能體模擬和概念驗證示例。對于 AI 智能體未來將面臨哪些挑戰(zhàn),她也給出了自己的觀點。
圖片
機器之心對博客的核心內(nèi)容進行了編譯整理。
博客鏈接:https://lilianweng.github.io/posts/2023-06-23-agent/
智能體系統(tǒng)的概念
在大語言模型(LLM)賦能的自主智能體系統(tǒng)中,LLM 充當了智能體的大腦,其三個關(guān)鍵組件分別如下:
首先是規(guī)劃,它又分為以下內(nèi)容:
- 子目標和分解。智能體將大型任務(wù)分解為更小、可管理的子目標,從而高效處理復(fù)雜的任務(wù);
- 反思和完善:智能體可以對過去的行為展開自我批評和自我反思,從錯誤中吸取教訓(xùn),并針對未來的步驟進行完善,提高最終結(jié)果的質(zhì)量。
其次是記憶,分為了短期記憶和長期記憶:
- 短期記憶:作者認為所有的上下文學習(參見提示工程)都是利用模型的短期記憶來學習。
- 長期記憶:為智能體提供了長時間保留和回憶(無限)信息的能力,通常利用外部向量存儲和快速檢索實現(xiàn)。
最后是工具使用:
- 智能體學習調(diào)用外部 API 來獲取模型權(quán)重中缺失的額外信息(通常在預(yù)訓(xùn)練后很難更改),包括當前信息、代碼執(zhí)行能力、對專有信息源的訪問等。
下圖 1 為 LLM 賦能的自主智能體系統(tǒng)概覽。
圖片
組件 1:規(guī)劃
我們知道,一項復(fù)雜的任務(wù)通常涉及許多步驟。智能體必須了解任務(wù)是什么并提前進行規(guī)劃。
任務(wù)分解
首先是思維鏈(CoT)。它已經(jīng)成為增強復(fù)雜任務(wù)上模型性能的標準提示技術(shù)。在實現(xiàn)過程中,模型被指示「一步一步思考」,從而利用更多的測試時間計算將困難任務(wù)分解為更小、更簡單的步驟。CoT 將大型任務(wù)轉(zhuǎn)化為多個可管理的小任務(wù),并解釋清楚模型的思維過程。
其次是思維樹(Tree of Thoughts)。它通過在每一步探索多種推理可能性來擴展 CoT。首先將問題分解為多個思考步驟,并在每個步驟中生成多個思考,創(chuàng)建一種樹結(jié)構(gòu)。搜索過程可以是廣度優(yōu)先搜索(BFS)或深度優(yōu)先搜索(DFS),其中每個狀態(tài)由分類器(通過提示)或多數(shù) vote 進行評估。
具體地,任務(wù)分解過程可以通過以下三種方式完成:
- 基于 LLM 的簡單提示,比如「XYZ 的步驟是什么?」、「實現(xiàn) XYZ 的子目標是什么?」;
- 使用特定于任務(wù)的指示,比如「寫一個故事大綱」;
- 人工輸入。
最后一種截然不同的方法是 LLM+P,它依賴外部經(jīng)典規(guī)劃器來進行長期規(guī)劃。該方法利用規(guī)劃領(lǐng)域定義語言(PDDL)作為描述規(guī)劃問題的中間接口。在這一過程中,LLM (1) 將問題轉(zhuǎn)化為「Problem PDDL」,然后 (2) 請求經(jīng)典規(guī)劃器基于現(xiàn)有的「Domain PDDL」生成 PDDL 規(guī)劃,最后 (3) 將 PDDL 規(guī)劃轉(zhuǎn)換回自然語言。
本質(zhì)上,規(guī)劃步驟被外包給了外部工具,并假設(shè)特定領(lǐng)域的 PDDL 和合適的規(guī)劃器可用。這在某些機器人設(shè)置中很常見,而在許多其他領(lǐng)域并不常見。
自我反思
自我反思(Self-reflection)允許自主智能體通過完善以往行動決策和糾正以往錯誤來迭代改進,因而會在出現(xiàn)試錯的現(xiàn)實世界任務(wù)中發(fā)揮至關(guān)重要的作用。
ReAct 通過將動作空間擴展為一個任務(wù)特定的「離散動作和語言空間的組合」,將推理和動作集成在 LLM 中。離散動作使 LLM 能夠與環(huán)境交互(例如使用維基百科搜索 API),而語言空間促使 LLM 以自然語言生成推理軌跡。
ReAct 提示模板包含了 LLM 思考的明確步驟,大致格式如下所示:
Thought: ...
Action: ...
Observation: ...
... (Repeated many times)
下圖 2 為知識密集型任務(wù)(如 HotpotQA、FEVER)和決策型任務(wù)(如 AlfWorld Env、WebShop)的推理軌跡示例。
圖片
圖源:https://arxiv.org/abs/2210.03629
實驗結(jié)果顯示,對于知識密集型任務(wù)和決策型任務(wù),ReAct 的效果優(yōu)于僅 Act 的基線方法,這類方法刪除了「Thought: ...」步驟。
Reflexion 框架則為智能體配備了動態(tài)記憶和自我反思能力,提高了推理技能。它有一個標準的 RL 設(shè)置,其中獎勵模型提供簡單的二元獎勵,而動作空間遵循 ReAct 中的設(shè)置。并且特定于任務(wù)的動作空間通過語言進行增強,實現(xiàn)復(fù)雜推理步驟。在每個動作 a_t 之后,智能體計算啟發(fā)式 h_t,并選擇性地根據(jù)自我反思結(jié)果來決定重置環(huán)境,從而開始新的試驗。
下圖 3 為 Reflexion 框架概覽。
圖片
圖源:https://arxiv.org/abs/2303.11366
啟發(fā)式功能決定軌跡何時開始效率低下或包含幻覺,以及何時應(yīng)該停止。低效的規(guī)劃是指花費太長時間而沒有成功的軌跡?;糜X(Hallucination)被定義為遇到了一系列連續(xù)的相同動作,而這些動作導(dǎo)致環(huán)境中出現(xiàn)相同的觀察。
自我反思通過向 LLM 展示 two-shot 示例來創(chuàng)建,每個例子都是一對失敗的軌跡,它們是指導(dǎo)未來規(guī)劃中變化的理想反思。然后反思被添加到智能體的工作記憶中,最多三個,用作查詢 LLM 的上下文。
下圖 4 為在 AlfWorld Env 和 HotpotQA 上的實驗。其中在 AlfWorld 中,幻覺是比低效規(guī)劃更常見的失敗。
圖源:https://arxiv.org/abs/2303.11366
Chain of Hindsight(CoH)鼓勵模型通過顯式地呈現(xiàn)一系列過去的輸出(每個輸出都帶有反饋注釋)來改進其自身的輸出。人類反饋數(shù)據(jù)是的集合,其中 x 是提示,每個 y_i 是模型補全,r_i 是 y_i 的人類評分,z_i 是相應(yīng)的人類提供的事后反饋。假設(shè)反饋元組按獎勵排序
,該過程是有監(jiān)督的微調(diào)。數(shù)據(jù)的序列形式為
,其中≤i≤j≤n。該模型經(jīng)過微調(diào),僅預(yù)測以序列前綴為條件的 y_n,使得模型可以根據(jù)反饋序列自我反思,從而產(chǎn)生更好的輸出。該模型可以選擇性地在測試時接受到人類注釋者的多輪指令。
為了避免過擬合,CoH 添加正則化項來最大化預(yù)訓(xùn)練數(shù)據(jù)集的對數(shù)似然。同時為了避免捷徑和復(fù)制(由于反饋序列中有很多常見單詞),研究者在訓(xùn)練過程中隨機屏蔽了 0%- 5% 的過去 token。
實驗中采用的訓(xùn)練數(shù)據(jù)集是 WebGPT 比較、人類反饋總結(jié)以及人類偏好數(shù)據(jù)集的組合。下圖 5 展示了使用 CoH 進行微調(diào)后,模型可以按照指令生成具有序列增量改進的輸出。
圖片
圖源:https://arxiv.org/abs/2302.02676
CoH 的思路是呈現(xiàn)上下文中連續(xù)改進輸出的歷史,并訓(xùn)練模型產(chǎn)生更好輸出。算法蒸餾(AD)將相同的思路應(yīng)用于強化學習任務(wù)中的跨情節(jié)軌跡,其中算法被封裝在長期歷史條件策略中。
下圖 6 為算法蒸餾的工作原理。
圖片
圖源:https://arxiv.org/abs/2210.14215
在算法蒸餾論文中,研究者假設(shè)任何生成一組學習歷史的算法都可以通過對動作執(zhí)行行為克隆來蒸餾成神經(jīng)網(wǎng)絡(luò)。歷史數(shù)據(jù)由一組源策略生成,而每個源策略針對特定任務(wù)進行訓(xùn)練。
在訓(xùn)練階段,每次 RL 運行期間,研究者都會對隨機任務(wù)進行采樣,并使用 multi-episode 歷史的子序列進行訓(xùn)練,使得學習到的策略與任務(wù)無關(guān)。
實際上該模型的上下文窗口長度有限,因此 episode 應(yīng)足夠短以構(gòu)建 multi-episode 歷史。要學習近最優(yōu)的上下文 RL 算法,需要 2 到 4 個 episode 的 multi-episodic 上下文。上下文 RL 的出現(xiàn)需要足夠長的上下文。
與三個基線相比,包括 ED(專家蒸餾,用專家軌跡而不是學習歷史進行行為克?。?、源策略(用于生成 UCB 蒸餾的軌跡)、RL^2( 2017 年提出的一種在線強化學習算法,作為上限進行比較)。盡管 AD 算法僅使用離線強化學習,但其性能接近 RL^2,并且學習速度比其他基線快得多。當以源策略的部分訓(xùn)練歷史為條件時,AD 的改進速度也比 ED 基線快得多。
下圖 7 為 AD、ED、源策略和 RL^2 的比較。
圖片
組件 2:記憶
作者表示,這一章節(jié)借助了 ChatGPT 來幫忙起草。下面我們看看這部分具體內(nèi)容。
記憶類型
記憶類型分為三類:感知記憶、短期記憶(STM)或工作記憶以及長期記憶(LTM)。
感知記憶:這是記憶的早期階段,它能夠在原始刺激結(jié)束后保持對感官信息(視覺、聽覺等)的印象。感知記憶通常只能持續(xù)幾秒鐘。其子類包括圖像記憶(視覺)、回聲記憶(聽覺)和觸摸記憶(觸感)。
短期記憶(STM)或工作記憶:短期記憶存儲著我們目前所知道的信息,以及執(zhí)行復(fù)雜認知任務(wù)(如學習和推理)所需要的信息。一般來講,短期記憶持續(xù) 20-30 秒。
長期記憶:長時記憶可以將信息存儲很長時間,從幾天到幾十年不等,其存儲容量基本上是無限的。LTM 有兩種子類型:
- 顯式、陳述性記憶:這是對事實和事件的記憶,指的是那些可以有意識地回憶起來的記憶,包括情景記憶(事件和經(jīng)過)和語義記憶(事實和概念);
- 隱式、程序性記憶:這種類型的記憶是無意識的,涉及自主執(zhí)行的技能和慣例,比如騎自行車或在鍵盤上打字。
圖片
人類記憶分類
參考人類記憶的分類,我們可以得到以下映射:
- 感知記憶作為原始輸入(包括文本、圖像或其他模態(tài))的學習嵌入表示。
- 短期記憶作為上下文學習,由于受到 Transformer 有限上下文窗口長度的限制,短期記憶是短暫且有限的。
- 長期記憶作為外部向量存儲,智能體可以查詢、快速檢索,從而進行訪問。
最大內(nèi)積搜索(MIPS)
外部記憶可以緩解注意力的一些限制。為了更好的處理外部記憶,一個常見的做法是將信息的嵌入表示保存到一個向量存儲數(shù)據(jù)庫中,該數(shù)據(jù)庫可以支持快速的最大內(nèi)積搜索(MIPS)。為了優(yōu)化檢索速度,研究者經(jīng)常使用的方法是近似最近鄰(ANN,approximate nearest neighbors)算法。
在加速 MIPS 中,經(jīng)常用到的 ANN 算法包括:
局部敏感哈希(LSH):它引入了一個哈希函數(shù),使得相似的輸入項以高概率映射到相同的 buckets 中,其中 buckets 的數(shù)量遠遠小于輸入的數(shù)量。
近似最近鄰(ANNOY):該方法的核心數(shù)據(jù)結(jié)構(gòu)是隨機投影樹(Random Projection Trees),它是一組二叉樹,其中每個非葉節(jié)點表示一個超平面,將輸入空間分割為兩部分,而每個葉節(jié)點則存儲一個數(shù)據(jù)點。樹是獨立且隨機構(gòu)建的,因此在某種程度上類似于哈希函數(shù)。這個想法與 KD 樹(一種將空間中點分開存儲的樹狀數(shù)據(jù)結(jié)構(gòu))密切相關(guān),但擴展性更強。
分層可導(dǎo)小世界(HNSW,Hierarchical Navigable Small World):這個方法受到小世界網(wǎng)絡(luò)(small world networks,是一種圖結(jié)構(gòu))的啟發(fā),其中大多數(shù)節(jié)點可以在很少的步驟內(nèi)與其他節(jié)點相連。HNSW 構(gòu)建了這些小世界圖的層次結(jié)構(gòu),其中底層包含實際的數(shù)據(jù)點,中間層創(chuàng)建了快捷方式以加速搜索。在執(zhí)行搜索時,HNSW 從頂層的一個隨機節(jié)點開始,并向目標節(jié)點導(dǎo)航,當無法再靠近目標時,它向下移動到下一層,直到達到底層。在上層進行的每一次移動都有可能在數(shù)據(jù)空間中覆蓋較大的距離,而在下層進行的每一次移動都會提高搜索的精度。
Facebook AI (現(xiàn) Meta AI)團隊開源的庫 FAISS:FAISS 運作的基本假設(shè)是,在高維空間中,節(jié)點之間的距離遵循高斯分布,因此應(yīng)該存在數(shù)據(jù)點的聚類。FAISS 通過將向量空間分割成聚類并在聚類內(nèi)進行量化來應(yīng)用向量量化。
可擴展最近鄰(ScaNN):ScaNN 的主要創(chuàng)新是各向異性矢量量化(Anisotropic Vector Quantization,AVQ),它將數(shù)據(jù)點 x_i 量化為,使得內(nèi)積盡可能接近原始距離,從而減少了數(shù)據(jù)點之間的距離誤差。
圖片
MIPS 算法比較。
組件 3:使用工具
使用工具是人類的一個顯著特點。我們創(chuàng)造、修改和利用外部物體來探索和認知現(xiàn)實世界。類似地,給 LLM 配備外部工具可以大幅擴展模型的能力。
一張海獺在水中漂浮時用石頭敲開貝殼的照片。雖然其他一些動物也能使用工具,但其復(fù)雜性無法與人類相比。圖源:Animals using tools
MRKL(Karpas et al. 2022)是一種用于自主智能體的神經(jīng) - 符號(neuro-symbolic)架構(gòu),命名來源于模塊化推理(Modular Reasoning)、知識(Knowledge)和語言(Language)的簡稱。每個 MRKL 系統(tǒng)包含一些「專家」模塊,通用 LLM 作為一個路由器,負責將查詢路由到最合適的專家模塊。這些模塊可以是神經(jīng)的(如深度學習模型),也可以是符號的(如數(shù)學計算器、貨幣轉(zhuǎn)換器、天氣 API)。
MRKL 的研究團隊使用數(shù)學計算作為測試案例,進行了一個微調(diào) LLM 調(diào)用計算器的實驗。由于 LLM(7B Jurassic1-large 模型)未能可靠地提取基本計算的正確 argument,因此該實驗表明解決口語簡單闡述的數(shù)學問題比明確說明的數(shù)學問題更難。該實驗結(jié)果強調(diào)了當外部符號工具能夠可靠地工作時,知道何時和如何使用這些工具是至關(guān)重要的,而這由 LLM 的能力決定。
另外兩項研究 TALM(Parisi et al. 2022)和 Toolformer(Schick et al. 2023)都對語言模型(LM)進行了微調(diào),以學習使用外部工具 API。數(shù)據(jù)集則是根據(jù)新增加的 API 調(diào)用注釋是否能提高模型的輸出質(zhì)量來擴展的。
ChatGPT 插件和 OpenAI 的 API 函數(shù)調(diào)用是 LLM 使用工具增強能力的最好實例。工具 API 的集合可以由其他開發(fā)者提供(插件)或自定義(函數(shù)調(diào)用)。
HuggingGPT(Shen et al. 2023)則是一個使用 ChatGPT 作為任務(wù)規(guī)劃器的框架,根據(jù)模型描述選擇 HuggingFace 平臺中可用的模型,并根據(jù)執(zhí)行結(jié)果歸納總結(jié)出響應(yīng)。
圖片
HuggingGPT 工作原理示意圖。圖源:Shen et al. 2023
HuggingGPT 系統(tǒng)由 4 個階段組成:
(1)任務(wù)規(guī)劃:LLM 作為大腦,將用戶請求解析為多個任務(wù)。每個任務(wù)有四個關(guān)聯(lián)屬性:任務(wù)類型、任務(wù) ID、依賴項和參數(shù)。研究團隊使用少量例子來指導(dǎo) LLM 進行任務(wù)解析和規(guī)劃。
The AI assistant can parse user input to several tasks: [{"task": task, "id", task_id, "dep": dependency_task_ids, "args": {"text": text, "image": URL, "audio": URL, "video": URL}}]. The "dep" field denotes the id of the previous task which generates a new resource that the current task relies on. A special tag "-task_id" refers to the generated text image, audio and video in the dependency task with id as task_id. The task MUST be selected from the following options: {{ Available Task List }}. There is a logical relationship between tasks, please note their order. If the user input can't be parsed, you need to reply empty JSON. Here are several cases for your reference: {{ Demonstrations }}. The chat history is recorded as {{ Chat History }}. From this chat history, you can find the path of the user-mentioned resources for your task planning.
(2) 模型選擇:LLM 會從一個模型列表中選擇模型,將任務(wù)分配給專家模型。由于上下文長度有限,需要進行基于任務(wù)類型的過濾。
Given the user request and the call command, the AI assistant helps the user to select a suitable model from a list of models to process the user request. The AI assistant merely outputs the model id of the most appropriate model. The output must be in a strict JSON format: "id": "id", "reason": "your detail reason for the choice". We have a list of models for you to choose from {{ Candidate Models }}. Please select one model from the list.
(3) 任務(wù)執(zhí)行:專家模型執(zhí)行具體任務(wù),并記錄執(zhí)行結(jié)果。
With the input and the inference results, the AI assistant needs to describe the process and results. The previous stages can be formed as - User Input: {{ User Input }}, Task Planning: {{ Tasks }}, Model Selection: {{ Model Assignment }}, Task Execution: {{ Predictions }}. You must first answer the user's request in a straightforward manner. Then describe the task process and show your analysis and model inference results to the user in the first person. If inference results contain a file path, must tell the user the complete file path.
(4) 響應(yīng)生成:LLM 接收執(zhí)行結(jié)果,并向用戶提供總體結(jié)果。
為了將 HuggingGPT 投入實際使用,需要解決幾個挑戰(zhàn):(1)需要提高效率,因為 LLM 推理和與其他模型的交互都會減慢進程;(2)它依賴一個長的上下文窗口來溝通復(fù)雜的任務(wù)內(nèi)容;(3)提高 LLM 輸出和外部模型服務(wù)的穩(wěn)定性。
API-Bank(Li et al. 2023)是一個評估工具增強型 LLM 性能的基準。它包含 53 個常用的 API 工具,一個完整的工具增強型 LLM 工作流,以及涉及 568 個 API 調(diào)用的 264 個已注釋的對話。API-Bank 基準中可選擇的 API 相當多樣化,包括搜索引擎、計算器、日歷查詢、智能家居控制、日程管理等等。LLM 首先可以通過 API 搜索引擎找到合適的 API 進行調(diào)用,然后使用相關(guān)文檔調(diào)用 API。
圖片
LLM 在 API-BANK 中進行 API 調(diào)用的偽代碼。(圖片來源:Li et al. 2023)
在 API-Bank 的工作流中,LLM 需要做出一些決定,包括:
- 是否需要調(diào)用 API;
- 確定要調(diào)用的正確 API:如果不夠好,LLM 需要反復(fù)修改 API 輸入(例如更換搜索引擎 API 的搜索關(guān)鍵詞);
- 基于 API 結(jié)果的響應(yīng):如果結(jié)果不滿意,模型可以選擇優(yōu)化并再次調(diào)用。
這個基準在三個層次上評估了智能體的工具使用能力:
- 調(diào)用 API 的能力:根據(jù) API 的描述,模型需要確定是否調(diào)用給定的 API,正確地調(diào)用,并對 API 的返回結(jié)果作出正確的反應(yīng);
- 檢索 API 的能力。模型需要搜索可能解決用戶需求的 API,并通過閱讀文檔學習如何使用它們。
- 檢索和調(diào)用之外規(guī)劃 API 的能力??紤]到不明確的用戶要求(例如安排小組會議,為旅行預(yù)訂航班 / 酒店 / 餐廳),模型可能需要進行多次 API 調(diào)用來解決實際問題。
案例研究
用于科學發(fā)現(xiàn)的智能體
ChemCrow 是一個由大型語言模型(LLM)設(shè)計的化學智能體,旨在完成有機合成、藥物發(fā)現(xiàn)和材料設(shè)計等任務(wù)。通過整合 17 種專家設(shè)計的工具,ChemCrow 提高了 LLM 在化學方面的性能,并衍生出新的能力。
關(guān)于 ChemCrow ,一個有趣的觀察是,盡管基于 LLM 的評估結(jié)果得出的結(jié)論是 GPT-4 和 ChemCrow 的性能幾乎相當,但經(jīng)過專家人工評估表明,ChemCrow 在很大程度上優(yōu)于 GPT-4。這意味著在需要深度專業(yè)知識的領(lǐng)域使用 LLM 來評估其自身的性能可能存在潛在問題。缺乏專業(yè)知識可能導(dǎo)致 LLM 不了解其缺陷,因此無法很好地判斷任務(wù)結(jié)果的正確性。
Boiko 等人的論文則研究了用于科學發(fā)現(xiàn)的 AI 智能體,它被用來處理復(fù)雜科學實驗的自主設(shè)計、規(guī)劃和執(zhí)行。這個智能體可以使用工具瀏覽互聯(lián)網(wǎng)、閱讀文檔、執(zhí)行代碼、調(diào)用機器人實驗 API 和利用其他 LLM。
舉例來說,當智能體收到提示「develop a novel anticancer drug(開發(fā)一種新的抗癌藥物)」時,其推理步驟是這樣的:
- 詢問當前抗癌藥物發(fā)現(xiàn)的趨勢;
- 選定目標;
- 開始尋找針對這個目標的化合物;
- 一旦確定了化合物,模型就嘗試合成它。
生產(chǎn)式智能體
生成式智能體將 LLM 與記憶、規(guī)劃和反射機制相結(jié)合,使智能體能夠根據(jù)過去的經(jīng)驗做出反應(yīng),并與其他智能體進行交互。
生成式智能體架構(gòu)圖。
概念驗證示例
這里作者提到了 AutoGPT(自主人工智能),有了它,人類無需插手,AutoGPT 就能自主完成任務(wù)。Andrej Karpathy 也大贊:「AutoGPT 是 prompt 工程的下一個前沿?!?/span>
具體來說,AutoGPT 相當于給基于 GPT 的模型一個內(nèi)存和一個身體。有了它,你可以把一項任務(wù)交給 AI 智能體,讓它自主地提出一個計劃,然后執(zhí)行計劃。此外其還具有互聯(lián)網(wǎng)訪問、長期和短期內(nèi)存管理、用于文本生成的 GPT-4 實例以及使用 GPT-3.5 進行文件存儲和生成摘要等功能。AutoGPT 用處很多,可用來分析市場并提出交易策略、提供客戶服務(wù)、進行營銷等其他需要持續(xù)更新的任務(wù)。
此外,作者還列舉了 GPT-Engineer 項目,和代碼生成類工具差不多,其能根據(jù)提示生成代碼庫(codebase)。就像前面講到的,只要你提出合理的要求,GPT-Engineer 都能完成。
挑戰(zhàn)
在了解了構(gòu)建以 LLM 為中心的智能體關(guān)鍵思想和演示之后,我們應(yīng)該也看到一些限制:
有限的上下文長度:LLM 處理上下文信息的能力有限,盡管 self-reflection 等機制可以從過去的錯誤中學習,但更長或無限的上下文窗口將會帶來很大的好處。雖然向量存儲和檢索可以提供對更大知識庫的訪問,但它們的表示能力不如全注意力(full attention)強大。
LLM 在長期規(guī)劃和任務(wù)分解中的挑戰(zhàn):LLM 在面對意外錯誤時很難調(diào)整規(guī)劃并進行改正,與人類可以不斷試錯相比,LLM 魯棒性還是比較差的。
自然語言接口的可靠性:當前的智能體系統(tǒng)依賴于自然語言作為 LLM 與內(nèi)存和工具等外部組件之間的接口。然而,模型輸出的可靠性是值得懷疑的,因為 LLM 可能會出現(xiàn)格式錯誤,偶爾還會表現(xiàn)出叛逆行為(例如,拒絕遵循指令)。