当前位置: 首页 > 科技观察

Dota2冠军OG是如何被AI碾压的?OpenAI三年积累的论文全文终于发布

时间:2023-03-18 01:07:47 科技观察

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。OG战队,Dota2世界冠军战队。在人工智能OpenAIFive面前,OG不堪一击。一个五人的队伍,此前毫无悬念地以0:2落败。两局加起来,OG只推掉了两座外塔。不过,这并不是AI的巅峰之作。现在OpenAI训练了一个全新的AI,叫做Rerun。对阵碾压OG的OpenAIFive,Rerun的胜率达到了……呃……98%。听到这个消息,一位推特网友晒出了一张明志的照片。主要靠自学,才有可能在Dota2这样复杂的游戏中称雄。人工智能是如何做到的?今天,这个问题的答案揭晓了。没错,OpenAI不仅发布了Rerun,还通过一篇论文正式公布了其对Dota2项目三年多的研究。在这篇论文中,OpenAI对整个系统的原理、架构、计算、参数等诸多方面进行了阐述。OpenAI指出,通过增加batchsize和总训练时间,扩大了计算规模,这表明如今的强化学习技术在复杂的电竞游戏中可以达到超越人类的水平。这些研究可以进一步应用于两个对手之间的各种连续零和博弈。(可能看完之后)OG团队发推文:“哇!这篇论文看起来很棒!”此情此景,有网友深情感叹:哇!OG团队夸好看的论文?好久没见到你了……这篇论文是关于什么的?我们总结了几个要点。看点一:Dota2比围棋更复杂与棋类游戏相比,电竞游戏更复杂。克服这一挑战的关键是将现有的强化学习系统扩展到前所未有的水平,这需要数千个GPU和数月的时间。OpenAI为此构建了一个分布式训练系统。训练中的一个挑战是环境和代码在不断变化。为了不必在每次更改后都从头开始,OpenAI开发了一套工具来恢复训练而不损失性能,称为:手术。Dota2每局游戏时长约45分钟,每秒产生30帧游戏画面。OpenAIFive每4帧执行一个动作。一局象棋大约需要80步,下一局围棋大约需要150步。作为对比,玩一局Dota2,AI需要“玩”20000步左右。而且,由于战争迷雾的存在,Dota2中交战的双方在整体游戏中只能看到局部情况,其他部分的信息都被隐藏了。与AlphaGo下围棋相比,下Dota2的AI系统batchsize大50-150倍,模型大20倍,训练时间长25倍。要点2:AI如何学习玩Dota2人类通过键盘鼠标等方式玩Dota2,并做出实时决策。如前所述,OpenAIFive每4帧做一个动作,称为时间步长。在每个时间步,OpenAI都会接收到血量和位置等数据。人类和OpenAIFive以完全不同的方式接收相同的信息。当人工智能系统发出动作指令时,大概可以这么想。AI的背后是一组神经网络。policy(π)定义为从观察数据到动作概率分布的函数,是一个有1.59亿个参数的RNN神经网络。该网络主要由单层、4096单元的LSTM组成。结构如下图所示:LSTM在这个模型中贡献了84%的参数。选手的训练采用了近端策略优化(PPO)方法的扩展版本,这也是OpenAI默认的强化学习训练方法。这些代理人的目标是最大化未来奖励的指数衰减总和。在训练策略的过程中,OpenAIFive并没有使用人类博弈数据,而是通过自我对弈。类似的训练方法也被应用到围棋和国际象棋等问题上。其中,战斗中80%的对手是使用最新参数的分身,而20%的对手是旧参数的分身。每10次迭代后,新训练的克隆被标记为旧计时器。如果当前正在训练的人工智能打败了新手或老手,系统会根据学习率更新参数。按照OpenAICTO此前的说法,OpenAIFive在打败OG之前,已经练习了相当于4.5万年的Dota。AI每天的训练量相当于人类180年的游戏量。第三点:如此复杂的AI系统的计算量和超参数训练,肯定会消耗大量的资源。OpenAI估计了用于优化的GPU消耗。最终得出的结论是,OpenAIFive的GPU计算使用量在770±50~820±50PFlops/s天左右,而今天新提到的,更强的Rerun,在接下来两个月的训练中,GPU计算消耗约为150±5PFlops/s·天。同样,OpenAI公布的只是用于优化的计算量,这只是训练中所有开销的一小部分,约占30%。此前,OpenAI还透露,OpenAIFive的日常训练需要256个P100GPU和128,000个CPU核心。至于整个神经网络的超参数,在论文中,OpenAI表示在训练Rerun时,进一步简化了基于经验的超参数。最后,他们只改变了四个关键的超参数:?学习率?熵惩罚系数?团队精神?GAE时间范围当然,OpenAI也表示这些超参数还有进一步优化的空间。第四点:不全是自学最后还有一点需要强调一下。OpenAI在论文中明确指出,在学习Dota2的过程中,AI系统并不完全依赖强化学习进行自学,启示录也使用了一些人类的知识。这与后来的AlphaGoZero不同。有一些游戏机制是编写良好的脚本程序。比如英雄购买装备和学习技能的顺序,信使的控制等等。OpenAI在论文中表示,使用这些脚本有一些历史原因,以及成本和时间方面的考虑。不过论文也指出,这些最终也可以通过自学完成。论文全文在这篇名为Dota2withLargeScaleDeepReinforcementLearning的论文中,OpenAI公布了更多细节,感兴趣的可以看这里传送门:https://cdn.openai.com/dota-2.pdf回顾最后,我们来回顾一下OpenAIFive连续两轮击败OG的全过程。第一局AI(天会):火枪、飞机、冰女、死亡先知、Swain人类(夜魇):独行侠、巫医、毒龙、隐刺、影魔选择阵容后,OpenAIFive认为他们有67.6%的胜率速度。比赛一开始,OpenAIFive拿下了第一血,人类军团迅速击杀了AI这边的冰女。此后,双方前期在人数上不相上下。AI在经济上一直保持着整体领先,但最富有的英雄却一直是人类的老大哥影魔。这也能看出双方战术上的明显差异:OG是3核心+2辅助的传统人类打法,而AI的5英雄经济分配比较平均,更像是“大锅饭”.经过几次激烈的突进和团战,比赛持续了约19分钟,AI对自身胜率的预测已经超过90%。自信满满的AI,一口气向人类制高点发起进攻。OG随后选择分道推进。几位评论员猜测,这是为了尽可能分散AI,不让他们成群结队地前进,但时间太长都没有奏效。然而38分钟,人类小牛刚买下活儿,AI的最后一波普攻已经推开人类基地。OpenAIFive赢得了第一场比赛。现场也响起了掌声。在这场比赛中,AI表现出了一个奇怪的想法:出门装的时候选择两个大药,后续的装备更偏向于购买补给,而不是提升自身的属性。另外,我们前面提到的“大锅饭”政策,以及游戏前期的频繁买作品,都与人类职业玩家的习惯大相径庭。游戏2AI(天会):冰女、飞机、斯维因、巫医、龙人(夜魇):火枪手、独行侠、死亡先知、鱼人、莱恩选择英雄后,AI对自身胜率的预测是60.8%,略低于上一场比赛的阵容。开赛前两分钟,双方和平领先,却没想到,人类中单托普森很快送出一血。随后,人类代表以惊人的速度溃散。5分钟后,AI信心大增,预测胜率80%;7分钟,AI推掉了路上一塔;10分钟,AI已经领先人类4000金币,又推了两座塔,我还是给自己估计了95%的胜率。11分钟,AI已经攻到了OG的高地。仅仅21分钟,OG的基地就被推开,OpenAIFive轻松拿下第二局。直到比赛结束,OG的击杀数还是个位数,被AI打成46:6。虽然本场比赛的获胜极其轻松,但还是可以看出AI在比赛过程中在细节上存在一些不足。比如,面对人类在复杂的森林中盘旋,AI就束手无策。在今天的比赛中,Ceb绕过树林救了他一命。