机器之心报道
机器之心编辑部
游戏行业可能要变天?
通用 AI 大模型 GPT-4 进游戏了,进的是开放世界,而且玩出了高水平。
昨天,英伟达发布的 VOYAGER 给 AI 圈内带来了一点小小的震撼。
VOYAGER 是第一个大模型驱动,可以终身学习的游戏智能体,著名 AI 学者,刚回 OpenAI 的 Andrej Karpathy 看论文了之后表示:还记得在大约 2016 年的时候,在像《我的世界》这样的环境里开发 AI 代理是多么绝望的一件事吗?
现在画风变了 —— 正确的做法是忘记所有这些,首先用全网数据去训练一个大语言模型(LLM)学习世界知识,推理和工具使用(编码),然后以英伟达这种方式让它去解决问题。
Karpathy 最后总结道:如果在 2016 年读到这种「无梯度」的代理方法,我肯定会大惊失色。
专家说完了,其他人的想法很直接:看起来离通用人工智能(AGI)更近了一步。
也有人在设想未来游戏的场景,由大模型带动 NPC,勃勃生机万物竞发的境界跃然眼前:
我们知道,引领科技潮流的 ChatGPT 是一种文本交互的聊天机器人,又因为 GPT-4 升级了多模态能力,人们经常预言通用 AI 的下一步在于把这种大模型放在机器人里,让它与现实世界产生交互。
而在机器人与现实 / 虚拟世界交互的方式上,类似 GPT-4 这样的先进大模型解锁了一种新范式:「训练」是代码执行而非梯度下降。「训练好的模型」是 VOYAGER 迭代组合的技能代码库,而不是浮点数矩阵。现在,我们正在将无梯度架构推向极限。
在《我的世界》里,VOYAGER 迅速成为了经验丰富的探险家,它获得的独特物品增加了 3.3 倍,行进距离增加了 2.3 倍,解锁关键科技树里程碑的速度比之前的方法快了 15.3 倍。
英伟达把 VOYAGER 的研究进行了彻底的开源:
-
GitHub:github.com/MineDojo/Vo…
研究背景
构建具有通用能力的具身智能体,在开放的世界中不断探索、计划和发展新的技能,是人工智能领域的一个巨大挑战。传统的方法采用强化学习和模仿学习的方法,这些方法基于原始行为运作,对于系统性的探索、可解释性和概括性来说,可能是个挑战。
近期,基于大型语言模型(LLM)的智能体在这些方面获得了突破,利用预训练 LLM 中封装的世界知识,生成一致的行动计划或可执行的策略。它们被应用于像游戏和机器人这样的体现性任务,以及没有体现性的 NLP 任务。然而,这些智能体不是终身学习者,不能在较长的时间跨度内逐步获得、更新、积累和迁移知识。
与人工智能中研究的大多数其他游戏不同,《我的世界》没有强加一个预定的最终目标或固定的故事情节,而是提供了一个具有无限可能性的独特游乐场。一个高效的终身学习智能体应该具有与人类玩家类似的能力:
(1)根据其当前的技能水平和世界状态提出合适的任务,例如,如果它发现自己处于沙漠而不是森林,就会在打铁前学会获取沙子和仙人掌;
(2)根据环境反馈完善技能,并将掌握的技能存入记忆,以便将来在类似情况下重复使用(例如,打僵尸与打蜘蛛类似);
(3)不断探索世界,以自驱动的方式寻找新任务。
VOYAGER 是第一个由 LLM 驱动的体现终身学习的智能体,可以在《我的世界》中驱动探索,掌握广泛的技能,并在没有人类干预的情况下不断地做出新的发现。
研究者使用了代码作为行动空间,而不是低级的运动指令,因为程序可以自然地表示时间上的扩展和组合行动,这对于《我的世界》中的许多长线任务是至关重要的。
VOYAGER 通过 prompt 和上下文学习与黑盒子 LLM(GPT-4)互动。值得注意的是,该方法避开了对模型参数访问和明确的基于梯度的训练或微调的需要。
具体地说,VOYAGER 试图解决由自动课程提出的逐渐困难的任务。该课程是由 GPT-4 根据 「尽可能多发现不同的东西」的总体目标生成的。这种方法可以被看作是一种上下文式的新颖性搜索。通过存储有助于成功解决某个任务的行动程序,VOYAGER 逐步建立起一个技能库。每个程序都由其描述的嵌入来索引,未来可以在类似情况下进行检索。复杂的技能则可以通过组成更简单的程序来合成,这使 VOYAGER 的能力随着时间的推移迅速变得「复合」,缓解了其他持续学习方法中的「灾难性遗忘」。
方法
VOYAGER 由三个新型组件组成:(1) 自动课程,用于提出开放式探索的目标;(2) 技能库,用于开发越来越复杂的行为;(3) 迭代 prompt 机制,用于为具身控制生成可执行代码。
自动课程
具身智能体在开放模式下会遇到各种不同复杂程度的目标环境。自动课程这个组件为开放式探索提供了许多好处,实现了具有挑战性但可管理的学习过程,培养了好奇心驱动的内在动机,供智能体学习和探索,并鼓励开发通用和灵活的问题解决策略。
自动课程组件利用互联网规模的知识,通过促使 GPT-4 提供源源不断的新任务或挑战,提供非常强大的适应性和响应能力。自动课程会根据探索进度和智能体的状态使探索最大化。该课程由 GPT-4 基于「发现尽可能多的不同事物」的总体目标生成。
技能库
**
**
随着自动课程不断提出越来越复杂的任务,VOYAGER 需要有一个技能库,作为学习和进化的基础。受程序的通用性、可解释性和普遍性的启发,研究团队用可执行代码表示每项技能,这些代码支持临时扩展,以完成自动课程提出的特定任务。
具体来说,技能库的顶部用于添加新技能。每个技能都通过其描述的嵌入进行索引,将来可以在类似情况下检索到。
技能库的底部是技能检索。当自动课程提出新任务时,技能库会执行查询以确定最相关的 5 项技能。复杂的技能可以通过编写更简单的程序来合成。这种做法让 VOYAGER 的能力随着时间的推移迅速增强,并缓解了「灾难性遗忘」问题。
迭代 prompt 机制
研究团队通过三种类型的反馈引入自我提升的迭代 prompt 机制,包括环境反馈、执行错误、检查任务成功与否的自我验证。
下图(左)是一个环境反馈的例子:GPT-4 意识到在制作木棍之前还需要 2 个木板。执行错误的例子如下图(右)所示, GPT-4 意识到它应该制作木斧而不是灌木斧,因为《我的世界》中没有灌木斧。
下图是一个自我验证的例子。通过向 GPT-4 提供智能体的当前状态和任务,GPT-4 会充当「评论者」并通知程序是否完成了任务。此外,如果任务失败,它会「批评」智能体并提供如何完成任务的建议。
实验
在实验中,研究者系统对比了 VOYAGER 和基线的探索性能、技术树的掌握情况、地图覆盖率以及对新世界中新任务的零样本泛化能力。
他们利用 OpenAI 的 gpt-4-0314 和 gpt-3.5-turbo-0301 的 API 来完成文本,同时利用 text-embedding-ada-002 API 进行文本嵌入。所有的温度设置为 0,除了 automatic curriculum 需要使用温度 = 0.1 来鼓励任务多样性。模拟环境建立在 MineDojo 的基础上,并利用 Mineflayer 的 JavaScript APIs 进行电机控制。
评估结果如下:
明显更强的探索能力
VOYAGER 的优势体现在它能够不断取得新的进展(如图 1),比如能在 160 次 prompt 迭代中发现了 63 个独特的项目,数量是同类的 3.3 倍。另一方面,AutoGPT 在发现新项目方面明显滞后,而 ReAct 和 Reflexion 则难以取得重大进展。
科技树的掌握
《我的世界》中技术树测试的是智能体制作和使用工具层次的能力。通过这棵树(木制工具→石制工具→铁制工具→钻石工具)的进展需要智能体掌握系统性和构成性的技能。
在表 1 中,分数表示三次总运行中的成功试验次数。数字是三次试验中平均的 prompt 迭代次数,迭代次数越少,方法就越有效。与基线相比,VOYAGER 解锁木质等级的速度快了 15.3 倍(就 prompt 迭代而言),解锁石质等级快了 8.5 倍,解锁铁质等级快了 6.4 倍,VOYAGER 是唯一能解锁科技树中钻石等级的模型。
广泛的地图遍历
与基线相比,VOYAGER 的行动范围能够覆盖 2.3 倍的距离,可穿越各种地形,而基线智能体往往发现自己被限制在本地,这大大阻碍了他们发现新知识的能力(图 7)。
对未见任务的零样本泛化能力
为了评估零样本泛化能力,研究者清除了智能体的库,将其重置到一个新的实例化的世界,并用未见过的任务来测试。对于 VOYAGER 和 AutoGPT,他们利用 GPT-4 将任务分解为一系列的子目标。
如表 2 和图 8 所示,VOYAGER 可以持续地解决所有的任务,而基线不能在 50 次 prompt 迭代内解决任何任务。值得注意的是,从终身学习中构建的技能库不仅增强了 VOYAGER 的性能,而且也给 AutoGPT 带来了提升。这表明,技能库是一个多功能的工具,可以随时被其他方法所采用,有效地作为一种即插即用的资产来提高性能。
消融研究
研究者在 VOYAGER 中消融了 6 个设计选择(自动课程、技能库、环境反馈、执行错误、自我验证和用于代码生成的 GPT-4),并研究它们对探索性能的影响,结果如图 9 所示。
VOYAGER 的性能优于所有替代方案,表明了每个组件的关键作用。此外,GPT-4 在代码生成方面明显优于 GPT-3.5。
最后,英伟达的研究者也指出了一些局限性和未来的工作方向。
首先是成本问题。GPT-4 API 导致了巨大的成本。它比 GPT-3.5 的成本高 15 倍。然而,VOYAGER 需要 GPT-4 实现代码生成质量的飞跃,这是 GPT-3.5 和开源的 LLM 都无法提供的。
其次,尽管有迭代 prompt 机制,但仍有智能体卡住而无法生成正确技能的情况。自动课程有灵活性,可以在以后的时间里重新尝试这项任务。自我验证模块偶尔也可能失败,例如不能识别出蜘蛛串正是打倒蜘蛛的成功信号。
然后是大模型的「幻觉」问题。自动课程偶尔会提出无法完成的任务,例如可能要求智能体制作游戏中并不存在的「铜剑」或「铜胸甲」。幻觉也会发生在代码生成过程中,例如 GPT-4 倾向于使用鹅卵石作为燃料输入,这在游戏中是一个无效的燃料来源。此外,它可能会调用所提供的控制原始 API 中没有的函数,导致代码执行错误。研究者认为,GPT API 模型的改进以及微调开源 LLM 的新技术将在未来克服这些限制。
更多研究细节,可参考原论文。