一个人精通金庸武侠里的所有武功,这可能吗?现实中很难,但“绝悟“做到了。

11月28日腾讯宣布,由腾讯 AI Lab 与王者荣耀联合研发的策略协作型 AI“绝悟”推出升级版本。“绝悟”一年内掌握的英雄数从1个增加到100+个,实现了王者荣耀英雄池的完全解禁,此版本因此得名“绝悟完全体”。

这意味着,腾讯策略协作型AI的算法能力进一步得到提升,达到了国际领先水平。

升级后的“绝悟”AI不但掌握王者荣耀所有英雄的所有技能,能应对高达10的15次方的英雄组合数变化,还“自带军师”,能够做出最佳的英雄博弈策略选择,综合自身技能与对手情况等多重因素,派出最优英雄组合。

目前,这一“绝悟”完全体版本已在王者荣耀 App 限时开放,公众都可与之对战,亲身体验 AI 在复杂策略、团队协作与微观操作方面的强大能力。11 月 14 日至 30 日,绝悟在 20 个关卡的能力将不断提升,最强的20级于11月28日开放,接受 5v5 的组队挑战。

相关研究还被 AI 顶级会议 NeurIPS 2020 与顶级期刊 TNNLS 收录,展现出腾讯国际一流的 AI 研究与应用能力。

强化学习相关研究被 AI 顶级会议 NeurIPS 2020 收录

由于MOBA游戏本身的复杂性,现有的工作无法很好地解决智能体阵容组合数随着英雄池扩大而爆炸增长的问题,例如,OpenAI的Dota AI仅支持17名英雄。至今,无限制的完整MOBA游戏还远没有被任何现有的AI系统所掌握。

本文提出了一种MOBA AI学习范式,该范式使AI可以在方法论上使用深度强化学习来掌握完整的MOBA游戏,并结合各种新颖和成熟的方法,包括curriculum self-play learning、multi-head value estimation、policy distillation、Monte-Carlo tree-search以及off-policy adaption等,在使用很大的英雄池训练的同时巧妙地解决了可扩展性问题。

注意到在真实游戏中,特别是在复杂的电子游戏中对AI进行评估需要付出昂贵的代价,所以目前游戏AI的研究仍然缺乏大规模的能力测试。为了提供更加具有统计显著性的评估结果,文中开展了迄今最大规模的MOBA AI能力测试,实验表明“绝悟”AI可以击败顶级人类选手。

AI+游戏研究将是腾讯攻克 AI 终极研究难题——通用人工智能(AGI)的关键一步。从绝艺到绝悟,不断让 AI 从0到1去学习进化,并发展出一套合理的行为模式,这中间的经验、方法与结论,长期来看,将有望在大范围内,对医疗、制造、无人驾驶、农业到智慧城市管理等领域带来更深远影响。

AI 策略:红方 AI 铠大局观出色,绕后蹲草丛扭转战局

AI微操:蓝方 AI 小规模交锋精细操作化解攻势

AI协作:蓝方AI团战完美配合以少胜多

Ai微操:AI公孙离完美连招一秀三反杀

40个到100+,英雄池完全解禁

“少林有七十二艺,功夫既有不同,练习之法,亦必各异。学者苟能尽之,则无敌于世矣。”

在王者荣耀中,若每个职业都有4个紫色熟练度英雄,你就能解锁“全能高手”称号。但因为练习时间与精力限制,很少有人能精通所有英雄。

但“绝悟”做到了。技术团队一年内让 AI 掌握的英雄数从1个增加到100+个,完全解禁英雄池,此版本因此得名“绝悟完全体”。

绝悟AI能力演进路线,从MOBA 新手玩家到职业顶尖水平

绝悟 AI 的不同英雄会共享一个模型参数,从零学会单个阵容易如反掌,但面对多英雄组合时就难如登天。在对战中,因为地图庞大且信息不完备,不同的10个英雄组合应该有不同的策略规划、技能应用、路径探索及团队协作方式,这将使决策难度几何级增加。

并且,多英雄组合也带来了“灾难性遗忘”问题,模型容易边学边忘,这成了长期困扰开发者的大难题。

为了应对多英雄组合问题,技术团队先采用引入“老师分身”模型,每个AI老师在单个阵容上训练至精通,再引入一个 AI 学生模仿学习所有的AI老师,最终让“绝悟”掌握了所有英雄的所有技能,成为一代宗师。

团队的长期目标,就是要让“绝悟”手握强兵,学会所有英雄的技能,且每个英雄都能达到顶尖水平,因此在技术上做了三项重点突破:

首先,团队构建了一个最佳神经网络模型,让模型适配MOBA类任务、表达能力强、还能对英雄操作精细建模。模型综合了大量AI方法的优势,具体而言,在时序信息上引入长短时记忆网络(LSTM)优化部分可观测问题,在图像信息上选择卷积神经网络(CNN)编码空间特征,用注意力(Attention)方法强化目标选择,用动作过滤(Action Mask)方法提升探索效率,用分层动作设计加快训练速度,用多头值估计(Multi-Head Value)方法降低估计方差等。

网络架构

其次,团队研究出了拓宽英雄池,让“绝悟“掌握所有英雄技能的训练方法——CSPL(Curriculum Self-Play Learning,课程自对弈学习)。这是一种让 AI 从易到难的渐进式学习方法。

