给游戏行业来点 GPT-4 式震撼?这个叫 Voyager 的智能体不仅可以根据游戏的反馈自主训练,而且还能自行写代码推动游戏任务。
继斯坦福的 25 人小镇后,AI 智能体又出爆款新作了。
最近,英伟达 AI 科学家 Jim Fan 等人把 GPT-4 整进了「我的世界」(Minecraft)—— 提出了一个全新的 AI 智能体 Voyager。
Voyager 的厉害之处在于,它不仅性能完胜 AutoGPT,而且还可以在游戏中进行全场景的终身学习!
比起之前的 SOTA,Voyager 获得的物品多出了 3.3 倍,旅行距离变长了 2.3 倍,解锁关键技能树的速度快了 15.3 倍。
对此,网友直接震惊了:我们离通用人工智能 AGI,又近了一步。
所以,未来的游戏,就是由大模型带动 NPC 来玩的吧?
真・数字生命
接入 GPT-4 之后,Voyager 根本不用人类操心,完全就是自学成才。
它不仅掌握了挖掘、建房屋、收集、打猎这些基本的生存技能,还学会了自个进行开放式探索。
它会自己去到不同的城市,路过一片片海洋,一座座金字塔,甚至还会自己搭建传送门。
通过自我驱动,它不断探索着这个神奇的世界,扩充着自己的物品和装备,配备不同等级的盔甲,用盾牌格挡伤害,用栅栏圈养动物……
论文地址:https://arxiv.org/ abs / 2305.16291
项目地址:https://voyager.minedojo.org/
Voyager 的英勇事迹包括但不限于 ——
大战末影人
造基地
挖紫水晶
挖金子
收集仙人掌
打猎
钓鱼
数字生命的潜能究竟有多大?我们只知道,现在 Voyager 仍然在 Minecraft 中一刻不停地探索,不断扩展着自己的疆域。
「训练」无需梯度下降
此前,AI 领域的一大挑战就是,构建具有通用能力的具身智能体,让它们在开放世界中自主探索,自行发展新技能。
以往,学界都是采用强化学习和模仿学习,但这些方法在系统化的探索、可解释性和泛化性等方面,表现往往差强人意。
大语言模型的出现,给构建具身智能体带来了全新的可能性。因为基于 LLM 的智能体可以利用预训练模型中蕴含的世界知识,生成一致的行动计划或可执行策略,这就非常适合应用于游戏和机器人之类的任务。
这种智能体还有一个好处就是,不需要具体化的自然语言处理任务。
然而,这些智能体仍然无法摆脱这样的缺陷 —— 无法终身学习,因而不能在较长时间跨度上逐步获取知识,并且将它们积累下来。
而这项工作最重要的意义就在于,GPT-4 开启了一种新的范式:这个过程中是靠代码执行「训练」,而非靠梯度下降。
「训练模型」是 Voyager 迭代式构建的技能代码库,而非浮点数矩阵。通过这种方法,团队正在将无梯度架构推向极限。
在这种情况下训练出的智能体,已经具备了同人类一样的终身学习能力。
比如,Voyager 如果发现自己处在沙漠而非森林中,就会知道学会收集沙子和仙人掌就比学会收集铁矿更重要。
而且,它不仅能根据目前的技能水平和世界状态明确自己最合适的任务,还能根据反馈不断完善技能,保存在记忆中,留在下次调用。
刚刚回到 OpenAI 的 Karpathy 对这个工作表示盛赞:这是个用于高级技能的「无梯度架构」。在这里,LLM 就相当于是前额叶皮层,通过代码生成了较低级的 mineflayer API。
Karpathy 回忆起,在 2016 年左右,智能体在 Minecraft 环境中的表现还很让人绝望。当时的 RL 只能从超稀疏的奖励中随机地探索执行长期任务的方式,让人感觉非常 stuck。
而现在,这个障碍已经在很大程度上被解除了 —— 正确的做法是另辟蹊径,首先训练 LLM 从互联网文本上学习世界知识、推理和工具使用(尤其是编写代码),然后直接把问题抛给它们。
最后他感慨道:如果我在 2016 年就读到这种对智能体的「无梯度」方法,我肯定会大吃一惊。
微博大 V「宝玉 xp」也对这个工作给予了高度评价 ——
真的是了不起的尝试,整个代码都是开源的,这种自动生成任务-> 自动写代码执行任务-> 保存一个代码库可以重用的思路,应该是可以很容易应用到其他领域。
Voyager
与其他 AI 研究中常用的游戏不同,Minecraft 并没有强加预定义的终点目标或固定的剧情线,而是提供了一个具有无尽可能性的游乐场。
对于一个有效的终身学习智能体来说,它应该具有与人类玩家类似的能力:
1. 根据其当前的技能水平和世界状态提出适当的任务,例如,如果它发现自己是在沙漠而不是森林中,就会在学习收集铁之前学习收集沙子和仙人掌
2. 基于环境反馈来完善技能,并将掌握的技能记入记忆,以便在类似情况下重复使用(例如,与僵尸战斗与与蜘蛛战斗类似)
3. 持续探索世界,以自我驱动的方式寻找新的任务。
为了让 Voyager 具有上述这些能力,来自英伟达、加州理工学院、得克萨斯大学奥斯汀分校和亚利桑那州立大学的团队提出了 3 个关键组件:
1. 一个迭代提示机制,能结合游戏反馈、执行错误和自我验证来改进程序
2. 一个技能代码库,用来存储和检索复杂行为
3. 一个自动教程,可以最大化智能体的探索
首先,Voyager 会尝试使用一个流行的 Minecraft JavaScript API(Mineflayer)来编写一个实现特定目标的程序。
虽然程序在第一次尝试时就出错了,但是游戏环境反馈和 JavaScript 执行错误(如果有的话)会帮助 GPT-4 改进程序。
左:环境反馈。GPT-4 意识到在制作木棒之前还需要 2 块木板。
右: 执行错误。GPT-4 意识到它应该制作一把木斧,而不是一把「相思木」斧,因为 Minecraft 中并没有「相思木」斧。
通过提供智能体当前的状态和任务,GPT-4 会告诉程序是否完成了任务。
此外,如果任务失败了,GPT-4 还会提出批评,建议如何完成任务。
其次,Voyager 通过在向量数据库中存储成功的程序,逐步建立一个技能库。每个程序可以通过其文档字符串的嵌入来检索。
复杂的技能是通过组合简单的技能来合成的,这会使 Voyager 的能力随着时间的推移迅速增长,并缓解灾难性遗忘。
上:添加技能。每个技能都由其描述的嵌入索引,可以在将来的类似情况中检索。
下:检索技能。当面对自动课程提出的新任务时,会进行查询并识别前 5 个相关技能。
第三,自动课程会根据智能体当前的技能水平和世界状态,提出合适的探索任务。
例如,如果它发现自己在沙漠而非森林中,就学习采集沙子和仙人掌,而不是铁。
具体来说,课程是由 GPT-4 基于「发现尽可能多样化的东西」这个目标生成的。
自动课程
实验
接下来,让我们看一些实验!
团队将 Voyager 与其他基于 LLM 的智能体技术进行了系统性的比较,比如 ReAct、Reflexion,以及在 Minecraft 中广受欢迎的 AutoGPT。
在 160 次提示迭代中,Voyager 发现了 63 个独特的物品,比之前的 SOTA 多出 3.3 倍。
寻求新奇的自动课程自然会驱使 Voyager 进行广泛的旅行。即使没有明确的指示,Voyager 也会遍历更长的距离(2.3 倍),访问更多的地形。
相比之下,之前的方法就显得非常「懒散」了,经常会在一小片区域里兜圈子。
那么,经过终身学习后的「训练模型」—— 技能库,表现如何呢?
团队清空了物品 / 护甲,生成了一个新的世界,并用从未见过的任务对智能体进行了测试。
可以看到,Voyager 解决任务的速度明显比其他方法更快。
值得注意的是,从终身学习中构建的技能库不仅提高了 Voyager 的性能,也提升了 AutoGPT 的性能。
这表明,技能库作为一种通用工具,可以有效地作为一个即插即用的方法来提高性能。
上图中的数字是三次试验中提示迭代的平均值。迭代次数越少,方法越有效。可以看到,Voyager 解决了所有的任务,而 AutoGPT 经过 50 次提示迭代都无法解决。
此外,与其他方法相比,Voyager 在解锁木工具上快了 15.3 倍,石工具快 8.5 倍,铁工具快 6.4 倍。而且拥有技能库的 Voyager 是唯一解锁钻石工具的。
目前,Voyager 只支持文本,但在未来可以通过视觉感知进行增强。
在团队进行的一个初步研究中,人类可以像一个图像标注模型一样,向智能体提供反馈。
从而让 Voyager 能够构建复杂的 3D 结构,比如地狱门和房子。
结果表明,Voyager 的性能优于所有替代方案。此外,GPT-4 在代码生成方面也明显优于 GPT-3.5。
结论
Voyager 是第一个由 LLM 驱动、可以终身学习的具身智能体。它可以利用 GPT-4 不停地探索世界,开发越来越复杂的技能,并始终能在没有人工干预的情况下进行新的发现。
在发现新物品、解锁 Minecraft 技术树、穿越多样化地形,以及将其学习到的技能库应用于新生成世界中的未知任务方面,Voyager 表现出了优越的性能。
对于通用智能体的开发来说,无需调整模型参数的 Voyager 是可以作为一个起点的。
参考资料:
https://voyager.minedojo.org/
本文来自微信公众号:新智元 (ID:AI_era)
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。