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

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

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

相关文章

Spring基础学习——web

Spring基础学习——web 一、Spring整合Web环境1.1 JavaWeb三大组件作用及其特点1.2 Spring整合Web环境的思路及实现1.3 Spring开发Web环境组件spring-web1.4 web层MVC框架思想与设计思路 一、Spring整合Web环境 1.1 JavaWeb三大组件作用及其特点 在Java语言当中,w…

一题带你写出图论算法模板!!!

这题是道基础的图论算法题目 注释很重要!!!!!!! 在做这道题之前,我们先了解一下基础的图论算法吧!!! 1.floyd: 这样可以求出所有点…

100G.的DDoS高防够用吗?

很多人以为100G的DDoS防御已经足够了,但殊不知DDoS攻击大小也是需要分行业类型的,比如游戏、金融、影视、电商甚至ZF或者行业龙头等等行业类型,都是大型DDoS攻击的重灾区,别说100G防御,就算300G防御服务器也不一定够用…

LOWORD, HIWORD, LOBYTE, HIBYTE的解释

文章目录 实验结论 实验 int 类型大小正常为4Byte 以小端序来看 0x12345678在内存中的存储为 0x78 0x56 0x34 0x120x78在低地址&#xff0c;0x12在高地址 程序输出 #include <stdio.h> #include <string.h> #include<windows.h>int main() {int a 0x12345…

开源供应链管理系统 多供应商批发管理系统方案及源码输出

开发框架&#xff1a;PHPMySQL 后端框架&#xff1a;ThinkPHP 订货端&#xff1a;PC小程序 客户订货端&#xff1a;小程序 多仓库OR多供应商&#xff1a;多供应商 是否进销存&#xff1a;自带进销存 整个方案含B端订货PC、小程序端、C端小程序端下单&#xff0c;源码&…

SUMO道路封闭车辆绕行仿真实验【TraCI】

本文将介绍如何在 SUMO 交通模拟中动态选择车辆绕行指定道路。 绕道是城市驾驶中的常见现象&#xff0c;造成原因有很多&#xff0c;包括建筑和交通事故等。 无论出于何种原因&#xff0c;并非所有车辆都会选择避开这些道路&#xff1b; 有些人可能会毫不犹豫地直接开车过去&a…

Apache Pulsar 技术系列 - 基于 Pulsar 的海量 DB 数据采集和分拣

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案&#xff0c;支持多租户、低延时、读写分离、跨地域复制、快速扩容、灵活容错等特性。本文是 Pulsar 技术系列中的一篇&#xff0c;主要介绍 Pulsar 在海量DB Binlog 增量数据采集、分拣场景下的应用。 前言…

HTML点击链接强制触发下载

常见网页中会有很多点击链接即下载的内容&#xff0c;以下示范一下如何实现 <a href"文件地址" download"下载的文件名字&#xff08;不包括后缀&#xff09;">强制下载</a> 下面举个例子&#xff1a; <a href"./image/test.jpg"…

JS-项目实战-代码优化-事件动态绑定

1、鼠标悬浮和离开事件.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格…

Python开源项目CodeFormer——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践

无论是自己、家人或是朋友、客户的照片&#xff0c;免不了有些是黑白的、被污损的、模糊的&#xff0c;总想着修复一下。作为一个程序员 或者 程序员的家属&#xff0c;当然都有责任满足他们的需求、实现他们的想法。除了这个&#xff0c;学习了本文的成果&#xff0c;或许你还…

如何高效收集数据?

在当今这个信息爆炸的时代&#xff0c;数据已经成为了一种新的资源&#xff0c;其价值不可估量。收集数据的重要性日益凸显&#xff0c;无论是对于企业、政府还是个人&#xff0c;数据都已经成为了一种宝贵的财富。分享一些网站。 一、宏观数据 1.国家统计局&#xff08;数据…

海外邮件接收延迟、接收不到怎么办?U-Mail邮件网关来了

随着经济全球化的发展&#xff0c;很多国内企业开始踏足海外市场&#xff0c;电子邮件就成为了国内企业与海外客户沟通交流的主要渠道。然而海外邮件接收延迟、接收不到等问题成为了困扰企业与海外客户沟通的一大阻碍&#xff0c;导致客户邮件回复不及时&#xff0c;询盘邮件接…