第一步是挑选多组覆盖全部英雄池的阵容,在小模型下用强化学习训练,得到多组“教师分身”模型;第二步是蒸馏,把第一步得到的多个模型的能力迁移到同一个大模型中;第三步是随机阵容的强化训练,在蒸馏后的大模型里,随机挑选阵容继续强化训练和微调。通过多种传统和新颖技术方法的结合,实现了在大的英雄池训练,同时还能不断扩展的目标。

CSPL流程图

设计思想:任务由易到难,模型从简单到复杂,知识逐层深入。

使用CSPL方法扩展英雄池有明显优势

最后,团队还搭建了大规模训练平台—腾讯开悟(aiarena.tencent.com),依托项目积累的算法经验、脱敏数据及腾讯云的算力资源,为训练所需的大规模运算保驾护航。开悟平台于今年 8 月对 18 所高校开放,未来希望为更多科研人员提供技术与资源支持,深化课题研究。

排兵布阵——“AI教练”智用田忌赛马术

一场比赛中,胜负的关键不仅在于拥有“绝悟”这样的顶尖选手,排兵布阵的教练也非常重要。从古时的田忌赛马,到足球场上的攻防策略,莫不是一个博弈的过程。团队的第二个目标,就是为“绝悟”找到一个能排兵布阵的AI教练,也就是在游戏BP环节(禁选英雄)的最优策略。

绝悟 vs 人类BP测试

简单的做法是选择贪心策略,即选择当前胜率最高的英雄。但王者荣耀有上百个英雄,任意英雄间都有或促进或克制的关系,只按胜率选择很容易被对手针对,更需要综合考虑敌我双方、已选和未选英雄的相关信息,最大化己方优势,最小化敌方优势。

受到围棋 AI 算法的启发,团队使用蒙特卡洛树搜索(MCTS)和神经网络结合的自动 BP 模型。MCTS 方法包括了选择、扩张、模拟和反向传播四个步骤,会不断迭代搜索,估算出可选英雄的长期价值。因为其中模拟部分最耗时,团队用估值神经网络替代该环节,加快了搜索速度,就能又快又准地选出具备最大长期价值的英雄。要提到的是,围棋等棋牌类游戏结束就能确定胜负,但 BP 结束只到确定阵容,还未对战,所以胜负未分。因此团队利用绝悟自对弈产生的超过3000万条对局数据训练出一个阵容胜率预测器,用来预测阵容的胜率。进一步的,胜率预测器得到的阵容胜率被用来监督训练估值网络。

除了常见的单轮 BP ,AI 教练还学会了王者荣耀 KPL 赛场上常见的多轮 BP 赛制,该模式下不能选重复英雄,对选人策略要求更高。团队因此引入多轮长周期判定机制,在BO3/BO5赛制中可以全局统筹、综合判断,做出最优 BP 选择。训练后的 BP 模型在对阵基于贪心策略的基准方法时,能达到近70%胜率,对阵按位置随机阵容的胜率更接近90%。

至此,绝悟前有多个强兵,后有军师辅佐,不折不扣的一代宗师终于练成了。

研发拓展,从监督学习到强化学习,再回到监督学习

团队同时研发了监督学习(SL)方法,针对大局观和微操策略同时建模,让绝悟同时拥有优秀的长期规划和即时操作,达到了非职业玩家的顶尖水平。相关技术成果曾在2018年12月公开亮相对战人类玩家。其实,团队对于监督学习的研发一直在持续进行中。今年11月14日起开放的绝悟第1到19级,就有多个关卡由监督学习训练而成。

监督学习方法论文地址:

https://arxiv.org/abs/2011.12582

虽然在理论上,监督学习训练出的 AI 表现会逊于强化学习的结果,但此类研究极具研究与应用价值,相关技术成果还入选了顶级期刊 TNNLS 。

本文提出了JueWu-SL(绝悟监督学习版本)--首个利用监督学习在MOBA游戏中达到人类高手水平的AI系统。同时本文是首次提出,将多模态特征表征游戏状态,利用深度卷积和全连接神经网络来同时对大局观和微观策略进行建模;并且,研究者提出了一种基于场景采样的数据预处理方法,使得在不同的场景下AI智能体的能力都有所提高;大量实验表明了JueWu-SL的能力达到了高分段人类玩家水平,这也是首次基于监督学习的AI智能体在MOBA游戏中取得如此效果。

研究方法论上看,监督学习对于AI智能体的研发有很高的价值。首先,通过挖掘人类数据预测未来的监督学习是通常是研发游戏 AI 的第一步,并在众多视频游戏上取得良好效果。比如在明星大乱斗等复杂电子游戏中,纯监督学习能也学到达到人类高手玩家水平的AI智能体。第二,它能复用为强化学习的策略网络,如 AlphaGo 就是监督学习结合强化学习。第三,它还能缩短强化学习探索时间,比如 DeepMind的星际争霸AI AlphaStar 就用监督学习做强化训练的隐含状态。

应用上它更是具有诸多优点,比如训练快,在16张 GPU 卡上只需几天,而强化学习则需几个月。其次,拓展能力强,能完成全英雄池训练。最后,其使用真实玩家的脱敏数据,配合有效采样,产出的 AI 行为上会更接近人类。

网络架构