VOYAGER

1 阅读9分钟

Abstract

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

最大化探索的自动课程。 不断增长的技能库(可执行代码),用于存储和检索。 新的迭代提示机制,结合环境反馈、执行错误和自我验证来改进程序。 VOYAGER通过黑盒查询与GPT-4交互,无需参数微调。在游戏中,VOYAGER展现出强大的情景终身学习能力,表现出非凡的熟练度,远比其它SOTA方法高效。

1 Introduction

VOYAGER通过三个关键模块实现:

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

image.png

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

执行生成的程序,获取在Minecraft的观察结果。 将反馈结果纳入GPT-4的prompt中,以进行下一轮优化。 重复执行,直到自验证模块确认任务完成。 VOYAGER展现出强大的上下文终身学习的能力。它可以构建一个不断增长的动作程序技能库,这些程序可复用、可解释并可以推广到新任务。

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. 智能体当前的状态。
  5. 在代码生成之前进行CoT的推理。

作者通过新颖的迭代提示机制完善程序,并将其作为新技能合并到技能库中(描述嵌入作为索引)

2.3 Iterative Prompting Mechanism

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

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

image.png

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

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. 自我验证在所有反馈类型中是最重要的部分。

3.5 Multimodal Feedback from Humans

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

有两种整合人类反馈的方法:

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

4 Limitations and Future Work

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

对比Voyager 与 Jarvis -1

特性Voyager**JARVIS-1 **
感知方式纯文本(将游戏状态转为文本描述)多模态(直接理解视频帧/视觉信息)
控制方式生成 JavaScript 代码 (Mineflayer API)生成动作指令(映射到预训练控制策略)
记忆机制技能库 (Skill Library) :存储可复用的代码块多模态记忆 (Multimodal Memory) :存储视觉+经验
学习逻辑迭代提示词(从报错和反馈中修代码)跨任务规划 + 多模态目标对齐
核心优势代码极其精准,能完成数千步的长程任务具备视觉直觉,更像人类玩家的观察方式

1. 相同点:LLM 作为“大脑”

  • 长程规划: 两者都放弃了传统的单一强化学习(RL)目标,转而利用 LLM 的推理能力来分解复杂任务(如:从砍树到合成钻石镐)。
  • 闭环反馈: 它们都不只是“盲目执行”,而是会根据环境的回传结果(报错信息或视觉变化)来调整下一步计划。
  • 终身学习: 它们都具有“越玩越强”的特性,通过不断的探索将经验转化为某种形式的“记忆”,避免每次都从零开始。

2. 主要不同点:技术的演进

感知与交互:文本 vs 视觉

  • Voyager: 就像一个“盲人编程高手”。它看不见画面,而是通过 API 获取坐标、背包物品等文本信息。它的强项在于逻辑的严密性,因为它直接写 JS 代码来操作游戏,精度极高。
  • JARVIS-1: 更像一个“看游戏直播的玩家”。它使用了多模态大模型(MLLM),能够理解视频画面。这让它在处理一些难以用文字描述的任务(如:躲避苦力怕、地形穿越)时,比 Voyager 更有“直觉”。

技能积累:代码库 vs 经验记忆

  • Voyager 的技能库: 它是把成功的代码存入向量数据库。下次遇到类似任务,直接“调包”运行。这导致 Voyager 在完成确定性、流程性的工作(如合成、建造)时效率极高。
  • JARVIS-1 的多模态记忆: 它记录的是“在某种视觉情况下,采取某种策略成功了”。它不仅仅是复用代码,而是在语义层面复用经验,这让它在应对环境剧烈变化时更具灵活性。

3. 为什么 JARVIS-1 被视为进阶版?

虽然你之前提供的图片显示 Voyager 在科技树解锁上非常出色,但 JARVIS-1 试图解决的是更难的问题:多模态对齐

  1. 突破“文本定义”: Voyager 依赖于完美的文本环境描述,如果环境没有提供 API 接口,Voyager 就“瞎了”。而 JARVIS-1 只要有像素(图像)就能工作,更接近通用机器人。
  2. 更复杂的任务: JARVIS-1 在处理更具“创造性”或“即时反应”的任务时表现更好。

参考

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