AI被人类选手“虐杀”!DOTA2顶级职业赛人类战胜AI!

今天,DOTA 2 全球顶级赛事 Ti8(The International DOTA2 Championships)淘汰赛进入到第三日,除了惋惜中国战队 VG 遗憾出局之外,之后举行的 OpenAIFive 大战 Pain 战队则成了一大亮点,不同于上次 OpenAI 大败 Dendi,这一次 OpenAIFive 首场以败北告终,似乎意味着人工智能在游戏领域的统治能力仍有待于提升。

图丨OpenAIFive 开发团队

这是一场 BO1 的比赛,也就是一局定胜负。OpenAIFive 所对阵的是来自南美赛区的Pain Gaming(PG)。这支队伍是本次 TI 18 支队伍中,首个被淘汰的队伍。

OpenAIFive 的对战规则是:没有 Ban 选回合,两边阵容已经决定好,通过猜硬币来决定哪一边。机器的操作反应时间是在 0.2 秒之后,这是因为人类有反射弧,但是机器没有。加入延迟操作后,比赛会更加公平。

本场比赛对于 OpenAIFive 来说,是首次在 DOTA2 最高级比赛上以 5 对 5 的形式对阵人类职业选手。OpenAI 选择的阵容是直升机、巫妖、死亡先知、寒冰室女、潮汐猎人;PG 的阵容是恶魔巫师、瘟疫法师、巫医、狙击手、斧王。

图丨Pain Gaming(PG) 战队

比赛刚刚开始,PG 通过使用诡计之雾拿到了潮汐猎人的第一滴血。这还不算完,OpenAIFive 在自己的下路一塔旁边插了一个真眼,实际上防御塔是自带真实视野的,OpenAIFive 的做法无异于浪费团队资源。

在 2 分钟左右的时候,OpenAIFive 中单的潮汐猎人在满状态的情况下回家补给自己的状态。4 分钟左右,OpenAIFive 的直升机与 PG 的巫医发生冲突,导致双方均阵亡。通过这次交锋可以看出,OpenAIFive 在计算伤害方面非常精准,直升机最后一击刚刚够杀死巫医。

6 分钟的时候,潮汐猎人身上购买了一个显影之尘。这是一件为了识破隐身的消耗品,不过 PG 的阵容没有一个英雄会使用隐身技能。

OpenAIFive 在 8 分钟时下路集结了三个人,完成了对瘟疫法师的击杀。最神奇的事情,直升机对对方攻击力的把握非常准确,在自己仅剩 7 滴血的时候杀死了对方。

10 分钟的时候,双方人头扳平。狙击手的经济为 4500,全场第一。并列第二名是 PG 的斧王和 OpenAIFive 的死亡先知。

从前期来看,OpenAIFive 非常注重击杀,而经济发育方面落后了不少。从 13 分钟开始,OpenAIFive 选择 5 人集合从中路推进,并且选择使用诡计之雾对 PG 的队员进行追击。前者从中路一直追到了下路,并完成了一次 1 换 3。

15 分钟时,OpenAIFive 再次集合 5 人进行推进,这次他们的目标是下路一塔。这次推进的结果超过了预期,OpenAIFive 不仅夺下了下路二塔,还击杀掉了对方的狙击手和斧王。

OpenAIFive 会给出双方的获胜几率,从现场的图表上来看,电脑在比赛全程的胜率都是将近 100%。

比赛 20 分钟的时候,巫妖在中路把大招施放给了落单的狙击手。可是巫妖的大招要在人多的时候才能发挥作用。过了两分钟后,PG 的斧王使用闪烁匕首进行偷袭,就算是给电脑设定了 0.2 秒的反应时间,这种人类根本不可能反应过来的操作还是被电脑躲开了。

图丨截止至比赛中段,PG 一直处于经济领先

讽刺的是,作为 OpenAIFive 2 号位的潮汐猎人,此时的经济成为了全队倒数第二。

在视野方面,OpenAIFive 存在严重的 BUG。除了上文提到的防御塔下插真眼外,机器还把真眼和假眼插到了主基地的旁边,而在这旁边就是两支拥有真视视野的防御塔。

30 分钟的时候,OpenAIFive 再次击杀了肉山。不过拿走复活盾和奶酪的人是经济排在全场第 6 的巫妖。一般来说,复活盾和奶酪会放在队伍 1 号位和 2 号位手里。

在比赛进入中后阶段,OpenAIFive 突然改变了自己的作战风格。前期他们非常喜欢击杀对方英雄,而现在 OpenAIFive 开始全场补兵和清理野区。33 分钟时,中路的死亡先知在没有对方视野的情况下释放了大招。

