还记得今年五一假期时,腾讯在王者荣耀游戏中上线的绝悟 AI 挑战吗?大多数玩家只能将将挑战前几个难度,AI 击败你之后还会在聊天里嘲讽。在 AlphaGo 的阴影笼罩围棋之后,人工智能也把触角延伸到了最流行的游戏中。
最近,腾讯 AI Lab 在王者荣耀中的研究也获得了学界的认可,研究人员提交的论文也被全球顶尖人工智能会议 NeurIPS 2020 收录。而在 11 月中旬,升级版的绝悟 AI 挑战也在王者荣耀中上线,20 个难度关卡的设置为玩家们留下了充足的挑战空间。在游戏中,人工智能由 5 个智能体互相协作,并不拥有全局视野,反应速度也被调整为和人类类似。在高级关卡中,AI 也会和你在开战前进行挑选英雄的 BP 博弈。在 11 月 28-30 日限时开放的绝悟升级版最终挑战里,玩家和 AI 可以选择目前版本游戏里几乎所有的英雄,也接受 5 人组队挑战。看起来自我博弈的 AI 已经达到了无限接近成熟的水平。根据已经进行的一些比赛来看,绝悟通过自我博弈学习,早已学会了蹲草丛这样的操作:如果用公孙离这样能秀的英雄,1v3 也是不难的事:在挑战开启以后,玩家们发现人机对战通常会变成这个样子:选英雄斗智斗勇,准备用上套路——一进游戏刚拉开架势,就被 AI 拿了一血。据 AI Lab 的研究人员透露:「有些冷门英雄 AI 玩的非常强势,到时候可能会颠覆一部分大家对于游戏的认知。」在腾讯 AI Lab 及腾讯天美工作室发表的论文《Towards Playing Full MOBA Games with Deep Reinforcement Learning》中,研究人员们提出了 MOBA AI 学习范式,支持使用深度强化学习来玩完整的 MOBA 游戏。具体而言,该研究将新的和已有的学习技术结合起来,包括课程自我博弈学习、策略蒸馏(policy distillation), 离策略自适应(off-policy adaption)、多头值估计(multi-head value estimation)、蒙特卡洛树搜索等,在训练和用大量英雄玩游戏,同时巧妙地解决了可扩展性的问题。多人在线竞技类游戏 MOBA 长久以来一直吸引着众多玩家,其中的王者荣耀、英雄联盟、Dota 2 等最近也常被 AI 研究者当做人工智能的实验场,其中的多智能体、巨大的状态动作空间、复杂的环境等元素向 AI 系统提出了极大的挑战。开发用于 MOBA 游戏的 AI 引起了广泛的关注。然而,当 OpenAI 的 Dota AI 将游戏限制在只能选择 17 名英雄的情况下,若想扩展英雄库,现有的工作在处理由智能体组合(即阵容)爆炸性增长所导致的游戏复杂性方面的问题存在难度。因此,现有的 AI 系统并不能掌握完全没有限制的 MOBA 游戏。在日均活跃玩家数量超 1 亿的国民手游王者荣耀上进行测试,展示了人类可以打造出能够击败顶级电子竞技玩家的超级 AI 智能体。通过文献中首次对 MOBA AI 智能体进行大规模性能测试,证明了该 AI 的优越性。论文地址:https://arxiv.org/abs/2011.12692为了解决 MOBA 游戏的复杂性,该研究结合了新的和现有的学习技术,用于神经网络架构、分布式系统、强化学习、多智能体训练、课程学习和蒙特卡罗树搜索。尽管该研究使用王者荣耀进行研究,但这些技术同样适用于其他 MOBA 游戏,因为 MOBA 游戏的游戏机制是类似的。研究人员表示,这套强化学习系统运行在一个物理集群上。后续进行的控制变量、时间和性能比较实验都使用了相同的资源量进行训练:320 张 GPU 卡以及 35000 个 CPU 核。在模型架构中,绝悟使用了actor-critic结构。
策略更新
研究人员使用了双边截断的PPO方法:
值函数更新
模型使用了游戏状态的完整信息,包括隐藏的观测信息作为值函数的输入来降低值估计的方差。值得注意的是,这种方式仅在训练阶段使用,因为测试时只需要策略网络。为了更准确地估计值函数,研究人员引入了multi-head value(MHV)方法。从下图可以看出,reward被分成了5大类。损失函数定义如下:
大型英雄池会导致大量的阵容。当使用自我博弈强化学习时,10 个智能体玩一个 MOBA 游戏面临着运动目标不稳定的问题。此外,不同的 self-play 游戏阵容各不相同,这使得策略学习更加困难。在训练中出现紊乱的智能体组合导致性能下降。这需要一个范式来指导 MOBA 中的智能体学习。王者荣耀的 AI 不仅需要会操作英雄,还需要会选英雄,更加需要会玩套路,且限制玩家的套路。扩大英雄池所带来的一个新问题是 BAN 选机制(Ban Pick)。在 MOBA 比赛开始之前,两支队伍经过挑选英雄的过程,这将直接影响未来的策略和匹配结果。给定一个庞大的英雄池,例如 40 个英雄(超过 1011 个组合),一个完整的树搜索方法,如 OpenAI Five[2]中使用的 Minimax 算法,在计算上是困难的。为了解决这个问题,研究者利用蒙特卡洛树搜索(MCTS)和神经网络开发了一种 BAN 选智能体。MCTS 会估算每次选择的长期价值,价值最大的英雄将被选中。该研究使用的特定 MCTS 版本是应用于树(UCT)的上置信界。在征召模式 Ban 选的过程中迭代地构建一棵搜索树,其中每个节点代表一个状态(两个团队都已经选择了英雄),每条边代表一种动作(选择尚未选择的英雄),然后会产生下一个状态。研究人员使用了 3000 万样本 (自对弈产生) 训练胜率预测器,使用了 1 亿样本 (样本基于 MCTS 方法的挑选策略产生) 对值网络进行了训练。除了常见的单轮 BP ,AI 教练还学会了王者荣耀 KPL 赛场上常见的多轮 BP 赛制,该模式下不能选重复英雄,对选人策略要求更高。团队因此引入多轮长周期判定机制,在 BO3/BO5 赛制中可以全局统筹、综合判断,做出最优 BP 选择。训练后的 BP 模型在对阵基于贪心策略的基准方法时,能达到近 70% 胜率,对阵按位置随机阵容的胜率更接近 90%。腾讯 AI Lab 训练了一个英雄池大小为 40 的 AI 版本,覆盖了所有英雄角色,包括坦克、法师、辅助、刺客、射手和战士。英雄池的规模是 OpenAI 的 2.4 倍,英雄组合复杂度提升了 2.1×10^11 倍。在挑选英雄阶段,人类玩家可以从 40 个英雄中随机挑选。在对局中,研究人员没有对游戏规则进行任何限制,玩家可以任意购买物品或者使用自己喜欢的召唤师技能。为了测试 AI 的真实水平,腾讯邀请了王者荣耀职业玩家来和 AI 进行对抗。从 2020 年 2 月 13 日到 4 月 30 日,AI 每周都会和职业玩家进行多次对弈。职业玩家被鼓励使用他们擅长的英雄以及尝试不同的游戏策略。在最初的 10 周时间内,人机对决共进行了 42 场,AI 赢了 40 场(95.2% 的胜率,置信区间[0.838,0.994])。2020 年 5 月 1 日到 5 月 5 号,腾讯 AI Lab 将 AI 部署到王者荣耀正式服务器上和玩家公开对抗,对参与玩家设置了段位门槛。为了鼓励玩家参与,玩家如果击败了 AI 就能够拿到一枚荣誉徽章。最终,绝悟 AI 与顶尖玩家对抗了 642,047 局,AI 赢得了其中的 627,280 局(胜率 97.7,置信区间[0.9766, 0.9774])。对比其它的公开游戏 AI 测试:AphaStar 和 OpenAI 各打了 90 和 7,257 场,而且对参与者没有游戏水平的要求。图 3:训练过程:a)教师模型的训练,即 CSPL 的第一阶段。b)蒸馏(distillation)过程中的 Elo 变化,即 CSPL 的第二阶段,学生模型的收敛 Elo 略低于教师模型。c)和 d)分别针对 20 个英雄和 40 个英雄的情况,将 CSPL 的 Elo 变化与基线方法进行比较。注意基线方法中没有第一阶段和第二阶段。CSPL 在扩展英雄池时具有比基线方法更好的扩展性。人们对于研究者们使用的 ELO 评分机制可能会留有印象:ELO 等级分在棋类游戏和 AI 研究领域经常被用做评价标准,在 AlphaGo 的论文中,ELO 也被用于评判 AI 的下棋水平。具体来说,Top10% 水平的人类玩家 ELO 分数大约为 1050,Top 1% (王者荣耀中的王者段位)大约为 1500,Top 0.01% 大约为 1700,职业玩家的水平应该在 1730 以上。在图 3 中,研究者说明了 CSPL 的整个训练过程和基线方法。表 1 对比了两种方法的具体训练时间。为了进一步分析该方法中的组件,研究者进行了几项内部控制变量实验,结果如图 4 所示。关键部分的控制变量实验:a)用 Elo(带有 CSPL 和不带有 CSPL)比较训练方法;b)使用 Elo 比较值函数的不同组成;c)使用 Elo 比较策略更新方法;d)内置机器人、使用人类游戏数据进行有监督学习的智能体和最终的强化学习智能体的 Elo 分数;e)在使用不同的选择方法时,比较平均获胜概率(RD:随机选择英雄,HWR:挑选获胜概率最大的英雄,MCTS:使用中高段位中的征召模式选择英雄。)你肯定会关心腾讯 AI Lab 在 NeurIPS 2020 论文研究里测试的 40 个英雄都包括哪些:可见里面不仅有瑶、孙膑等操作相对简单的英雄,也有露娜、公孙离这种复杂的——腾讯选择的还都是人类玩家在对战时经常用的那些。不过提交给 NeurIPS 2020 的论文是在几个月前完成的,从目前游戏中开放的第二十关挑战来看,在人机对决中绝大多数的英雄(除了两三个新英雄)都可以选了。腾讯 AI Lab 在王者荣耀上的研究可谓成果丰厚,除了这篇 NeurIPS 2020 论文之外,腾讯 AI Lab 还有一篇监督学习方面的研究被 IEEE 期刊 TNNLS 收录《Supervised Learning Achieves Human-Level Performance in MOBA Games: A Case Study of Honor of Kings》:https://arxiv.org/abs/2011.12582在第二篇论文中,研究人员提出了一套适用于 MOBA 游戏的特征和标签。在此基础上,AI 建模任务被定义为一个层级的多分类问题,通过神经网络模型来解决。可以看到,AI 在游戏中使用的是和人类玩家一样的视角。在人类玩家打 MOBA 游戏时,通常会分为三路开局:战士走上路,射手辅助走下路,法师在中路。然而通过自我博弈训练出的绝悟几乎不采用这样的套路,这或许为人类玩家未来提高战术水平提供了新的思路。在短短两年时间里,绝悟从业余玩家水平提升到了精通 100 个英雄,甚至还能教人类打王者,这样的速度可谓惊人。最新的版本因而得名「绝悟完全体」。最后,如果有人对战 AI 有了很大的挫败感,实践证明人工智能打王者荣耀的能力还不是完美的。有玩家在对战时看到了 AI 的迷惑之语:另外,基于强化学习的绝悟还需要耗费大量的服务器资源,所以人机对战的活动是限时的。希望在不久的将来,我们能在队友断线重连的时候有绝悟 AI 来接手,完成五杀。