让 AI 学会打王者,有什么用

从围棋到游戏,DeepMind 把人类高手挨个虐了一遍。但这个游戏 AI,从一群王者中「悟」出了一些新东西。

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 服务器:

cd gamecore
gamecore-server.exe server --server-address :23432

安装 hok_env 包:

git clone https://github.com/tencent-ailab/hok_env.git
cd hok_env/hok_env/
pip install -e .

并运行测试脚本:

cd hok_env/hok_env/hok/unit_test/
python test_env.py

现在,就可以导入 hok,并调用 hok.HoK1v1.load_game 创建环境了:

import hok
env = HoK1v1.load_game(runtime_id=0, game_log_path="./game_log", gamecore_path="~/.hok", config_path="config.dat",config_dicts=[{"hero":"diaochan", "skill":"rage"} for _ in range(2)])

紧接着,我们通过重置环境从智能体那里获得我们的第一个观察结果:

obs, reward, done, infos = env.reset()

obs 是一个 NumPy 数组的列表,描述了代理对环境的观察。

reward 是一个浮点标量的列表,描述了从环境中获得的即时奖励。

done 是一个布尔列表,描述了游戏的状态。

infos 变量是一个字典的元组,其长度为智能体的数量。

然后在环境中执行操作,直到时间用完或者智能体被干掉。

此处,只需采用 env.step 方法即可。

done = False
while not done:
    action = env.get_random_action()    
    obs, reward, done, state = env.step(action)

和「星际争霸 II 学习环境」一样,在「王者荣耀 AI 开放研究环境」中同样可以利用可视化工具来查看智能体的回放。

至此,你的第一个智能体就已经创建完毕。

接下来,就可以拉着「她 / 他」去进行各种各样的训练了!

说到这,想必大家也不难发现,「王者荣耀 AI 开放研究环境」并不只是单纯地抛出来一个可以训练 AI 的环境,而是通过熟悉的操作和丰富的文档,使整个流程都变得简单易懂。

如此一来,也就让更多有志于进入 AI 领域的人轻松上手了。

游戏 + AI,还有哪些可能?

看到这,其实还有一个问题没有回答 —— 腾讯开悟平台作为一个由企业主导的研究平台,为何要选择大范围开放?

今年 8 月,成都市人工智能产业生态联盟联合智库雨前顾问,共同发布了全国首个游戏 AI 报告。从报告中不难看出,游戏是促进人工智能发展的关键点之一,具体来说,游戏可以从三个方面提升 AI 的落地应用。

首先,游戏是 AI 极佳的训练测试场。

迭代快速:游戏可以随便交互、随便试错,没有任何真实成本,同时存在明显的奖励机制,能让算法的有效性充分训练展现出来。

任务丰富:游戏种类繁多,难度和复杂性也很多样,人工智能必须采用复杂的策略来应对,攻克不同类型的游戏反映了算法水平的提升。

成败标准清晰:通过游戏得分标定人工智能的能力,便于进一步对人工智能进行优化。

其次,游戏能够训练 AI 的不同能力,牵引不同应用。

比如,棋类游戏训练 AI 序列决策,获得长线推演能力;牌类游戏训练 AI 动态自适应,获得随机应变能力;即时战略游戏训练了 AI 的机器记忆能力、长期规划能力、多智能体协作能力、动作连贯性。

另外,游戏还能打破环境制约,推动决策智能落地。

比如,游戏可以推动虚拟仿真实时渲染和虚拟仿真信息同步,升级虚拟仿真交互终端。

而开悟平台依托腾讯 AI Lab 和王者荣耀在算法、算力、复杂场景等方面的优势,开放之后,可以为游戏与 AI 发展之间搭建一座有效合作的桥梁,链接高校学科建设、竞赛组织、行业人才孵化。当人才储备足够了,科研的进步和商业应用的落地都将如雨后春笋般冒头。

过去两年,开悟平台在产学研领域的布局举措就很多:举办了「开悟多智能体强化学习大赛」,引来包括清北这样的 TOP2 名校在内的一片顶尖高校团队参加;组建了高校科教联合体,北大信息科学技术学院爆火的选修课《游戏 AI 中的算法》,课后作业便是用王者荣耀 1V1 的环境做实验……

展望未来,可以期待:借助「开悟」平台走出去的这些人才,将辐射到 AI 产业的各个领域,实现平台上下游生态的全面开花。

本文来自微信公众号:新智元 (ID:AI_era)

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注