dota2openai挑战攻略(DOTA2浅谈OpenAI在DOTA2的发展过程)(1)

NGA阀木部翻译,转载请注明出处

前言

dota2openai挑战攻略(DOTA2浅谈OpenAI在DOTA2的发展过程)(2)

8月22日,当一队穿着印有OpenAI印花T恤的科学家们登上温哥华罗渣斯会馆的主舞台时,在场的观众爆发出无比热情激烈的掌声。

他们来到这里是为了能够将他们研发的人工智能在DOTA2这一开创5V5竞技对抗游戏先河的游戏中与真人的职业选手来一场正面的比赛交锋。

这场历史性的比赛如果谈到项目伊始得追溯到2016年的冬季,当时由CTO Greg Brockman带领的OpenAI研究团队正在寻找具有公平竞技性且具有挑战性的游戏环境以便能够测试他们的人工智能研究技术和人类的专业项目选手的对比差距。要知道游戏是测试人工智能最好的对象,因为他们有着复杂的计算模式以及丰富的人机交互项,而且最关键的是可以在赛后生成大量的可见数据。

作为一家非盈利性的人工智能研究机构,他们的最终目标是创造一个能在所有通用系统中执行多项复杂命令的通用型人工智能(AGI)。而OpenAI的小组认为人工智能如果能在复杂的电脑游戏环境中达到人类的执行力的话将会是实现AGI的重要的第一步,更别提击败真正的人类也是对于人工智能的分析处理能力的最好证明。(这就不得不提到2016年在围棋大赛中出尽风头的AlphaGo了,这次比赛中AI的胜利推动了人工智能在游戏界的发展,而且同时确保了AlphaGo在AI发展历史上的里程碑一般的地位)

OpenAI的研究者们在选择目标之前也调查了Twitch上和Steam上的很多其他游戏,最终他们选择了DOTA2的主要原因是因为DOTA2可以在Linux上运行并且本身提供外部程序接口(API),这为他们的开发提供了不小的便利性。

研究起步

然而其实让AI去像人一样去理解复杂的局势是相当困难的,之前的AI只能通过输入的指令来改变其战略,比如如何购买物品、补刀、反补、推塔,这些全部都仅仅是已经录入的代码罢了,而且AI也不会根据不同的局势变更自己的指令。

在2017年初,OpenAI的团队在创意工坊上架了他们的第一个脚本机器人,作为试水作这个脚本击败了大多数的非职业玩家。然而研究人员无法继续将这个脚本继续编写以达到专业比赛级别的高复杂性水准,所以他们只能抛弃了基于V社提供规则的代码并且转而用增强式学习能力(RL)去取代之。

基于RL的AI其实并不是在正常的5V5的环境中接受训练的,而是被至于游戏中某个具有简化的规则和目标的自定义挑战任务中。

AI的目的性很简单,就是在一个圆形的地图上通过操作去击杀一个人为控制的英雄罢了,然而实现这个看上去很简单的目标要比预想的难得多,主要的原因在于真人的操作会和按照给AI设定的训练预测的操作不同。而为了解决这个问题,开发团队开始在训练中加入大量随机化的命令从而根据当前的状态去选择下一步的动作而不是循规蹈矩,比如英雄会在遇到地形阻碍的时候降速或者改变行动方向。

随机化提高了RL的策略性,并且使得AI能够在自定义挑战中已经可以慢慢的去学会如何击败当时的研究人员操作的英雄。

当研究团队将1V1目前表现下的AI技术应用到DOTA2中的中单SOLO机器人脚本中时该脚本的智能取得了飞跃式的增长,而且在2017年的7月时在中路SOLO赛的表演中击败了前职业选手William“Blitz”Lee。

虽然说如果将5个这样的AI揉在一起并且运行相同的算法就已经可以达到正常游戏5V5的水准。但是开发团队仍然希望更加进一步强化他们AI的1V1的能力。

在去年在西雅图的TI7的比赛中,在OpenAI和Dendi的中路SOLO比赛中仅仅只用了10分钟就赢得了第一场的胜利,而第二场更是以Dendi在开局后几分钟就缴械投降落幕。赛后Dendi反复强调“这个家伙很可怕!”。

dota2openai挑战攻略(DOTA2浅谈OpenAI在DOTA2的发展过程)(3)

在TI7表演赛中击败了Dendi后,团队宣称该项目的下一部计划是完整的5V5竞技,所以敬请期待2018年的TI8国际邀请赛。

新型人工智能

OpenAI利用循环神经网络(RNN)中的长短期记忆(LSTM)来构建了AI的大脑核心。它精通长时间的信息储存记忆以及会自动根据序列进行分类处理和预测数据。其实简单来说本质就和家长教自己的孩子如何做一些简单的事情一样,你得教他们分清楚不同事物的好坏,而且你还得学着怎么教才能让他们牢牢的记住。

每一个AI的神经网络都包含着一个单层1024单元的LSTM,可以记录游戏的状态并且做出适当的动作。比如执行一个释放技能的操作,AI需要4个指标去判断(移动、攻击、释放技能、使用道具),然后AI还需要捕捉到目标的单位然后判断和自己的距离(在AI看来这些都是映射在X、Y上的坐标),然后再去判断技能释放的操作和时间最后释放该技能。OpenAI最终将整个游戏离散化为每个英雄大约170000次可能的动作(相比国际象棋的35点简直是天文数字,不比较就不会有伤害)

