北京大學發布,將試錯引入大模型代理學習!

引言:探索語言智能的新邊界

在人工智能的發展歷程中,語言智能始終是一個核心的研究領域。隨著大語言模型(LLM)的興起,我們對語言智能的理解和應用已經邁入了一個新的階段。這些模型不僅能夠理解和生成自然語言,還能夠在多種環境中控制代理(agent)進行交互和決策。然而,盡管LLM在理解語言和規劃方面展現出了巨大的潛力,它們在從經驗中學習并改進行動策略方面仍存在限制。

傳統的強化學習方法通過試錯學習來訓練代理策略,但這種方法往往忽略了代理在特定環境中的先驗知識。而LLM正是在這方面表現出了優勢。然而,直接對大規模的LLM進行策略模型微調在實踐中是不切實際的,因此研究者們開始探索如何將歷史交互融入提示中,以利用過去的經驗來規劃未來的行動。這些方法雖然有其局限性,但也提供了新的思路。

本文提出了一種新的學習范式,即通過學習擴展和精細化行動空間,使任務與代理的規劃能力更加緊密對齊。研究者通過適應LLM的規劃來解決固定行動空間帶來的限制,例如常識知識引導的規劃與行動之間的不匹配,以及由于未滿足的先決條件或無效策略導致的行動錯誤。研究者們的方法不僅緩解了語言代理性能的瓶頸,還允許跨不同任務轉移經驗。

為了更具體地說明該方法,研究者們將介紹LearnAct框架,它旨在動態生成新的行動類型作為API,并通過反饋循環不斷精煉行動。實驗結果表明,LearnAct通過迭代精煉,不僅創造了復雜且用戶友好的行動類型,而且相較于以往的方法,實現了更有效和高效的學習。

論文標題: Empowering Large Language Model Agents through Action Learning

論文鏈接:https://arxiv.org/pdf/2402.15809.pdf

LearnAct框架介紹:動態生成新的行動類型

1. LearnAct的核心理念與目標

LearnAct框架的核心理念是通過學習擴展和精煉行動空間,從而更緊密地與代理的規劃能力相結合。與傳統的語言模型代理不同,LearnAct不僅僅在預設的行動空間內操作,而是通過經驗學習自然地擴展其行動類型。

這種方法解決了固定行動空間帶來的限制,例如常識知識引導的規劃與行動之間的不匹配,以及由于未滿足的先決條件或無效策略導致的行動錯誤。

  • 例如,在制作雞尾酒的任務中,LearnAct允許LLM自然地指導代理按特定順序收集所有組件并混合它們,而封閉的行動空間可能只涉及基本操作,如移動到不同地點和抓取瓶子,這大大增加了LLM代理的任務難度。

LearnAct通過動態生成新的行動類型作為API,利用LLM的廣泛先驗知識和代碼生成能力來設計一個多樣化和具有代表性的行動空間。此外,LearnAct的迭代學習策略通過反饋循環不斷精煉行動,每個周期中,LLM使用訓練示例評估當前行動的有效性,識別并糾正失敗實例中的錯誤。

2. LearnAct的行動類型生成與迭代學習策略

LearnAct生成新的行動類型基于原子行動,以實現更具信息性和適用性的行動,類似于分層強化學習中的做法。不同于傳統的分層強化學習,LearnAct不僅使用基于代碼的行動空間,提供了更強的能力,還避免了嚴格的兩級結構,而是使用靈活的混合級別行動

LearnAct的行動類型生成涉及兩個步驟

  • 首先,LLM被提示總結高級行動以完成任務,并以Python函數的形式為代理生成。這些函數可以調用多個基本或定義的行動來完成子任務。生成后,函數被解析并添加到行動空間中。

  • 其次,生成新的行動函數后,研究者更新代理關于它們潛在應用的信息。基本指令包含行動描述和使用示例,更新后的策略指導包括每個函數的描述和使用示例。

    ( 圖為LearnAct的訓練和測試階段示意圖)

在學習階段,代理首先嘗試用當前可用的行動空間和策略指令解決訓練集中的問題,然后通過選擇錯誤案例和行動學習操作來識別行動失敗,并迭代更新行動集,直到成功解決所有實例中的行動錯誤或超過最大優化步驟。

(在學習階段,代理的動作使用和動作優化被重復執行)

