北京大学发布,将试错引入大模型代理学习!

引言:探索语言智能的新边界

在人工智能的发展历程中,语言智能始终是一个核心的研究领域。随着大语言模型(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.rhkb.cn/news/268960.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UCSF DOCK 分子对接详细案例(01)- rigid, fixed anchor, flexible dock

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、操作环境二、研究背景三、受体-配体结构文件准备3.1准备文件夹DOCK_workdir, 下载晶体结构3.1.1 来自湿实验的受体配体共晶结构:3.1.2 来自深度学习和语言模型推理预测的蛋白结构&a…

了解游戏中的数据同步

目录 数据同步 通过比较来看状态同步和帧同步 状态同步 帧同步 帧同步实现需要的条件 两者相比较 数据同步 在联机游戏中,我的操作和数据要同步给同一局游戏中其他所有玩家,其他玩家的操作和数据也会同步给我。这叫做数据同步,目前数据…

幻兽帕鲁(1.5.0)可视化管理工具(0.5.7 docker版)安装教程

文章目录 局域网帕鲁服务器部署教程帕鲁服务可视化工具安装配置服务器地址(可跳过)使用工具管理面板 1.5.0服务端RCON错误1.5.0服务端无法启动RCON端口 解决方法第一步:PalWorldSettings.ini配置第二步:修改PalServer.sh配置 局域…

Unity(第二十一部)动画的基础了解(感觉不了解其实也行)

1、动画组件老的是Animations 动画视频Play Automatically 是否自动播放Animate Physics 驱动方式,勾选后是物理驱动Culling Type 剔除方式 默认总是动画化就会一直执行下去,第二个是基于渲染播放(离开镜头后不执行), …

数仓模型设计方法论

在当今大数据时代,数据已经成为企业最重要的资产之一。而数据仓库作为企业数据管理和分析的核心基础设施,其设计方法论对于企业的数据治理和决策分析至关重要。本文将探索数仓模型设计的方法论,帮助读者更好地理解和应用数仓模型设计。 一、…

day06_菜单管理(查询菜单,添加菜单,添加子菜单,修改菜单,删除菜单,角色分配菜单,查询菜单,保存菜单,动态菜单)

文章目录 1 菜单管理1.1 表结构介绍1.2 查询菜单1.2.1 需求说明1.2.2 页面制作1.2.3 后端接口SysMenuSysMenuControllerSysMenuServiceMenuHelperSysMenuMapperSysMenuMapper.xml 1.2.4 前端对接sysMenu.jssysMenu.vue 1.3 添加菜单1.3.1 需求说明1.3.3 页面制作1.3.3 后端接口…

AI新工具(20240228) EMO - 阿里巴巴的表情驱动的音频到视频转换框架;DepthFlow;Globe Explorer等

EMO - 阿里巴巴的表情驱动的音频到视频转换框架 EMO(Emote Portrait Alive)是一个先进的表情驱动的音频到视频转换框架,可以通过音频(比如说话或唱歌的声音)和一张单独的参考图片,生成带有丰富面部表情和头…

【前端面试题5】利用 border 属性画一个三角形

举例1:利用 border 属性画一个三角形(小技巧) 完整代码如下: div{width: 0;height: 0;border: 50px solid transparent;border-top-color: red;border-bottom: none; }步骤如下: (1)当我们设…

es集群的详细搭建过程

目录 一、VM配置二、集群搭建三、集群配置 一、VM配置 VM的安装 VMware Workstation 15 Pro的安装与破解 VM新建虚拟机 VM新建虚拟机 二、集群搭建 打开新建好的服务器,node1,使用xshell远程连接 下载es:https://www.elastic.co/cn/down…

java中的set

Set Set集合概述和特点 不可以存储重复元素 没有索引,不能使用普通for循环遍历 哈希值 哈希值简介 是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值 如何获取哈希值 Object类中的public int hashCode():返回对象的哈希码值。 哈希值的特点 同一个…

xss.haozi.me:0x0B

<svg><script>(1)</script>

【王道操作系统】ch1计算机系统概述-06虚拟机

文章目录 【王道操作系统】ch1计算机系统概述-06虚拟机01传统计算机02虚拟机的基本概念&#xff08;1&#xff09;第一类虚拟机管理程序&#xff08;2&#xff09; 第二类虚拟机管理程序&#xff08;3&#xff09; 两类虚拟机管理程序的对比 【王道操作系统】ch1计算机系统概述…

面试经典150题 -- 回溯 (总结)

总的链接 : 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 17 . 电话号码的字母组合 1 . 先创建一个下标 与 对应字符串映射的数组&#xff0c;这里使用hash表进行映射也是可以的 &#xff1b; 2 . 对于回溯 &#xff0c;…

live555学习 - 环境准备

环境&#xff1a;Ubuntu 16.04.7 ffmpeg-6.1 1 代码下载 最新版本&#xff1a; http://www.live555.com/liveMedia/public/ 历史版本下载 https://download.videolan.org/pub/contrib/live555/ 选择版本live.2023.01.19.tar.gz ps&#xff1a;没有选择新版本是新版本在…

用堆排序解决topk问题

topk问题 从一群数中取出前k高或者低的数。&#xff08;就好比要做一个像csdn热度榜一样的东西&#xff09; 堆的基础知识&#xff1a;【python】堆排序-CSDN博客 堆排序解决思路 1.先用列表的k个元素构建一个小根堆&#xff0c;小根堆最上面的元素就是最小的元素 2.依次拿…

(学习日记)2024.03.01:UCOSIII第三节 + 函数指针 (持续更新文件结构)

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

算法:动态规划

文章目录 引子&#xff1a;凑零钱一、斐波那契数列模型引例&#xff1a;第 N 个泰波那契数动态规划步骤空间优化 例题1 三步问题例题2&#xff1a;使用最小花费爬楼梯★例题3&#xff1a;解码方法 ★ 二、路径问题例题4&#xff1a;不同路径例题5&#xff1a;下降路径最小和例题…

[Android View] 可绘制形状 (Shape Xml)

一切以官方文档为主 官方文档https://developer.android.com/guide/topics/resources/drawable-resource?hlzh-cn#Shape 什么是可绘制形状 可以理解为用xml文件来描述一个简单的Drawable图形&#xff0c;比如说以下这段xml就可以用来描述一个白色的圆形&#xff1a; <?…

机器视觉——硬件选型

1、相机选型 在选择机器视觉相机时&#xff0c;通常需要考虑以下几个方面&#xff1a; 1、分辨率&#xff1a;相机的分辨率决定了其拍摄图像的清晰度和细节程度。根据具体的应用需求&#xff0c;可以选择适当的分辨率范围。 2、帧率&#xff1a;帧率表示相机每秒钟能够拍摄的…

[linux][xdp] xdp 入门

xdp 全称 eXpress Data Path&#xff0c;是 linux ebpf 中的一个功能。ebpf 在内核中预留了一些插入点&#xff0c;用户可以在这些插入点插入自己的处理逻辑&#xff0c;当数据路过插入点时可以做一些预期的处理&#xff0c;具体实现方式如下&#xff1a; ① 用户编写数据处理…