【新智元导读】给游戏行业来点GPT-4式震撼?这个叫Voyager的智能体不仅可以根据游戏的反馈自主训练,而且还能自行写代码推动游戏任务。
继斯坦福的25人小镇后,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仍然在Minecraft中一刻不停地探索,不断扩展着自己的疆域。此前,AI领域的一大挑战就是,构建具有通用能力的具身智能体,让它们在开放世界中自主探索,自行发展新技能。以往,学界都是采用强化学习和模仿学习,但这些方法在系统化的探索、可解释性和泛化性等方面,表现往往差强人意。大语言模型的出现,给构建具身智能体带来了全新的可能性。因为基于LLM的智能体可以利用预训练模型中蕴含的世界知识,生成一致的行动计划或可执行策略,这就非常适合应用于游戏和机器人之类的任务。此前,斯坦福研究者构建出生活着25个AI智能体的虚拟小镇,震惊了AI社区这种智能体还有一个好处就是,不需要具体化的自然语言处理任务。然而,这些智能体仍然无法摆脱这样的缺陷——无法终身学习,因而不能在较长时间跨度上逐步获取知识,并且将它们积累下来。而这项工作最重要的意义就在于,GPT-4开启了一种新的范式:这个过程中是靠代码执行「训练」,而非靠梯度下降。Jim Fan解释道:我们在BabyAGI/AutoGPT之前就有了这个想法,花了很多时间找出最好的无梯度架构
「训练模型」是Voyager迭代式构建的技能代码库,而非浮点数矩阵。通过这种方法,团队正在将无梯度架构推向极限。
在这种情况下训练出的智能体,已经具备了同人类一样的终身学习能力。比如,Voyager如果发现自己处在沙漠而非森林中,就会知道学会收集沙子和仙人掌就比学会收集铁矿更重要。而且,它不仅能根据目前的技能水平和世界状态明确自己最合适的任务,还能根据反馈不断完善技能,保存在记忆中,留在下次调用。所以,我们离硅基生命出现还有多远?
刚刚回到OpenAI的Karpathy对这个工作表示盛赞:这是个用于高级技能的「无梯度架构」。在这里,LLM就相当于是前额叶皮层,通过代码生成了较低级的mineflayer API。Karpathy回忆起,在2016年左右,智能体在Minecraft环境中的表现还很让人绝望。当时的RL只能从超稀疏的奖励中随机地探索执行长期任务的方式,让人感觉非常stuck。
而现在,这个障碍已经在很大程度上被解除了——正确的做法是另辟蹊径,首先训练LLM从互联网文本上学习世界知识、推理和工具使用(尤其是编写代码),然后直接把问题抛给它们。最后他感慨道:如果我在2016年就读到这种对智能体的「无梯度」方法,我肯定会大吃一惊。微博大V「宝玉xp」也对这个工作给予了高度评价——真的是了不起的尝试,整个代码都是开源的,这种自动生成任务->自动写代码执行任务->保存一个代码库可以重用的思路,应该是可以很容易应用到其他领域。
与其他AI研究中常用的游戏不同,Minecraft并没有强加预定义的终点目标或固定的剧情线,而是提供了一个具有无尽可能性的游乐场。对于一个有效的终身学习智能体来说,它应该具有与人类玩家类似的能力:1. 根据其当前的技能水平和世界状态提出适当的任务,例如,如果它发现自己是在沙漠而不是森林中,就会在学习收集铁之前学习收集沙子和仙人掌2. 基于环境反馈来完善技能,并将掌握的技能记入记忆,以便在类似情况下重复使用(例如,与僵尸战斗与与蜘蛛战斗类似)3. 持续探索世界,以自我驱动的方式寻找新的任务。为了让Voyager具有上述这些能力,来自英伟达、加州理工学院、得克萨斯大学奥斯汀分校和亚利桑那州立大学的团队提出了3个关键组件:1. 一个迭代提示机制,能结合游戏反馈、执行错误和自我验证来改进程序首先,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/