11月28日,NeurIPS 2022正式开幕。
作为目前全球最负盛名的人工智能盛会之一,NeurIPS在每年年末都是计算机科学领域瞩目的焦点。被NeurIPS接收的论文,代表着当今神经科学和人工智能研究的最高水平,也反映着行业趋势的变化。
有趣的是,这届「参赛选手」们的研究似乎都对「游戏」情有独钟。
比如,李飞飞团队基于Minecraft游戏环境的MineDojo,就拿下了最佳数据集和基准论文奖。依托游戏的开放性,研究人员可以在MineDojo中通过各种类型的任务对智能体进行训练,从而让AI具有更加通用的能力。
而通过严苛的录取率,同样是在游戏领域收录的另一篇论文,可能跟很多游戏玩家都相关。
毕竟,谁没玩过王者呢。
论文《<王者荣耀>竞技场:竞争强化学习的泛化环境》
地址:https://openreview.net/pdf?id=7e6W6LEOBg3
文中,研究人员提出了一个基于MOBA游戏《王者荣耀》的测试环境。目的嘛,其实和MineDojo类似——训练AI。
为何MOBA类游戏环境被青睐?
自DeepMind推出AlphaGo开始,游戏作为拥有高自由度、高复杂性的拟真环境,早已成为了AI研究和实验的重要选择。
然而,相比于能够不断从开放式任务中学习的人类,在较低复杂度的游戏里训练出的智能体,并不能将自己的能力泛化到特定的任务之外。简单来说就是,这些AI只能下下棋,或者打打古早的雅达利游戏。
为了开发出能够更加「泛用」的AI,学界的研究重心也开始逐渐从棋盘类游戏转向了更复杂的游戏,包括非完美信息博弈游戏(比如扑克)以及策略类游戏(比如MOBA和RTS游戏)。
同时,正如李飞飞团队在获奖论文里所言,想要让智能体能够泛化到更多的任务之中,训练环境还需要能提供足够多的任务。
凭借着AlphaGo及其衍生版AlphaZero打遍围棋圈无敌手的DeepMind,很快也意识到了这一点。
2016年,DeepMind便联合暴雪,基于空间复杂度为10的1685次方的《星际争霸 II》,推出了「星际争霸 II 学习环境」(StarCraft II Learning Environment,SC2LE),为研究人员提供了智能体的行动和奖励规范,以及一个开源的Python界面,用于与游戏引擎进行通信。
而在国内也有一个资质极佳的「AI训练场」——
作为知名的MOBA游戏,玩家在《王者荣耀》中的动作状态空间高达10的20000次方,远远大于围棋及其他游戏,甚至超过整个宇宙的原子总数(10的80次方)。
和DeepMind一样,腾讯的AI Lab也联合《王者荣耀》,共同开发了更加适合进行AI研究的「王者荣耀AI开放研究环境」。
目前,「王者荣耀AI开放研究环境」包含了1v1对战环境与baseline算法模型,并支持20位英雄的镜像对战任务以及非镜像类对战任务。
具体来说,「王者荣耀AI开放研究环境」在只考虑双方英雄选择条件下,可以支持20×20=400对战子任务。如果算上召唤师技能,将会有40000种子任务。
为了让大家更好地理解智能体在「王者荣耀AI开放研究环境」中接受的泛化性挑战,我们可以利用论文中的两个测试,对其进行验证:
首先制作一个行为树AI(BT),其水平为入门级的「黄金」。与之相对的是就是由强化学习算法训练出来的智能体(RL)。
在第一个实验中,只让貂蝉(RL)和貂蝉(BT)进行对战,然后再拿训练好的RL(貂蝉)去挑战不同英雄(BT)。
经过98轮测试后的结果如下图所示:
当对手英雄发生变化时,同一训练的策略的性能急剧下降。因为对手英雄的变化使测试环境与训练环境不同,因此现有方法学到的策略缺乏泛化性。
图1 跨对手的泛化挑战
在第二个实验中,依然只让貂蝉(RL)和貂蝉(BT)进行对战,然后拿训练好的RL模型控制其他英雄去挑战貂蝉(BT)。
经过98轮测试后的结果如下图所示:
当模型控制的目标从貂蝉变成其他英雄时,相同的训练策略的性能急剧下降。因为目标英雄的变化使行动的意义与训练环境中貂蝉的行动不同。
图2 跨目标的泛化挑战
造成这个结果的原因很简单,每个英雄本身都有自己独特的操作技巧,经过单一训练的智能体在拿到新的英雄之后,并不知道如何使用,就只能两眼一抹黑了。
人类玩家也是类似,能在中路「乱杀」的选手,换了打野之后,也未必能打出不错的KDA。
不难看出,这其实就回到了我们一开始提出的问题,简单的环境难以训练出「通用」的AI。而复杂度高的MOBA类游戏,正好提供了一个便于测试模型泛化性的环境。
当然,游戏并不能直接拿来训练AI,于是经过特别优化的「训练场」应运而生。
由此,研究人员就可以在诸如「星际争霸 II 学习环境」和「王者荣耀AI开放研究环境」中,测试和训练自己的模型了。
国内研究人员如何接入合适的平台资源?
DeepMind的发展,离不开实力雄厚的谷歌托底。李飞飞团队提出的MineDojo,不仅用上了斯坦福这个顶级名校的资源,还有来自英伟达的大力支持。
而国内现阶段的人工智能行业在基础设施层面仍然不够扎实,尤其对于普通公司和高校来说,正面临着研发资源短缺的问题。
为了让更多研究者参与进来,腾讯于今年11月21日正式将「王者荣耀AI开放研究环境」面向大众开放。
用户只需在开悟平台官网注册账号、提交资料并通过平台审核,即可免费下载。
网站链接:https://aiarena.tencent.com/aiarena/zh/open-gamecore
值得一提的是,为了更好地支持学者和算法开发者进行研究,开悟平台不仅对「王者荣耀AI开放研究环境」进行了易用性封装,还提供标准代码与训练框架。
接下来,我们就来「浅浅」地体验一下,如何在开悟平台开始一个AI训练项目吧!
既然要让AI「玩」《王者荣耀》,那么我们要做的第一件事就是,把用来操控英雄的「智能体」做出来。
听起来好像有些复杂?不过,在「王者荣耀AI开放研究环境」中,这其实非常简单。
首先,启动gamecore服务器:
安装hok_env包:
并运行测试脚本:
现在,就可以导入hok,并调用 hok.HoK1v1.load_game创建环境了:
紧接着,我们通过重置环境从智能体那里获得我们的第一个观察结果:
obs是一个NumPy数组的列表,描述了代理对环境的观察。
reward是一个浮点标量的列表,描述了从环境中获得的即时奖励。
done是一个布尔列表,描述了游戏的状态。
infos变量是一个字典的元组,其长度为智能体的数量。
然后在环境中执行操作,直到时间用完或者智能体被干掉。
此处,只需采用env.step方法即可。
和「星际争霸 II 学习环境」一样,在「王者荣耀AI开放研究环境」中同样可以利用可视化工具来查看智能体的回放。
至此,你的第一个智能体就已经创建完毕。
接下来,就可以拉着「她/他」去进行各种各样的训练了!
说到这,想必大家也不难发现,「王者荣耀AI开放研究环境」并不只是单纯地抛出来一个可以训练AI的环境,而是通过熟悉的操作和丰富的文档,使整个流程都变得简单易懂。
如此一来,也就让更多有志于进入AI领域的人轻松上手了。
游戏+AI,还有哪些可能?
看到这,其实还有一个问题没有回答——腾讯开悟平台作为一个由企业主导的研究平台,为何要选择大范围开放?
今年8月,成都市人工智能产业生态联盟联合智库雨前顾问,共同发布了全国首个游戏AI报告。从报告中不难看出,游戏是促进人工智能发展的关键点之一,具体来说,游戏可以从三个方面提升AI的落地应用。
首先,游戏是AI极佳的训练测试场。
- 迭代快速:游戏可以随便交互、随便试错,没有任何真实成本,同时存在明显的奖励机制,能让算法的有效性充分训练展现出来。
- 任务丰富:游戏种类繁多,难度和复杂性也很多样,人工智能必须采用复杂的策略来应对,攻克不同类型的游戏反映了算法水平的提升。
- 成败标准清晰:通过游戏得分标定人工智能的能力,便于进一步对人工智能进行优化。
其次,游戏能够训练AI的不同能力,牵引不同应用。
比如,棋类游戏训练AI序列决策,获得长线推演能力;牌类游戏训练AI动态自适应,获得随机应变能力;即时战略游戏训练了AI的机器记忆能力、长期规划能力、多智能体协作能力、动作连贯性。
另外,游戏还能打破环境制约,推动决策智能落地。
比如,游戏可以推动虚拟仿真实时渲染和虚拟仿真信息同步,升级虚拟仿真交互终端。
而开悟平台依托腾讯AI Lab和王者荣耀在算法、算力、复杂场景等方面的优势,开放之后,可以为游戏与AI发展之间搭建一座有效合作的桥梁,链接高校学科建设、竞赛组织、行业人才孵化。当人才储备足够了,科研的进步和商业应用的落地都将如雨后春笋般冒头。
过去两年,开悟平台在产学研领域的布局举措就很多:举办了「开悟多智能体强化学习大赛」,引来包括清北这样的TOP2名校在内的一片顶尖高校团队参加;组建了高校科教联合体,北大信息科学技术学院爆火的选修课《游戏AI中的算法》,课后作业便是用王者荣耀1V1的环境做实验……
展望未来,可以期待:借助「开悟」平台走出去的这些人才,将辐射到AI产业的各个领域,实现平台上下游生态的全面开花。