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

人工智能
为了开发出能够更加「泛用」的AI,学界的研究重心也开始逐渐从棋盘类游戏转向了更复杂的游戏,包括非完美信息博弈游戏(比如扑克)以及策略类游戏(比如MOBA和RTS游戏)。

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 gamecoregamecore-server.exe server --server-address :23432

安装hok_env包:

git clone https://github.com/tencent-ailab/hok_env.gitcd 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产业的各个领域,实现平台上下游生态的全面开花。

责任编辑:武晓燕 来源: 新智元
相关推荐

2024-01-25 10:23:22

对象存储存储数据

2024-04-08 00:09:10

人工智能数字大模型

2009-06-17 15:51:55

java有什么用

2017-11-22 15:50:58

Netty微服务RPC

2022-05-05 07:38:32

volatilJava并发

2017-09-19 15:22:44

2024-02-28 16:18:41

2020-08-10 07:44:13

虚拟内存交换内存Linux

2021-02-21 23:49:45

比特币货币人民币

2024-02-19 00:00:00

Python​starmap函数

2024-10-18 10:00:00

云计算虚拟

2021-09-10 07:59:31

中断锁Java多线编程

2021-07-13 09:08:19

磁盘阵列系统

2020-06-04 18:21:34

CPU缓存Intel

2023-12-13 15:28:32

Python工具数据

2022-01-03 17:26:12

区块链物联网安全

2023-07-21 17:08:30

2020-10-20 09:57:04

量子计算人工智能技术

2021-02-18 07:55:27

数据湖存储数据

2021-04-24 10:59:30

CSS伪类占位符
点赞
收藏

51CTO技术栈公众号