Voyager 是一个开放式的具身智能体,由大型语言模型驱动,在《我的世界》(Minecraft)中运行。它是首个能在无人工干预下持续探索世界、获取多样化技能并做出新发现的 LLM 驱动机器人式终身学习智能体。
用途与定位 Voyager 主要用于研究目的,目标是探索大型语言模型在开放世界游戏环境中进行终身学习与自主探索的能力。它通过黑盒查询与 GPT-4 交互,无需对模型参数进行微调。
主要能力 Voyager 由三个关键组件构成:
- 自动课程(automatic curriculum):最大化探索,指导智能体持续发现新目标。
- 技能库(skill library):一个不断增长的可执行代码库,用于存储和检索复杂行为。
- 迭代提示机制(iterative prompting mechanism):结合环境反馈、执行错误与自我验证来改进程序。
Voyager 开发出的技能具有时间延展性、可解释性和组合性,能够快速复合智能体的能力,并缓解灾难性遗忘。在实验表现上,Voyager 相比此前的最优方法,可获得多 3.3 倍的独特物品,行走距离长 2.3 倍,并快至 15.3 倍解锁关键技术树里程碑。Voyager 还能在新《我的世界》世界中利用已学技能库从零解决新任务,而其他方法在泛化上表现困难。
使用方式 仓库中提供了 Voyager 代码,采用 MIT 许可证。
环境要求:
- Python ≥ 3.9
- Node.js ≥ 16.13.0
- 已在 Ubuntu 20.04、Windows 11 和 macOS 上测试
安装步骤:
- 安装 Node.js 包(除 Python 依赖外还需安装)。
- 安装《我的世界》游戏并设置一个《我的世界》实例,参照 Minecraft Login Tutorial。
- 安装 Fabric 模组以支持 Voyager 的所有功能,需使用正确的 Fabric 版本。
运行要求: Voyager 使用 OpenAI 的 GPT-4 作为语言模型,需要 OpenAI API 密钥。
启动方式: 安装完成后可运行 Voyager。若首次使用 Azure Login,需按命令行提示生成配置文件。对于 Azure Login,还需自行选择世界并通过 LAN 开放。运行 voyager.learn() 后,游戏将弹出,需要:
- 选择 Singleplayer 并点击 Create New World;
- 将 Game Mode 设为 Creative,Difficulty 设为 Peaceful;
- 创建世界后按 Esc 键并点击 Open to LAN;
- 选择 Allow cheats: ON 并点击 Start LAN World;
- 随后机器人将加入世界。
从检查点恢复学习: 若停止学习过程并希望稍后从检查点恢复,可实例化 Voyager 续跑。
使用已学技能库执行特定任务: 可先将技能库目录传给 Voyager,然后运行任务分解。注意:任务分解偶尔可能不合逻辑,若发现打印出的子目标有缺陷,可重新运行分解。最后,使用已学技能库运行子目标。所有有效技能库可参见 Learned Skill Libraries。
适用场景 适合研究者在《我的世界》环境中研究 LLM 驱动的终身学习、开放世界探索、技能积累与泛化。也可用于在拥有已学技能库的情况下,在新世界中从零解决新任务。
限制与注意事项
- 项目严格用于研究目的,并非 NVIDIA 的官方产品。
- 依赖 OpenAI GPT-4 与 API 密钥,且需要《我的世界》游戏、Node.js 及 Fabric 模组。
- 任务分解偶尔可能不合逻辑,需要人工重跑。
- 若遇到问题,建议先查阅 FAQ 再提交 issue。
引用:若该工作对你有帮助,请考虑引用其论文。