当前位置: 首页 > news >正文

【论文精读】VOYAGER: An Open-Ended Embodied Agent with Large Language Models

Understanding LSTM Networks

  • 前言
  • Abstract
  • 1 Introduction
  • 2 Method
    • 2.1 Automatic Curriculum
    • 2.2 Skill Library
    • 2.3 Iterative Prompting Mechanism
  • 3 Experiments
    • 3.1 Experimental Setup
    • 3.2 Baselines
    • 3.3 Evaluation Results
    • 3.4 Ablation Studies
    • 3.5 Multimodal Feedback from Humans
  • 4 Limitations and Future Work
  • 5 Related work
  • 6 Conclusion
  • 阅读总结

前言

一篇AI-Agent的文章,论文一出即火遍全网,用大语言模型玩Minecraft,在这之前想都不敢想。文章中所有的工作基本上都是基于prompt实现的,这也进一步说明了GPT-4丰富的知识储备和强大的理解能力。作者从人学习的角度出发,让LLM也遵循人学习的范式,一步步在未知的世界中进行探索,这样的工作思路对探索当前大语言模型的能力来说可谓至关重要。


Paperhttps://arxiv.org/pdf/2305.16291.pdf
Codehttps://github.com/MineDojo/Voyager
FromarXiv

Abstract

本文提出VOYAGER,这是在Minecraft中第一个由LLM驱动的终身学习智能体,用于持续探索这个世界。它有三个核心组件:

  1. 最大化探索的自动课程。
  2. 不断增长的技能库(可执行代码),用于存储和检索。
  3. 新的迭代提示机制,结合环境反馈、执行错误和自我验证来改进程序。

VOYAGER通过黑盒查询与GPT-4交互,无需参数微调。在游戏中,VOYAGER展现出强大的情景终身学习能力,表现出非凡的熟练度,远比其它SOTA方法高效。
image.png

1 Introduction

构建具有通用能力的具身智能体,在开放世界不断探索、规划和开发新技能,是AI社区面临的一项巨大挑战。传统的方法采用强化学习和模仿学习,这些方法在系统探索、可解释性和泛化性上都具有挑战性。最近基于LLM的智能体利用预训练封装的世界知识来生成一致的动作计划和可执行的策略,可以应用到游戏或者机器人上,但是这些智能体并不是终身学习者,无法在较长时间跨度内逐步获取、更新、累积和转移知识。
Minecraft和许多AI研究的游戏不同,它没有强加的特定目标和故事情节,是一个具有无限可能的游乐场。玩家需要在广阔无垠的3D场景通过收集资源来解锁技能树,从学习最基本的砍树、做饭技能,到学习复杂的战斗、制作钻石等技能。作者认为高效的终身学习智能体应该有和人类类似的能力:

  1. 根据当前能力和环境,提出合适的任务。
  2. 基于环境改进技能,牢记核心技能以便复用。
  3. 不断探索世界,通过自我驱动方式寻找新技能。

基于上述目标,本文提出VOYAGER,它是第一个LLM驱动的具身终身学习智能体,在Minecraft中不断探索学习,做出新的发现,而无需人工干预。VOYAGER通过三个关键模块实现:

  1. 自动课程:最大化探索;
  2. 技能库:存储并检索复杂行为。
  3. 新的迭代提示机制。生成用于具体控制的代码。

image.png
作者采用具体的代码而不是低级的运动指令,是因为程序可以自然表示时间扩展和组合动作,这些都是Minecraft中长期任务的关键。VOYAGER通过prompting和上下文学习与黑盒GPT-4交互,无需微调模型的参数。
更具体来说,VOYAGER考虑到探索进度和智能体状态,试图解决自动课程提出的越来越困难的任务。课程是通过GPT-4根据“发现尽可能多的不同事物”的总体目标而生成的,这可以看做是一种新的上文搜索形式。VOYAGER通过存储帮助任务成功的行动程序来逐步构建技能树,每个程序都采用描述嵌入作为索引,以帮助之后的检索。复杂的任务可以解耦成多个简单的程序,这可以迅速增强VOYAGER的能力,并减轻灾难性遗忘问题。
然而,LLMs很难在one-shot下给出正确一致的行为代码,因此本文提出了迭代提示机制:

  1. 执行生成的程序,获取在Minecraft的观察结果。
  2. 将反馈结果纳入GPT-4的prompt中,以进行下一轮优化。
  3. 重复执行,直到自验证模块确认任务完成。