最终新一代的AI开始从自我游戏中去学习而免去了人类的手把手教学。而为了避免可能会导致AI的训练循环的BUG,AI在80%的时间都是在和自己相同的AI对战,而另外20%的时间则是在和上个版本的自身对战。

这些AI指令在128000个CPU内核和256个GPU上每天无休的反复运行,平摊到每天游戏中的训练量累计大约为正常时间上的180年左右。

OpenAI还引入了一个称为“团队精神”的超级复杂的参数,范围从0到1并且指定权重以确定每个OpenAI Five的英雄应该取自己的功能和在整个团队功能的平均值。

人工智能的学习能力

OpenAI开发办公室的老传统就是每周一的晚上整个团队会聚在一起玩DOTA2(当然现在改为了和他们的AI对战)。在今年的5月的某天,AI在一场持续了45分钟的比赛中首次击败了他们。在6月时,研究团队邀请了一队天梯分数大约在4000-6000不等的业余选手到他们的办公室去打人机大战,结果AI轻松取得了胜利。

比尔盖茨在比赛结束后发布了推文“AI在电子游戏DOTA2中击败了人类表现出他们已经有胜利所需的团队合作能力,同时这也是人工智能发展的一个重要里程碑”

根据整个研究团队的调查发现,目前哪怕是全新的AI使用他们的算法中也仅仅只需要2天的训练就已经会比办公室里的任何人都要强。所以他们带着他们的AI将目光投向了温哥华的DOTA2第八届国际邀请赛,希望它能在那里击败一支真正的劲旅。

AI会作弊吗

虽然OpenAI的开发团队态度乐观但是仍然有很多DOTA2的玩家指责说6月AI获得的5场胜利属于作弊行为。他们认为这与正常的5V5游戏完全不同,比如AI仅有5个可选英雄、没有魔瓶和神符、没有Roshan和眼,这种不平衡的非完整性游戏完全是作弊一样的行为。而开发小组也很快回应,他们增加了AI可选英雄至18位,加入了Roshan和眼等改动...

谈到眼这个道具,它可以在战争迷雾外提供视野。真正的人类玩家可以由浅到深的去学习如何使用他们,但是AI不行,他们更加倾向于在他们的视野中插眼这样的行为。

而Roshan作为游戏中最重要的中立生物,如何与它交手也是一个非常复杂的团队策略,而且还需要考虑时间和击杀方法。而AI不会去在游戏开局招惹Roshan,因为按照他们每个AI的个人的算法来说开局的时候去对抗Roshan的话被击杀的概率实在是太高了。

dota2openai挑战攻略(DOTA2浅谈OpenAI在DOTA2的发展过程)(4)

OpenAI的团队已经通过对于AI的指令灌入随机化Roshan的状态来解决这个问题,虽然表面上看的确有鼓励AI在装备不成型之前就去击杀Roshan的动作,但是现在AI似乎浪费了太多时间在监视Roshan的状态。

时间不等人

在离温哥华AI对决前3周的8月5日OpenAI团队组织了一个对抗前职业MMR排名世界前99.95%选手的一个基准测试。

比赛在旧金山的一个酒吧中举行,现场观众大约有300多人。其中大部分人都在AI身上押注并且表示“虽然在感情上支持真人,但是感觉他们压根没有胜算”

dota2openai挑战攻略(DOTA2浅谈OpenAI在DOTA2的发展过程)(5)

在比赛开始之前,MoonMeander发推说自己从未输给过AI。结果是他们在前两场比赛中仅仅坚持了20至25分钟就敲出了GG。

这本来应该以AI的大获全胜作为收尾,但是为了给第三场比赛加点料开发团队让观众投票AI可以使用的英雄。结果在比赛开始之前OpenAI Five就预测在这个阵容对抗中自己只有2.9%的胜率,最终结果也和它预料的一样在35分47秒后输掉了比赛。

与此同时离OpenAI Five登场温哥华的舞台的日子也越来越近了,要知道这回它要面对的可是7000-8000分远远超过以前其他交手过的真人的高RANK选手们。而它已经没有那么多的训练时间去升华自己的战术策略了。

温哥华:最终大战

当他们在罗渣斯中心登台后许多当时在场的观众都认为OpenAI Five有很大的胜算。毕竟几乎之前的和人类的交手历史都是碾压级的胜利,更别说在去年TI7中1V1中血虐Dendi的故事了。

但是事实并非如此,在第一场比赛中PainGaming在持续了52分钟的比赛中击败了AI。而第二天的5个传奇的中国老将(430、Xiao8、BurNing、ROTK、SanSheng)仅花了45分钟就解决了AI。

其实OpenAI Five的整体团队表现其实已经还算过的去,这归功于他们的无差错的微操能力,在两场比赛中AI的人头都比人类队伍的多而且打赢了大多数的遭遇战和团战。

但是同时AI也犯了很多低级错误,比如在错误的地方开团或者冲塔以及很少会有Gank举动等。

TI8中的结果可能和OpenAI的团队预料的不一样,但是也并不代表属于OpenAI Five的凛冬已至。OpenAI Five将会很快重新开始训练并且将会在今年下半年或者2019年使用全英雄去参加一场完完整整的DOTA2比赛。

虽然它的确输掉了这场比赛,但是OpenAI Five和人类的斗争远未结束

dota2openai挑战攻略(DOTA2浅谈OpenAI在DOTA2的发展过程)(6)

,