近日,Facebook 的研究人员表示,NetHack这款游戏是专门为训练、测试和评估人工智能模型而设计的。为此,他们今日发布了 NetHack 学习环境,这是用于对强化学习智能体的鲁棒性和泛化性进行基准测试的研究工具。
几十年来,游戏一直是测试人工智能的基准。2013年,谷歌DeepMind 展示了一种人工智能系统,它可以以超人类的水准玩 Pong、 Breakout、 Space Invaders、 Seaquest、 Beamrider、 Enduro等各类游戏。据 DeepMind 联合创始人 Demis Hassabis 说,这些进步不仅仅是为了改进游戏设计。
他们也预示着未来将在诊断疾病、预测复杂蛋白质结构和 CT 片段扫描系统等方面取得进展。
NetHack: 50多层「地牢」,测试SOTA人工智能的泛化极限
NetHack这款游戏1987年首次发布,比人们想象的要复杂得多。NetHack拥有由ASCII字符组成的图形界面。
游戏名字中的Net是指开发过程通过互联网合作完成。而「Hack」是指角色扮演游戏的特点——战斗和探索(hack and slash)。
玩家要经历50多个地牢等级,在这期间他们必须要使用到数百个物品,与怪物对抗,互动非常丰富。
玩家需要选择自己所扮演的角色并指定性别、种族、职业和阵营,或者选择让系统随机产生一个角色。游戏者可以扮演经典奇幻角色,比如骑士、野蛮人、巫师、游侠、女武神、僧侣和武士,也可以选择一些比较少见的角色,诸如考古学家、游客和洞穴人。玩家的角色和阵营决定了其在游戏中需要侍奉的神灵。
玩家的目标就是在地下城的最底层获取Yendor的项链并将其供奉给自己的神灵。作为回报,角色会成为不朽的半神。此外,一系列的支线任务也必须完成,其中包括各职业所特有的任务。
游戏开始的时候,玩家通常会有一只宠物伴随,一般是小猫或小狗,但骑士会有一匹马以及马鞍。
游戏中的大部分怪物都可以用魔法或喂食等方式转化为宠物。
NetHack 的等级是程序生成的,每个游戏的难度都是不同的,Facebook 的研究人员指出,这是在测试当前最先进的人工智能的泛化极限。
基于NetHack有哪些优势?
NetHack 的轻量级架构还有另一个优势。主要用 C语言编写的游戏引擎,可以轻松捕捉到回合制ASCII art 游戏的复杂性。它只保留了最简单的物理运动,渲染符号而不是像素,重要的是,它允许模型快速学习而不是把计算资源浪费在模拟动力学或渲染外观上。
在云上训练复杂的机器学习模型仍然是非常昂贵的。华盛顿大学的 Grover 专门为产生和侦测假新闻而设计的训练课程在两周内花费了25000美元。
为了训练 GPT-2语言模型,OpenAI 每小时花费高达256美元,而谷歌花费了大约6912美元来训练 双向转换模型BERT,它重新定义了11种自然语言处理任务的最新技术。
相比之下,使用NetHack进行训练就显得十分高效。使用 TorchBeast 框架,以及单个高端显卡就足以让 AI驱动的 NetHack 智能体每天可以进行数亿个步骤的训练。该框架还可以通过添加更多的显卡或计算机来支持进一步的扩展。智能体甚至可以在一个合理的时间框架内在环境中经历数十亿个步骤,可以测试当前人工智能技术可以达到的极限。
「NetHack Learning Environment(NLE)相比于其他具有挑战性的模拟环境,计算成本大大降低。在 NLE 上运行的标准深度[强化学习]代理只探索了整个 NetHack 游戏的一小部分」, Facebook 的研究人员在本周发布的一份预印本论文中写道。
「要想在这种充满挑战的新环境中取得进展,需要强化学习的代理人超越古板的学习范畴。」
NetHack学习环境:七项基准任务测试智能体
Nethack 学习环境由三个组件组成: 使用流行的 OpenAI Gym API 的连接 NetHack 的 Python 接口、一套基准测试任务和一个基准智能体。除此之外,它还包括7个基准任务,用于衡量智能体的进展情况,具体是:
楼梯: 下降到地牢较低的等级
设定: 照顾好你的宠物(让它活着并带着它进入地牢的更深处)
进食: 寻找无毒食物的来源并吃掉,避免挨饿
黄金: 在整个地牢收集黄金
侦察兵: 尽可能多地侦察地牢
得分: 在游戏中获得高分(例如,杀死怪物,下降到更深一层,收集黄金)
甲骨文(Oracle): 到达一个重要的里程碑,出现甲骨文(在进入地牢4到9级后会出现)
共同作者指出,NetHack 包含大量的外部资源,这些资源可以用于提高智能体的性能。例如,存在着来自人类玩家的回放数据库,模型可以从中直接学习,还有官方的 NetHack 指南、 NetHack Wiki、在线视频和论坛讨论等资源。
研究人员写道: 「我们相信,NetHack 学习环境将激励人们进一步探索强化学习的策略,进行长期规划,并从模拟之外的资源中迁移一些常识。」
「(它)为智能体提供了大量可供学习的经验,这样我们作为研究人员就可以花更多时间测试新想法,而不是等待结果出来。它对实验资源受限的研究人员来说简直是福音,简单易用且没有牺牲环境的复杂性和丰富性。」
GitHub地址:https://github.com/facebookresearch/nle
参考链接:
https://venturebeat.com/2020/06/25/facebook-releases-ai-development-tool-based-on-nethack/