34 分钟时,死亡先知利用 Eul 的神圣法杖躲过了斧王的战斗怒吼。这让解说们认为,操作迟应该更长一些,现在看起来还是不太平衡。36 分钟时,OpenAIFive 被 PG 团灭,死亡先知、潮汐猎人均阵亡。

PG 选择在此时进攻对方高地,潮汐猎人在此时选择买活,死亡先知再一次在视野内没有任何敌人的时候释放了大招。

截止至 40 分钟,OpenAIFive 的信使已经被击杀了两次。随后双方爆发了一场团战,斧王的技能依然被对方利用装备和技能躲掉了,现场的解说再一次吐槽了这个 0.2 秒延迟。

40 分钟时,OpenAIFive 选择进攻肉山。死亡先知虽然购买了大勋章装备,但是并未对肉山使用。随后机器在自己的远古野区连续插了两个假眼,每个视野道具的视野都不能叠加,因此这两个假眼等于一个。

43 分钟时,死亡先知第三次在没有任何敌人的时候释放大招。

图丨 OpenAIFive 击杀数领先

44 分钟时,OpenAIFive 的击杀数领先对方 11 个,但是经济落后更多。现场解说认为,OpenAIFive 主要赢在操作上,瞬间反应的操作让斧王、恶魔巫师等拥有施法时间的英雄毫无作用,因此操作延迟设定为 0.2 秒一事有待商权。

46 分钟时,寒冰室女在上路停止了操作,被路过的斧王单杀。48 分钟,买活的飞机再次被击杀,复活时间为 115 秒。此时 OpenAIFive 判定,PG 的胜率为 75%。

51 分钟时,OpenAIFive 的三路高地被破,且四人在无法买活的情况下阵亡。52 分钟时,PG 获得了胜利。

比赛的后期局势终于掌握在了人类手里,成型的火枪无人能够制裁,在失去了对 AI 的试探之后比赛的观赏性也随之降低,AI 虽然表现出来了不少亮点,但距离人类顶级选手的差距依然不可忽视。

值得注意的是,整场比赛中人类方的 NEC 和斧王前期也都出现了计算失误大招没能收掉对方的问题,跳刀先手更是被对方顶着惊人的延迟躲掉。如果这样无懈可击的操作交给人类选手的意识和局势判断能力来驾驭,不再那么随意的交掉关键性技能,那么人类选手可能将毫无机会。

根据大数据预测分析多数时间都给了 AI 方 90% 以上的胜率,随后高地一波降到了 70%,50 分钟的时候给出了 30% 的反水结果。而最终结果是经历了 53 分钟的鏖战之后,人类拿下本场比赛的胜利。

DOTA 2 是一个高难度游戏。它要求选手在比赛中展现出团队精神、战略思维和极快的反应能力。OpenAI 已经花了较长一段时间来探索如何“攻克”DOTA 2,并于 2017 年 8 月在 TI7 上首次登场,在中单 SOLO 模式用影魔打败了 Navi 的职业选手 Dendi,进而引发了大量的关注。不过在当时,OpenAI 虽然打败了职业选手 Dendi,但那场比赛设置非常有限,因此不能代表真实的比赛。

但今年,在完善和调整了机器学习系统所需的硬件和运算量后,OpenAI 已经突破了许多限制,从而缩短了人与机器之间的竞争差距。

图丨 OpenAI 今年 8 月 6 日的比赛现场(来源:OpenAI 官方博客)

2018 年 6 月,OpenAI 开发的 AI 已经能够组队在 5V5 对战中战胜 DOTA 2 业余玩家,这些玩家的平均天梯分数超过 4200 分。匹兹堡卡内基梅隆大学的研究员 Noam Brown 曾表示:“DOTA2 是一个极其复杂的游戏,能打败强大的业余玩家就已经很不容易了,而且,处理DOTA2 这种大型游戏中的隐藏信息是一个很大的挑战。”

图丨今年 6 月,OpenAI 的 AI 团队击败了 OpenAI 的员工团队(来源:麻省理工科技评论)

到了今年 8 月初,OpenAI 迎来一个新的巅峰:其 Five 系统以 2:1 的成绩战胜了人类队伍。而这场比赛的人类选手——Blitz、Cap、Fogged、Merlini 和 MoonMeander,平均水平超过了 99.95% 的 DOTA 玩家,其中的四人都参加过职业比赛。值得一提的是,在当时的第三局比赛中,观众故意针对 Five 选择了较差的阵容,但 OpenAI 同样在比赛中展示了团队的初步成果,比如 Five 对游戏的理解、对形势的判断以及对获胜概率的预测,某些预测甚至出乎意料。