VOYAGER展现出强大的上下文终身学习的能力。它可以构建一个不断增长的动作程序技能库,这些程序可复用、可解释并可以推广到新任务。远远优于其它基于LLM的代理技术,作者进一步证明,VOYAGER能够在新的Minecraft世界中利用学习到的技能库解决新的任务,具有很好的泛化性能。

2 Method

VOYAGER由三个新颖的组件构成:

  1. 一个自动化课程,指引开放式搜索的目标。
  2. 技能库,存储日益增多的复杂行为。
  3. 迭代提示机制,生成具身控制的代码。

2.1 Automatic Curriculum

具身智能体在开放环境中会遇到各种不同复杂程度的目标,而自动化课程可以确保有挑战性但可管理的学习过程,培养智能体智能体在好奇心驱动下学习并探索,鼓励制定通用且灵活的问题解决策略。本文的自动化课程基于GPT-4庞大的知识,促使其生成源源不断的任务或挑战。课程以自下而上的方式展开,会根据智能体当前的探索和状态自适应响应。随着VOYAGER朝着更复杂的目标前进,它自然会学会各种技能。
image.png
输入给GPT-4的prompt有如下组件:

  1. 鼓励多样化的行为并加以约束。
  2. 智能体当前的状态。
  3. 之前完成和失败的任务。
  4. 附加文本。利用GPT-3.5提出问题,并用wiki知识库自我回复,为GPT-4提供额外的上下文。

2.2 Skill Library

随着自动化课程源源不断提出复杂的问题,有必要一个技能库来存储已经学习到的技能。受到程序通用性、可解释性以及普遍性的启发,作者提出用可执行代码来表示每项技能,这些代码可以支撑扩展的动作,以完成自动课程提出的特定任务。
输入的prompt有如下组件:

  1. 代码生成的指导。包括一些约束和提示。
  2. 控制原始APIs,并且能够从技能库中进行检索。
  3. 上一轮生成的代码,环境反馈,执行错误和评判可以帮助GPT-4进行自我提升。
  4. 智能体当前的状态。
  5. 在代码生成之前进行CoT的推理。

作者通过新颖的迭代提示机制完善程序,并将其作为新技能合并到技能库中(描述嵌入作为索引),对于技能检索,通过任务计划和环境反馈来查询技能库。通过不断完善和扩展技能库,VOYAGER可以不断突破在开放世界的能力界限。

2.3 Iterative Prompting Mechanism

作者引入了迭代提示机制,通过三种反馈进行自我提升:

  1. 环境反馈。
  2. 执行错误。
  3. 自我验证任务是否完成。给定当前的状态和任务,通过GPT-4推理判断是否完成。

image.png
image.png
在生成代码的每一轮,作者都执行生成程序,从代码解释器中获取环境反馈和执行错误,这些信息会纳入到GPT-4的prompt中,用于下一轮代码优化。当自我验证程序验证任务完成后,新完成的任务作为新技能放入技能库中,并向自动课程寻求新的目标。如果智能体陷入代码迭代超过四轮,将会更换任务。

3 Experiments

3.1 Experimental Setup

略。

3.2 Baselines

ReAct、Reflexion and AutoGPT。这些方法都是设计用于非具身的NLP任务,因此需要进行一些兼容操作。实验过程都是通过调用Mineflayer API来控制智能体。本文的重点是突破GPT-4的极限,来实现终身具身学习,因此和3D感知以及运动传感无关。

3.3 Evaluation Results

作者系统评估了各个方法的探索性能、技能树掌握、地图探索以及对新世界中新任务的零样本泛化能力。
Significantly better exploration.
探索性能在第一张图中得以表现,VOYAGER的优势在于能够不断取得进步,在160迭代中发现了63个不同的物品,是其它方法的3.3倍,此外,AutoGPT在新物品发现上严重滞后,而ReAct和Reflexion则难以取得重大进展,主要原因是在开放世界中没有课程指导。
Consistent tech tree mastery.
Minecraft技能树测试了智能体制作和使用工具层次结构的能力。和baselines相比,VOYAGER在解锁wooden level上快了15.3倍,在解锁stone level上快了8.5倍,在解锁iron level上快了6.4倍,并且VOYAGER是唯一解锁diamond level的方法,这强调了自动课表的有效性。
Extensive map traversal.
VOYAGER的探索距离比baselines长2.3倍,并且基线的智能体往往局限于局部区域。
image.png
Efficient zero-shot generalization to unseen tasks.
为了评估零样本泛化,作者清除了智能体的inventory,重置为新实例化的世界,去做未见过的任务。VOYAGER可以一致地解决所有任务,而基线无法解决50轮迭代内的任务。有趣的是,终身学习的技能库不仅增强了VOYAGER的性能,还增强了AutoGPT的性能,说明技能库可以作为一种即插即用的工具来提高性能。