行動學習通過實現函數更新或編寫注釋來解決錯誤,函數更新精煉Python函數以糾正對任務的誤解和忽視,而編寫注釋則增強函數的描述,以指導代理更準確地使用行動。

LearnAct的實驗設計:挑戰與任務設置

1. 機器人規劃任務

機器人規劃任務中,研究者在四個具有挑戰性的任務上進行了實驗,包括Gripper、Blockworld、Barman和Tyreworld。這些任務涉及長期機器人規劃問題,例如根據客戶訂單使用可用成分和容器制作雞尾酒,使用兩個夾具在不同房間之間移動物體,或重新排列一堆積木以達到指定的目標配置。這些任務對代理的長期規劃能力提出了重大要求。

2. 家庭環境任務

研究者還在AlfWorld任務上測試了代理,這些任務模擬了家庭環境中的六種目標。例如,代理需要在房子里找到一個蘋果,加熱它,然后將它放在目標區域。這些任務要求代理系統地探索房子,因為在代理觀察到特定位置之前,環境的完整狀態保持未知。此外,代理執行完成任務所需的基本步驟的能力至關重要。

LearnAct與現有方法的比較

1. 行動學習與語言智能的結合

LearnAct框架的提出,是為了解決現有大語言模型(LLM)控制的語言代理在學習經驗方面的局限性

  • 傳統的強化學習范式通過試錯來學習代理策略,而LearnAct則通過生成新的動作類型作為API,利用LLM的廣泛先驗知識和代碼生成能力,來構建一個多樣化且具代表性的動作空間。

  • 與此同時,LearnAct采用迭代學習策略,通過反饋循環不斷完善動作。這種方法不僅創造了復雜且用戶友好的動作類型,而且與先前的方法如Reflexion相比,實現了更有效和高效的學習。

    (圖為不同最大學習迭代步數的性能)

2. LearnAct在不同任務中的表現

在實驗中,LearnAct在機器人規劃和AlfWorld任務中的表現明顯優于其他基線模型。這表明,通過在動作空間內學習,LearnAct能夠顯著提高代理的性能。與直接在開環中生成代碼的CodeAsPolicy方法和缺乏迭代動作學習的Voyager方法相比,LearnAct的動作學習對于提高動作質量至關重要。

學習過程分析:行動的可靠性與實用性

1. 行動學習前后的變化

通過對比學習前后動作的使用頻率和準確性,可以看出學習后的動作在可靠性和實用性上有了顯著提升。這是因為LearnAct的學習方法專注于糾正使用過程中遇到的錯誤。此外,動作的使用率在學習后也有所提高,這可能是因為代理在認識到這些動作的有效性后更傾向于使用它們。

2. 行動學習對性能的影響

LearnAct的學習過程通過動作的可靠性和實用性提高了代理的性能。在學習迭代的過程中,代理首先嘗試用當前可用的動作空間和策略指令解決訓練集中的問題,然后通過選擇錯誤案例和動作學習來修正錯誤,直到成功解決所有實例或達到最大優化步驟。學習算法的各個組成部分,包括更新函數和編寫注釋,以及學習過程中的采樣,都對提高性能起到了關鍵作用。

LearnAct的學習算法:功能更新與注釋編寫

1. 學習算法的關鍵組成部分

LearnAct的學習算法是一種新穎的學習范式,旨在通過擴展和細化動作空間來提升LLM代理的性能。這種方法的核心在于動態生成新的動作類型,這些動作類型以Python函數的形式出現,利用LLM的廣泛先驗知識和代碼生成能力來設計一個多樣化且具有代表性的動作空間。

通過這種方式,LearnAct不僅能夠解決固定動作空間帶來的限制,比如常識知識引導的規劃與動作之間的不匹配,還能夠跨不同任務轉移經驗。

在LearnAct的學習算法中,關鍵的組成部分包括:

  • 動作創建:通過生成新的動作函數,LearnAct能夠讓LLM與環境更加無縫地交互。這些動作函數能夠調用多個基礎或已定義的動作來完成子任務,從而實現更復雜的邏輯表達。

  • 策略指令生成:生成新動作函數后,需要更新代理的策略指令,以包含每個函數的描述和使用示例,從而指導LLM在適當的場景中使用新動作。

  • 基于錯誤反饋的動作學習:在創建初始動作集后,可能存在錯誤或對任務的誤解。LearnAct通過試錯的訓練階段,讓語言模型通過反饋循環不斷地完善動作,包括修正函數或編寫注釋。