这些结果都表明,OpenAI Five 是迈向可以处理现实世界的复杂性和不确定性的高级 AI 系统。

图丨 8 月 6 日的比赛中,Five 仅耗时 14 分钟就赢下了比赛,而平均一场完整 DOTA比赛耗时 45 分钟左右(来源:OpenAI 官方博客)

根据 OpenAI 此前的介绍,OpenAI Five 由五个单人模式、1024 单元的长短期记忆 (LSTM) 网络,每个网络的大小与蚂蚁的大脑大小相当。它通过参加大量的比赛来熟悉 DOTA2 的相关技能,并在训练期间每天都能获得高达 180 年的游戏经验,代表了五个 AI 共 900 年的经验,这是人类团队永远无法实现的。

OpenAI 创建人工智能时使用的是机器学习的一种方法——强化学习。这种技术看似简单,但是能让 AI 习得非常复杂的行为。让 AI 学习的过程是,把 AI 放到虚拟环境中,并通过自我尝试学会实现目标。开发者可以设定奖励机制(比方说在 AI 杀掉敌人后奖励机器系统),然后让 AI 一遍遍进行游戏。

这些 DOTA 机器人的自我训练量惊人,并且会连续训练几个月。研究人员说:“它开始时在地图上乱走,但是,几个小时后,它开始具备基本技能。如果一个人需要花 1.2 万到 2 万小时才能成为专业游戏玩家,那 AI 的速度要快得多,因为每天积累的游戏经验是一个人一生积累经验的 100 倍。”

OpenAI 通常的开发流程是从头开始训练系统的每个版本。但是,OpenAI Five 自 6 月 9 日以来,已经经过六个大版本修正,每个新版本系统都使用前一个版本的参数进行初始化,然后再进行训练。具体而言,OpenAI 团队在一种迭代训练工具(称为“手术”)上投入了大量资源,从而实现模型能够将旧的参数映射到新的网络架构上。

例如,当第一次训练插眼(Dota 术语)时,共用了一个 action head 来决定英雄的移动方向和插眼位置。但是 Five 往往会把眼插在它试图前进的方向上,于是团队推测这主要是因为 OpenAI Five 将其大部分运算力分配在了移动上。随后团队利用“手术”工具让将一个 action head 分为完全相同的两个,并使用相同参数进行初始化。

图丨可视化模块显示每个英雄被选中后 OpenAI Five 的预期获胜概率

6 月下旬,OpenAI 团队开始在系统中添加了一个获胜概率的输出,使得 OpenAI Five 能够反馈和修正预测的内容。当后来考虑征召模式时,团队意识到可以用这一概率来估计任一阵容的获胜概率——仅在比赛最开始看一下双方选的阵容就可以了。在接下来的一周内,OpenAI 团队自行模拟了 1100 多万个可能的英雄阵容的画面输入给 Five 系统,并写了一个搜索树(数据结构)来寻找 OpenAI Five 的最佳阵容选择策略。

从 6 月击败 4000 分到 8 月碾压 7000 分,OpenAI 还通过一种名为近端策略优化(Proximal Policy Optimization)的强化学习算法进行训练。在六月的比赛中,该系统更是通过 Google Cloud 消耗了惊人的 128,000 个 CPU 内核和 256 个 Nvidia P100 GPU。

据估计,训练这一 DOTA 系统需要的资源如下(注:1 petaflop/s-days 是指一天执行每秒 1015 次神经网络操作,或总计 1020 次操作):

1v1 模型 l:8 petaflop/s-days

6 月 6 日的模型:40 petaflop/s-days

8 月 5 日的模型:190 petaflop/s-days

图丨 8 月 6 日的最新网络架构(来源:OpenAI 官方博客)

据 OpenAI 官方博客介绍,8 月份的新模型中,输出可以预测英雄在未来一段时间的预计位置。以下视频就突出显示了 Sven 在 6 秒后的预测位置:

除此之外,还可以训练输出来预测各种其他统计数据,比如补刀数、推塔数等:

自开发专注 DOTA 2 的 AI 以来,Open AI 的团队一直以参加此次的 TI8 为目标,团队也曾经表示,“我们不知道它是否可以实现,但是我们相信通过自身的努力(和运气),机会还是很大的”。而在这次的 TI8 中,众所周知,如今顶尖职业选手的天梯分普遍在 9000 分上下,从碾压 7000 分后,按照此前的学习速率来计算,OpenAI 取得如此成绩,或许真的是运气和努力兼备。