3.4 Ablation Studies

作者设计了六种消融实验,结果如下图所示:
image.png
有如下主要的发现:

  1. 自动课程对智能体的持续进步有关键作用。
  2. 缺少技能库的情况下,VOYAGER在后期没有上升空间。
  3. 自我验证在所有反馈类型中是最重要的部分。
  4. GPT-4在代码生成上要远优于GPT-3.5。

3.5 Multimodal Feedback from Humans

VOYAGER不支持视觉感知,但是在多模态感知下,VOYAGER的能力理论上会得到增强,以实现更复杂的任务。作者证明给定人类反馈,VOYAGER在Minecraft中可以构建更复杂的3D结构。如下图所示:
image.png
有两种整合人类反馈的方法:

  1. 将人类作为critic,代替自我验证模块,可以帮助VOYAGER纠正涉及3D等结构感知的错误。
  2. 人类作为课程,代替自动课程模块,人类可以将复杂的任务分解为多个小步骤,指导VOYAGER逐步解决。

4 Limitations and Future Work

  1. 开销大。GPT-4 API需要巨大的开销,是3.5的15倍,但是代码生成部分没有GPT-4不行。
  2. 误差大。尽管有迭代提示机制,仍然会出现智能体无法生成正确技能的情况。
  3. 幻觉。自动课程偶尔会提出不可能完成的任务(即游戏中不存在的任务)。在代码生成中也会出现幻觉。

不过对于上述问题,作者相信随着GPT API的改进,在未来是可以克服这些限制的。

5 Related work

略。

6 Conclusion

本文提出了VOYAGER,是第一个基于LLM的具身终身学习智能体,可以让GPT-4不断探索世界,学习复杂的技能,无需人类干预的情况下作出新的发现。VOYAGER展现出超前的探索新物品的能力,解锁技能树,探索地形,并将学习到的技能库用于未见过的任务。整个过程只需要调佣API,无需微调模型。

阅读总结

看的第一篇AI-Agent的工作,说实话有点震惊到我,虽然这个已经是23年5月份的工作了。现在各种各样场景的AI-Agent已经层出不穷,而这篇基于Minecraft的工作让我看到了AI-Agent的无限可能,虽然Minecraft是游戏,但是其对现实世界已经有了非常完整的模仿,在这个世界中,VOYAGER真的像人类玩家一样,进行思考、探索和学习,当然受限于GPT的能力和上下文的长度,以及视觉感知的传感器,它并不能真正实现具身终身学习。相信在之后,随着多模态知识的注入,以及GPT性能的增强,AI-Agent能够表现出更强的能力。

相关文章:

【论文精读】VOYAGER: An Open-Ended Embodied Agent with Large Language Models

Understanding LSTM Networks 前言Abstract1 Introduction2 Method2.1 Automatic Curriculum2.2 Skill Library2.3 Iterative Prompting Mechanism 3 Experiments3.1 Experimental Setup3.2 Baselines3.3 Evaluation Results3.4 Ablation Studies3.5 Multimodal Feedback from …...

Linux安装DMETL5与卸载

Linux安装DMETL5与卸载 环境介绍1 DM8数据库配置1.1 DM8数据库安装1.2 初始化达梦数据库1.3 创建DMETL使用的数据库用户 2 配置DMETL52.1 解压DMETL5安装包2.2 安装调度器2.3 安装执行器2.4 安装管理器2.5 启动dmetl5 调度器2.6 启动dmetl5 执行器2.7 启动dmetl5 管理器2.8 查看…...

Office Word 中的宏

Office Word 中的宏 简介宏的使用将自定义创建的宏放入文档标题栏中的“自定义快速访问工具栏”插入指定格式、内容的字符选中word中的指定文字查找word中的指定文字A,并替换为指定文字B插入文本框并向内插入文字word 表格中的宏操作遍历表格中的所有内容批量设置表…...

qt中d指针

在Qt中,d指针是一种常见的设计模式,也称为"PIMPL"(Private Implementation)或者"Opaque Pointer"。它主要用于隐藏类的实现细节,提供了一种封装和隔离的方式,以便在不影响公共接口的情…...

交易者最看重什么?anzo Capital这点最重要!

交易者最看重什么?有人会说技术,有人会说交易策略,有人会说盈利,但anzo Capital认为Vishal 最看重的应该是眼睛吧! 29岁的Vishal Agraval在9年前因某种原因失去了视力,然而,他的失明并未能阻…...