2. 學習算法的實際應用與效果

LearnAct的學習算法在實際應用中展現了顯著的效果。在一系列的實驗中,LearnAct通過迭代細化的方法,不僅創建了復雜且用戶友好的動作類型,而且與先前的最先進方法相比,實現了更有效和高效的學習。例如上文中所述的制作雞尾酒的任務。

在機器人規劃和AlfWorld任務中,LearnAct的表現顯著優于其他基線模型,無論是使用GPT-3.5 Turbo還是GPT-4作為后端。這些結果證明了LearnAct在動作空間學習方面的重要性,以及其在開發更智能和能力更強的LLM代理方面的潛力。

(圖為學習前后所學動作的使用頻率和準確性)

結論:LearnAct的貢獻與未來展望

LearnAct通過其創新的學習算法,為大語言模型代理提供了一種新的能力:通過直接與環境互動來學習和完善動作。這種開放式的動作學習方法與人類獲取和增強技能的方式密切相關。實驗結果表明,LearnAct在機器人規劃和AlfWorld環境中的成功應用,凸顯了動作學習在發展更智能和能力更強的LLM代理方面的巨大潛力。

未來,我們期望LearnAct能夠進一步提升其學習算法,以更好地適應各種復雜的任務和環境。隨著LLM技術的不斷進步,LearnAct有望在多個領域中發揮更大的作用,從而推動智能代理的發展和應用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/719597.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719597.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719597.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

動態規劃(四)背包dp

01背包 完全背包 多重背包 二維費用背包 分組背包 混合背包

【算法分析與設計】組合

📝個人主頁:五敷有你 🔥系列專欄:算法分析與設計 ??穩中求進,曬太陽 題目 給定兩個整數 n 和 k,返回范圍 [1, n] 中所有可能的 k 個數的組合。 你可以按 任何順序 返回答案。 示例 示例 1&…

25考研習題記錄

3月 湯家鳳《1800》 基礎篇 日期高等數學線性代數概率論3.1 P92-93 P212-214 3.4 P10-15 P10-19 極限題62題 P73-74 P170-172 行列式17題 考研競賽凱哥每日一題 張宇高數30講頁數3.4P74

【計算機學習】-- 電腦的組裝和外設

系列文章目錄 文章目錄 系列文章目錄前言一、電腦的組裝1.CPU2.主板3.顯卡4.硬盤5.內存6.散熱器7.電源8.機箱 二、電腦外設選用1.顯示器2.鼠標3.鍵盤4.音響 總結 前言 一、電腦的組裝 1.CPU 返回目錄 認識CPU CPU,即中央處理器,負責電腦資源的調度安…

計算機網絡-網絡安全(一)

1.網絡安全威脅和漏洞類型: 竊聽 假冒 重放 流量分析 破環完整 病毒 木馬 誹謗 非授權訪問 拒絕服務 漏洞:物理、軟件、不兼容、其他等。 2.網絡安全信息數據五大特征: 完整性&…

【.NET Core】深入理解IO - 讀取器和編寫器

【.NET Core】深入理解IO - 讀取器和編寫器 文章目錄 【.NET Core】深入理解IO - 讀取器和編寫器一、概述二、BinaryReader和BinaryWriter2.1 BinartReader類2.2 BinaryWriter類 三、StreamReader和StreamWriter3.1 StreamReader類3.1 StreamWriter類StreamWriter類構造函數Str…

Leetcode 3072. Distribute Elements Into Two Arrays II

Leetcode 3072. Distribute Elements Into Two Arrays II 1. 解題思路2. 代碼實現 題目鏈接:3072. Distribute Elements Into Two Arrays II 1. 解題思路 這一題不太明白為啥被劃分為了hard的題目,我們只需要按照題意構造一下arr1和arr2即可&#xff…

優化自動窗簾系統

要優化自動窗簾系統的代碼,我們可以考慮以下幾個方面: (1)模塊化設計:將不同的功能(如讀取光強度、控制窗簾等)分解成獨立的函數,以提高代碼的可讀性和可維護性。 (2)錯誤處理:增加錯誤處理機制…

【Vue】探究 Vue 2 與 Vue 3 生命周期:變化與延續

