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

news2024/10/5 21:16:29

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.coloradmin.cn/o/1212128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】MVCC(多版本并发控制)详解

MVCC MVCC概述 MVCC,全称 Multi-Version Concurrency Control ,即多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC就是在ReadCommitte…

金蝶云星空表单插件获取控件值

文章目录 金蝶云星空表单插件获取控件值获取主键获取文本获取日期获取数值获取基础资料 金蝶云星空表单插件获取控件值 获取主键 正确: this.View.Model.GetPKValue();错误: 获取文本 this.View.Model.GetValue("FBILLNO")获取日期 thi…

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

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

了解一下知识付费系统的开发流程和关键技术点

知识付费系统的开发既涉及到前端用户体验,又需要强大的后端支持和复杂的付费逻辑。在这篇文章中,我们将深入探讨知识付费系统的开发流程和关键技术点,并提供一些相关的技术代码示例。 1. 需求分析和规划: 在着手开发知识付费系…

day21_mysql

今日内容 零、 复习昨日 第一阶段: Java基础知识(会编程,懂编程) 第二阶段: Web开发(前端,后端,数据库) 一、MySQL 一、引言 二、数据库 2.1 概念 ​ 数据库是“按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合…

搭建成功simulink-stm32硬件在环开发环境

本次实验所使用的软件版本和硬件平台参数如下: Matlab版本: 2021b STM32硬件平台:YF_STM32_Alpha 1R4(参考自STM32 Nucleo F103RB官方开发板) YF_STM32_Alpha开发板 STM32 Nucleo F103RB 开发板 2.1 STM32硬件支持包下载 读者朋友平时使用的是和谐版M…

基于springboot实现体育场馆运营平台项目【项目源码】

基于springboot实现体育场馆运营管理系统演示 系统开发平台 在该数码论坛系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其功能…

基于SpringBoot+Vue的在线外卖管理系统

基于SpringBootVue的在线外卖管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 下单界面 登录界面 商家界面 摘要 本文介绍了一种基于Spring Boot和…

【vue实战项目】通用管理系统:api封装、404页

前言 本文为博主的vue实战小项目系列中的第三篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容: 【vue实战项目】通用管理系统:登录页-CSDN博客 【vue实战项目】通用管理系统:封装to…

k8s之Helm

理论: 什么是 He lm 在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包…

球星马布里申请香港高才通计划落户香港拿身份!谈谈香港身份的好处!

球星马布里申请香港高才通计划落户香港拿身份!谈谈香港身份的好处! 据香港政府新闻网14日消息,前美国职业篮球联赛球员马布里,日前向香港人才服务办公室递交高端人才通行证计划的申请。香港劳工及福利局局长孙玉菡与他会面&#x…

并发编程之生产者消费者模型

什么是生产者消费者模型 生产者消费者模型是多线程中一个比较典型的模型。 打个比方:你是一个客户,你去超市里买火腿肠。 这段话中的 "你"就是消费者, 那么给超市提供火腿肠的供货商就是生产者。超市呢?超市是不是被…

可怕!.Net 8正式发布了,.Net野心确实不小!

随着三天.NET Conf 2023的会议结束了,.Net 8正式发布了。 .Net 8是官方号称有史以来性能最快的一个版本了。 .Net 8 增加了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。 反正就是…

Oneid 图计算思路

一、前文 oneid 是用户画像的核心,此文提供图计算的具体方案。 二、方案 注意事项: 1. 业务存在解绑信息,当不与其他业务系统产生关联时,沿用旧oneid。 2. oneid 需要自增,下游系统会用到bitmap等数据类型&#xff0…

学习c#的第十三天

目录 C# 多态性 静态多态性 函数重载 运算符重载 动态多态性 virtual 和 abstract 抽象方法和虚方法的区别 重载(overload)和重写(override) 隐藏方法 C# 多态性 多态是同一个行为具有多个不同表现形式或形态的能力。 多态性意味着有多重形式。在面向对象编程范式中…

自由曲线与曲面 -计算机图形学

目录 自由曲线与曲面 函数的连续性 (1)参数连续性 (2)几何连续性 bezier 曲线 Bernstein基函数 *公式看不懂,带几个数进去看看,你就更好地可以看到这个公式的本质了 凸包性质 仿射不变性 …

PyCharm 【unsupported Python 3.1】

PyCharm2020.1版本,当添加虚拟环境发生异常: 原因:Pycharm版本低了!不支持配置的虚拟环境版本 解决:下载PyCharm2021.1版本,进行配置成功!

mysql之搭建MMM架构实现高可用

实验目的 解决mysql的主从服务器单点故障问题,实现高可用 实验思路 实验条件: 主机名 作用 IP地址 组件 mysql1 master01 20.0.0.13 mysql服务、mysql-mmm mysql2 masert02 20.0.0.23 mysql服务、mysql-mmm mysql3 slave01 20.0.0.33 …

C# 使用Microsoft.Office.Interop.Excel库操作Excel

1.在NuGet管理包中搜索:Microsoft.Office.Interop.Excel,如下图红色标记处所示,进行安装 2. 安装完成后,在程序中引入命名空间如下所示: using Microsoft.Office.Interop.Excel; //第一步 添加excel第三方库 usi…

kubernetes集群编排——prometheus监控

部署prometheus 创建项目仓库并上传镜像 编写配置文件 [rootk8s2 values]# vim prometheus-values.yaml alertmanager:alertmanagerSpec:image:repository: prometheus/alertmanagertag: v0.24.0 grafana:enabled: trueimage:repository: grafana/grafanatag: 9.0.6service:typ…