【论文精读】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能够表现出更强的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/149440.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3实现 SKU 规格

效果图 1 HTML 基本结构 1.1 遍历 SKU 规格数据 <template><div class"productConten"><div v-for"(productItem, productIndex) in specifications" :key"productItem.name"><div class"productTitle">{…

OpenCV的应用——道路边缘检测

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉库&#xff0c;它提供了丰富的图像处理和计算机视觉算法&#xff0c;使得开发者可以便捷地进行图像处理、对象识别、图像分割等任务。道路边缘检测是计算机视觉中的重要应用之一&…

Hive入门--学习笔记

1&#xff0c;Apache Hive概述 定义&#xff1a; Hive是由Facebook开源用于解决海量结构化日志的数据统计&#xff0c;它是基于大数据生态圈Hadoop的一个数据仓库工具。 作用&#xff1a; Hive可以用于将结构化的数据文件【映射】为一张表&#xff0c;并提供类SQL查询功能。 H…

前端实现RSA非对称加密及生成RSA公私密钥

前端实现RSA非对称加密 RSA简介安装jsencryptRSA加密RSA解密如何生成公私秘钥&#xff08;windows&#xff09; RSA简介 RSA用于保密性时&#xff0c;就是公钥加密&#xff0c;私钥解密。 因为公钥是可以公开了&#xff0c; 那么任何人都可以使用公钥对信息进行加密&#xff0…

嵌入式Linux开发,NFS文件系统挂载

在嵌入式linix的开发中&#xff0c;经常会需要在pc端和板端互相传输文件&#xff0c;优先可选择ftp传输&#xff0c;但是有些嵌入式板端不支持&#xff0c;只能使用nfs这种方式&#xff0c;即pc端作为服务端&#xff0c;板端作为客户端&#xff0c;将pc端的某个文件夹挂载到板端…

时间序列预测各类算法探究上篇

前言&#xff1a; 最近项目需要对公司未来业绩进行预测&#xff0c;以便优化决策&#xff0c;so 研究一下时序算法。纯个人理解&#xff0c;记录以便备用&#xff08;只探究一下原理&#xff0c;所有算法都使用基本状态&#xff0c;并未进行特征及参数优化&#xff09;。 环境…

Windows本地配置带GPU的Pytorch环境

首先需要安装并配置好Anaconda环境&#xff0c;安装教程教程随便找一个就好。 第一步&#xff1a;安装好之后创建conda虚拟环境&#xff1a; conda create -n your_env_name pythonx.x 第二步&#xff1a;安装需要版本的pytorch&#xff1a;pytorch下载链接 cu100/torch-1.2…

很多工程师,最后都是被生活裹挟,没法一直在技术路径走到极致

最近比较少更了&#xff0c;但内容一直在写&#xff0c;只是从长文变成了短文&#xff0c;直接发朋友圈了。 如果喜欢我写的内容&#xff0c;请移步到朋友圈。 我是一个不喜欢讲哲理的人&#xff0c;感觉哲学都是理论&#xff0c;都是鸡血&#xff0c;很难落地&#xff0c;我…

Android开发中遇到的问题请求帮助分析解决

本篇文章主要寻求广大的网友&#xff0c;对我遇到的问题进行分析解答&#xff0c;希望能给出更好的&#xff0c;更优化的方法。话不多说先上遇到的问题的流程图的分析&#xff1a; 以上就是流程分析图&#xff0c;希望能够尽快解决&#xff0c;希望得到大家的支持。再次本人非常…

(Matalb回归预测)GWO-BP灰狼算法优化BP神经网络的多维回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码&#xff1a; 四、完整程序数据使用说明下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Mata…

比特币上的人工智能

以感知机为例 人工智能&#xff0c;尤其是机器学习形式的人工智能&#xff0c;最近取得了巨大的进步&#xff0c;应用范围从人脸识别到自动驾驶汽车。我们建议将 AI 与比特币区块链结合起来&#xff0c;以获得许多其他方式无法实现的显着优势&#xff1a; 公开透明&#xff1a…

腾讯云新用户优惠券如何领取?详细教程来了!

腾讯云一直致力于为广大用户提供优质、高效的云计算服务。为了吸引新用户&#xff0c;腾讯云推出了新用户专属优惠券&#xff0c;本文将详细介绍如何领取腾讯云新用户优惠券&#xff0c;助力大家轻松上云&#xff01; 一、腾讯云新用户优惠券领取 领券入口&#xff1a;https:/…

《Linux从练气到飞升》No.28 Linux中的线程同步

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

网络超时检测-11.9

应用场景 在网络通信中&#xff0c;很多操作会使得进程阻塞&#xff1a; TCP套接字中的recv/acceptUDP套接字中的recvfrom超时检测的必要性 避免进程在没有数据时无限制地阻塞实现某些特定协议要求&#xff0c;比如某些设备规定&#xff0c;发送请求数据后&#xff0c;如果多长…

TCP连接保活机制

在TCP连接中有一个保活机制&#xff0c;叫做Keep-Alive&#xff0c;用语言描述就是如下&#xff1a; 在保活时间内&#xff0c;如果没有任何连接相关的活动&#xff0c;TCP 保活机制会开始作用&#xff0c;每隔一个时间间隔&#xff08;保活时间间隔&#xff09;&#xff0c;发…

王道数据结构课后代码题p19 第14题请设计一个尽可能高效的算法,计算并输出所有可能的三元组(a,b,c) 中的最小距离。(c语言代码实现)

本题其实就是找a到c的最小值 有讲解p19 第14题 c语言实现王道数据结构课后代码题_哔哩哔哩_bilibili 下方有图&#xff1a; 本题代码如下 int abs(int a)//计算绝对值 {if (a < 0)return -a;elsereturn a; } int min(int a, int b, int c)//a是否为三个数中的最小值 {if …

技巧篇:在Pycharm中配置集成Git

一、在Pycharm中配置集成Git 我们使用git需要先安装git工具&#xff0c;这里给出下载地址&#xff0c;下载后一路直接安装即可&#xff1a; https://git-for-windows.github.io/ 0. git中的一些常用词释义 Repository name&#xff1a; 仓库名称 Description(可选)&#xff1a;…

某建筑网页js逆向分析过程(有坑)

某建筑网页&#xff1a; 网站&#xff1a; import base64 # 解码 website base64.b64decode(aHR0cHM6Ly9qenNjLm1vaHVyZC5nb3YuY24vZGF0YS9jb21wYW55.encode(utf-8)) print(website)JSON.parse() ​ 当你有一个包含JSON字符串的变量时&#xff0c;你可以使用JSON.parse()将…

photoshop插件开发入门

photoshop 学习资料和sdk 下载地址https://developer.adobe.com/console/servicesandapis/ps 脚本编程文档 官方文档&#xff1a; https://extendscript.docsforadobe.dev/ 官方文档&#xff1a; https://helpx.adobe.com/hk_en/photoshop/using/scripting.html open(new F…

蓝桥杯 string

string简介 string是C标准库的重要组成部分&#xff0c;主要用于字符串处理。 使用string库需要在头文件中包括该库 #include< string> string与char[]不同&#xff0c;string实现了高度的封装&#xff0c;可以很方便地完 成各种字符串的操作&#xff0c;比如拼接、截取…