💗💗💗歡迎來到我的博客,你將找到有關如何使用技術解決問題的文章,也會找到某個技術的學習路線。無論你是何種職業,我都希望我的博客對你有所幫助。最后不要忘記訂閱我的博客以獲取最新文章,也歡…

paper-ai :搜索真實文獻并生成引用真實文獻的AI論文

paper-ai :搜索真實文獻并生成引用真實文獻的AI論文。 項目簡介 使用真實文獻最快速完成論文的方法 利用人工智能撰寫論文 人工智能書寫功能:點擊 "AI 寫作 "進行正常對話互動。人工智能將根據您的輸入提供寫作建議或回答問題。 尋找文獻功能…

C/C++工程師面試題(STL篇)

STL 中有哪些常見的容器 STL 中容器分為順序容器、關聯式容器、容器適配器三種類型,三種類型容器特性分別如下: 1. 順序容器 容器并非排序的,元素的插入位置同元素的值無關,包含 vector、deque、list vector:動態數組…

DocxToDoc.java

DocxToDoc.java word高版本docx轉化word2003版本 package word;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagrap…

【Ubuntu 20.04 / 22.04 LTS】最新 esp-matter SDK 軟件編譯環境搭建步驟

倉庫鏈接:esp-matter SDK官方軟件說明:ESP Matter Programming Guide官方參考文檔:使用 Matter-SDK 快速搭建 Matter 環境 (Linux) 環境要求 Ubuntu 20.04 或 Ubuntu22.04網絡環境支持訪問 Gihub 在安裝 esp-matter SDK 軟件編譯環境之前&a…

三八女神節特別推薦:完美禮物俘獲她的芳心

三八女神節馬上就要到了,這是一個贊頌女性獨立、堅韌與美麗的時刻。在這個充滿溫馨與敬意的日子里,很多人想要為那些綻放光彩的女性們獻上一份特別的禮物。這不僅是一份物質上的饋贈,更是一份心靈上的交流,一次情感上的共鳴。 真…

面試經典150題——簡化路徑

"A goal is a dream with a deadline." - Napoleon Hill 1. 題目描述 2. 題目分析與解析 2.1 思路一 這個題目開始看起來并不太容易知道該怎么寫代碼,所以不知道什么思路那就先模擬人的行為,比如對于如下測試用例: 首先 /代表根…

手把手教會你使用Markdown【從入門到精通一篇就夠了】

手把手教會你使用Markdown【從入門到精通一篇就夠了】 前言一、Markdown是什么二、Markdown優點三、Markdown的基本語法3.1 標題3.2 字體3.3 換行3.4 引用3.5 鏈接3.6 圖片3.7 列表3.8 分割線3.9 刪除線3.10 下劃線3.11 代碼塊3.12 表格3.13 腳注3.14 特殊符號 四、Markdown的高…

UCSF DOCK 分子對接詳細案例(04)-基于RDKit描述符的分子從頭設計DOCK_D3N

歡迎瀏覽我的CSND博客! Blockbuater_drug …點擊進入 文章目錄 前言一、 軟件及操作環境二、研究目的三、結構文件準備四、 DOCK/RDKit中 de novo design4.1 de novo design - refine_D3N4.2 對輸出重新評分 總結參考資料 前言 本文是UCSF DOCK的使用案例分享&…

lv20 QT事件5

1 事件模型 2 事件處理 virtual void keyPressEvent(QKeyEvent *event) virtual void keyReleaseEvent(QKeyEvent *event) virtual void mouseDoubleClickEvent(QMouseEvent *event) virtual void mouseMoveEvent(QMouseEvent *event) virtual void mousePressEvent(QMou…

【短時交通流量預測】基于Elman神經網絡

課題名稱:基于Elman神經網絡的短時交通流量預測 版本時間:2023-04-27 代碼獲取方式:QQ:491052175 或者 私聊博主獲取 模型簡介: 城市交通路網中交通路段上某時刻的交通流量與本路段前幾個時段的交通流量有關&#…

自己拍攝的視頻能做成二維碼嗎?快速在線生碼該怎么操作?

自己拍攝的視頻能做成二維碼嗎?現在掃描二維碼用來播放視頻的使用場景越來越多,這種方式的流行在于能夠通過更低的成本獲取更好的效果,有效的提升用戶獲取視頻內容的體驗,通過消耗流量就可以播放視頻。 那么視頻制作二維碼一般會…