window 搭建 MQTT 服务器并使用

1. 下载 安装 mosquitto 下载地址: http://mosquitto.org/files/binary/ win 使用 win32 看自己电脑下载相应版本: 一直安装: 记住安装路径:C:\Program Files\mosquitto 修改配置文件: allow_anonymous false 设置…...

Prometheus+Ansible+Consul实现服务发现

一、简介 1、Consul简介 Consul 是基于 GO 语言开发的开源工具,主要面向分布式,服务化的系统提供服务注册、服务发现和配置管理的功能。Consul 提供服务注册/发现、健康检查、Key/Value存储、多数据中心和分布式一致性保证等功能。 在没有使用 consul 服…...

【原创】java+swing+mysql校园活动管理系统设计与实现

前言: 本文介绍了一个校园活动管理系统的设计与实现。该系统基于JavaSwing技术,采用C/S架构,使用Java语言开发,以MySQL作为数据库。系统实现了活动发布、活动报名、活动列表查看等功能,方便了校园活动的发布和管理&am…...

vscode中vue项目引入的组件的颜色没区分解决办法

vscode中vue项目引入的组件的颜色没区分解决办法 图中引入组件和其他标签颜色一样没有区分,让开发者不易区分,很蓝瘦 这个就很直观,解决办法就是你当前的vscode版本不对,你得去找找其他版本,我的解决办法就是去官网历…...

uniapp: 实现pdf预览功能

目录 第一章 实现效果 第二章 了解并解决需求 2.1 了解需求 2.2 解决需求 2.2.1 方法一 2.2.2 方法二 第三章 资源下载 第一章 实现效果 第二章 了解并解决需求 2.1 了解需求 前端需要利用后端传的pdf临时路径实现H5端以及app端的pdf预览首先我们别像pc端一样&#…...

【Pytorch笔记】7.torch.nn (Convolution Layers)

我们常用torch.nn来封装网络,torch.nn为我们封装好了很多神经网络中不同的层,如卷积层、池化层、归一化层等。我们会把这些层像是串成一个牛肉串一样串起来,形成网络。 先从最简单的,都有哪些层开始学起。 Convolution Layers -…...

MySQL内部组件与日志详解

MySQL的内部组件结构 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)&am…...

【LeetCode】94. 二叉树的中序遍历

94. 二叉树的中序遍历 难度:简单 题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示…...

IP-guard WebServer 命令执行漏洞复现

简介 IP-guard是一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。在旧版本申请审批的文件预览功能用到了一个开源的插件 flexpaper,使用的这个插件版本存在远程命令执行漏洞,攻击者可利用该漏…...

TensorFlow案例学习:图片风格迁移

准备 官方教程: 任意风格的快速风格转换 模型下载地址: https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2 学习 加载要处理的内容图片和风格图片 # 用于将图像裁剪为方形def crop_center(image):# 图片原始形状shape image…...

解密网络世界的秘密——Wireshark Mac/Win中文版网络抓包工具

在当今数字化时代,网络已经成为了人们生活和工作中不可或缺的一部分。然而,对于网络安全和性能的监控和分析却是一项重要而又复杂的任务。为了帮助用户更好地理解和解决网络中的问题,Wireshark作为一款强大的网络抓包工具,应运而生…...

自学ansible笔记

一、认识ansible Ansible是一款开源自动化运维工具。它有如下特点: 1、不需要安装客户端,通过sshd去通信,比较轻量化; 2、基于模块工作,模块可以由任何语言开发,比较自由和开放; 3、不仅支持命…...

笔记53:torch.nn.rnn() 函数详解

参数解释: (1)input_size():即输入信息 Xt 的每个序列的独热编码向量的长度,即 len(vocab) (2)hidden_size():即隐变量 h 的维度(维度是多少,就代表用几个数…...

【Spring】使用三方包进行数据源对象(数据库)管理

在这里使用alibaba的druid来连接数据库&#xff0c;然后再Spring Config下配置数据库 目录 第一步&#xff1a;在pom.xml中导入坐标第二步&#xff1a;在bean中配置连接注 第一步&#xff1a;在pom.xml中导入坐标 在dependencies下写&#xff1a; <dependency><grou…...

EfficientNet:通过模型效率彻底改变深度学习

一、介绍 EfficientNet 是深度学习领域的里程碑&#xff0c;代表了神经网络架构方法的范式转变。EfficientNet 由 Google Research 的 Mingxing Tan 和 Quoc V. Le 开发&#xff0c;在不影响性能的情况下满足了对计算高效模型不断增长的需求。本文深入探讨了 EfficientNet 背后…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...