今天将是OpenAI和Dota 2专业人士之间的首次较量(获胜者)。 我们了解机器人的工作原理



[UPD 2]痛苦游戏团队击败了OpenAI Five。 这场比赛持续了53分钟,最终以45-41的比分结束了对机器人的比赛。 游戏的录音可以在Twitch上查看 从7:38:00开始

8月22日晚,在国际季后赛第二天开始之前,职业选手与OpenAI Five机器人之间的首次演示比赛将作为表演活动的一部分。 有关比赛的信息出现在Dota 2的官方网站上 “国际比赛”附加赛比赛时间表部分中。 总体而言,OpenAI将在三天内与职业玩家进行三场比赛。

这一事件意义重大,因为一年前,该机器人在与1x1单人中镜SF对抗时“撞倒”了Daniil Ishutin, 几周前,他击败了评论员和前职业玩家的“大杂烩”

这次,由埃隆·马斯克(Elon Musk)和其他来自IT领域的杰出商人赞助的公司的发展将面临更严峻的挑战:国际组织每年都会聚集世界上最好的团队,因此机器人并不容易。 到目前为止,开发团队尚未报告是否适用于本月初与人对战时与游戏相关的所有峰值和力学限制,但这值得一提。

因此,旧规则如下:
  • 18位随机草稿模式中的英雄(斧头,水晶少女,死亡先知,撼地者,旋翼机,巫妖,狮子,瘟疫法师,痛苦女王,剃刀,力克,暗影恶魔,斯拉克,狙击手,斯文,潮汐猎人,毒蛇或女巫)医生);
  • 没有神剑,酒瓶;
  • 没有受到控制的生物和幻想;
  • 与五个快递员搭配(不能进行侦查和装箱);
  • 无需使用扫描。


在我们关于该主题的最新出版物的评论中,关于训练神经网络的方法引发了许多争议。 这次,我们带来了一些有关OpenAI机器人如何工作以及从人的角度来看外观的视觉效果。

开发人员表示,由于强大的计算能力,大量的记录以及在多个流中进行训练的能力,OpenAI每天都可以模仿长达180年的连续Dota 2游戏,显然,这种AI的学习能力甚至比不那么智能的学习器要低多个数量级。 “人属于的动物,更不用说狗或灵长类动物了。

为了训练OpenAI,该团队使用了自己的名为Gym的开发项目( github存储库 ,官方文档 )。 该“摇椅”与任何公共图书馆(例如TensorFlow或Theano)兼容。 在Gym框架内训练神经网络时,使用了经典的agent-environment循环:



开发人员声称,任何人都可以使用Gym来教他们的神经网络来为Atari 2600或其他相对容易理解的项目播放经典游戏。 显然,培训的速度直接取决于其中涉及的资源量。 例如,OpenAI开发人员教神经网络播放蒙特祖玛的复仇

但是第二和第四阶段-行动和结果分析(行动奖励)是我们最感兴趣的。 而在Dota 2的背景下,可变性的水平刚刚过去,而机器人最初评估为长距离“正确”的动作可能会导致损失。

OpenAI团队如何教会AI在装备方面玩Dota 2


开发团队更加认真地解决了在Dota 2中学习OpenAI的问题。 您可以在此处的项目博客上阅读完整的官方报告,但我们将在技术部分和实施过程中提供主要摘录,而无需进行营销和其他宣传。

先前出版物的评论者对OpenAI神经网络进行训练所消耗的功率最感兴趣。 显然,一对Ryzen无法做到这一点,尤其是在模仿一个真实的一天玩180年的情况下。 同时,用于Dota 2的机器人不是用于Quake级别射击游戏的机器人,用户是的,很明显注意到一个怀疑者:

在我看来,您只是淡淡地想象了DotA中战术空间的大小,因为您并不熟悉游戏本身。 在没有涉及神经网络的情况下制造机器人是没有机会的,它们只能将自己限制在至少一些理智的计算资源上。 说真的 这不是雷神之锤,在战术上您可以是一棵完整的橡树,并通过从栏杆上萝卜获得的非人性的快速射击来弥补这一点。 就反应和机械技能而言,它们是理想的选择,他们不知道如何玩其中的五个机器人,并且不“感觉到纸牌”,这对任何熟练的肉食者都是注定的。

另外,DotA是一个信息不完整的游戏,这使任务变得非常复杂。 “当我看见敌人时该怎么办”的任务比“当敌人不可见时该怎么办”的任务简单得多-不仅对于汽车,而且对于人。

OpenAI开发人员清楚地了解了这一点,因此数千个虚拟机被同时用于训练机器人。 具体来说,这些数字是由该项目的官方博客提供的,用于训练1x1 Solo Mid机器人,该机器人能够在一定的限制下击败Daniel Ishutin,并训练一支成熟的团队进行5x5游戏:


这不是小数点。 为了以5x5模式训练OpenAI,不断使用Google Cloud的 12.8 万个处理器内核 。 但这还不是全部。 由于机器视觉用于教授OpenAI机器人(我们稍后再讨论),因此在这种怪异的配置中,还有另外256个PID NVIDIA GPU( 特斯拉加速器 )。

根据NVIDIA官方手册,P100具有以下功能:



一台P100 Tesla 12 GB PCI-E的官方价格约为5800美元,Tesla P100 SXM2 16GB的起始价格为9400美元。 OpenAI仅使用较旧的SXM2模型。 不需要视频卡来在虚拟机上渲染“图形”,而是用于处理和计算始终来自所有正在运行的批次的数据。 为了处理此流,团队必须部署一个完整的节点系统,P100 Tesla在其中工作。 视频卡处理并计算获得的数据,然后生成所有批次的平均结果,并将其与过去的OpenAI指标进行比较。

这样的能力使得有可能模拟每分钟大约60个参与者的神经网络,如前所述,对于每个神经网络,它分析约104万个代理-介质周期。

OpenAI如何看待游戏


如果有的话,金钱就是尘土。 即使是对一天OpenAI培训成本的最粗略估计也会引起轻微震动,并且Google Cloud服务器上产生的热量足以加热一个小镇。 但是更有趣的是OpenAI如何“看”游戏。

很明显,机器人不需要图形渲染,但是使用这种功能是有原因的。 机器人的动作依赖于机器人标准Valve API ,神经网络通过该API接收有关周围空间的数据流。 需要API才能通过包含1024个块的单层LSTM网络运行数据,并因此获得与神经网络可用的长期策略一致的短期解决方案。

LSTM网络“现在和现在”确定了机器人的任务优先级,并根据神经网络行为的长期模型,选择了最有利的措施。 例如,机器人很容易专注于最后击中的小怪兽,以赚取金钱和经验,这与以物体形式获得长期利益以及随后在游戏中获得利益的模型是一致的。

根据开发人员提供的信息,各方以30 FPS的频率在地图上绘制事件。 神经网络OpenAI通过LSTM不断分析每个帧,并根据其结果做出进一步决策。 同时,机器人有其自己的优先级:通过机器人“视觉”的特定区域对所有可能的与环境的交互进行最彻底的分析-这些是800x800的正方形,分为64 100x100个单元(在游戏中动作和运动范围的大小被采用,正方形的大小为8x8 ) 这是机器人在一个特定框架上部分“看”游戏的方式:


开发人员的官方博客的“ 模型结构”部分中提供了完整的构造函数,该函数具有切换动作,估计正方形的大小以及“扭转设置”的其他可能性的能力。

这是LSTM网络在游戏事件实时预测方面的可视化:


除了LSTM并评估当前情况,OpenAI机器人不断使用“预测”网格并设置自己的优先级。 这就是人们的样子:



绿色方块是机器人的当前优先级最高的区域(攻击,移动等),浅绿色方块的优先级较低,但是机器人可以随时切换到该扇区。 如果没有任何变化,还有两个灰色方块-潜在活动的区域。

在下面的视频中,可以看到机器人如何“看到”游戏并根据这四个区域做出决策:


应该注意的是,机器人的优先区域并不总是位于角色模型旁边。 拖动地图时,很容易从机器人的当前位置将所有四个正方形移动几个屏幕,也就是说,OpenAI同时分析整个游戏空间的任何动作的可用性和便捷性,而不仅仅是一个屏幕。

OpenAI不断发挥自己的作用。 同时,对80%的漫游器进行了培训,而20%则使用了已开发的策略和策略。 这种方法使神经网络可以从自己的错误中学习,在实际行为中发现易受攻击的模式,同时巩固成功的行为模式。

明天已经。 专业人士与机器


除了结果以外,还有值得回到职业玩家和OpenAI明天对抗的话题。

细节尚不清楚,但是可以肯定地说神经网络将很难。 与过去的对手不同,OpenAI将面对最好的最好的,并且在一场比赛中进行机动和团队合作的可能性将使人们发挥最大的潜力。 当然,Solo Mid 1x1格式非常壮观,但是它并不能揭示游戏的全部本质,并且极不容忍人们经常犯的微错误。

整个问题是专业人员将如何认真对待这种对抗。 如果出现任何其他信息,则出版物将被更新。

Source: https://habr.com/ru/post/zh-CN420825/


All Articles