dota ai英雄攻略 dotaai
去年,OpenAI 在 DOTA 的 1v1 在比赛中击败了职业玩家 Dendi,而距离高级版 OpenAI Five 这个系统只战胜了人类业余玩家一个月。今天凌晨,它又用了 2:1 对人类高级玩家的屠杀再次完成,GG(人类赢的最后一局纯属耍赖)。
相比之下,人类这次输给了什么样的高级版本AI 英雄”?
此次,OpenAI Five 对阵 5 高级玩家(评论员 前职业玩家)——Blitz, Cap, Fogged, Merlini 和 Moonmeander,他们的平均梯分 7000 左右。反观 OpenAI Five,根据公开信息,它的实力相当于人类玩 180 年度游戏,每天与自己对抗学习,学习过程非常复杂,需要 256 个 GPU 和 128,000 个 CPU 上运行扩展版近端策略优化(PPO)进行训练。
它单独用于每个英雄 LSTM(长期和短期记忆递归神经网络),没有人类数据,它将学习可识别的策略,这表明强化学习可以产生可实现的长期规划。
另外,就应用环境而言,不同于棋牌游戏的固定规则,比如 DOTA2 如此复杂的视频游戏是 5v5 战略游戏对决,DOTA 游戏已经开发了十多年,游戏逻辑中有数十万行代码,每两周更新一次,游戏语义不断变化。
因此,AI 玩 DOTA 可以想象,它首先需要解决以下四个问题:长期视野、局部观察状态、高维、连续动作空间、高维、连续观察空间。
▌模型架构
OpenAI Five 每个网络都包含一个单层,1024-unit 的 LSTM,它可以查看当前的游戏状态(从 Valve 的 Bot API 抓取),并通过几种可能性 action heads 发出动作。每个 head 都有语义意义,比如延迟动作的刻度,选择哪个动作,单元周围网格中的动作 X 或 Y 坐标等。Action heads 独立计算。
OpenAI Five 使用观察空间(observation space)和动作空间(action space)互动演示。OpenAI Five 将世界视为 20000 通过发布一个包含数字的列表 8 个枚举值(enumeration values)执行操作的列表。我们可以通过选择不同的行动和目标来理解 OpenAI Five 如何编码每一个动作,如何观察世界。下图是人类会看到的场景。
OpenAI Five 它可以反应与它看到的相关丢失状态片段。例如,直到最近,OpenAI Five 观察区包括狙击手的技能范围(子弹落在敌人身上的区域)。然而,我们观察到了 OpenAI Five 可以学会走出狙击手的技能范围(虽然不能避免进入),因为进入这个区域时,可以看到自己的血量在减少。
▌探索
即使学习算法可以处理长远的愿景,我们仍然需要探索环境。因为即使我们设置了各种限制,仍然有数百种道具、数十种建筑、法术、单元类型、长尾游戏机制和各种组合,也不容易有效地探索这个巨大的空间。
OpenAI Five 从随机权重开始,从自我游戏中学习。 为了避免战略崩溃,80%的智能体在训练中 游戏都是自我对抗, 另外 20% 对抗过去的自己。在自我对抗中,英雄首先会漫无目的地绕着地图游走。经过几个小时的训练,智能体开始有一些概念,如建筑、中路对线等。几天后,他们总是采取基本的人类策略:试图偷走对手 Bountyrunes等。 通过进一步的训练,他们可以掌握 5 英雄集中推塔的高级策略。
OpenAI Five 使用了 1v1 机器人中随机化的方法 。它还使用了新的路线分配(lane assignment)策略。 在每个训练游戏开始时,他们随机分配每个英雄到一些 lane 在随机选择之前,如果英雄偏离了这些路线,他们将受到惩罚。
当然,也有帮助智能体探索环境的奖励,主要包括净值(net worth)、杀敌数(kills)、死亡数(deaths)、助攻(assists)、最后一击(last hits) 等指标。他们通过减少其他团队的平均奖励来后续处理每个智能体的奖励,以防止智能体找到正和游戏(positive-sum)的情况。
他们还通过脚本基线编码道具和技能建设( scripted baseline)引入信使管理(Courier management)。
▌Rapid
该系统的实现被称为Rapid”的通用 RL 适用于任何多人模式环境的训练系统。
训练系统分为 rolloutworkers,操作游戏副本,智能身体(agent),优化器节点用于收集经验(optimizer nodes)执行跨 GPU 组的同步梯度下降。每次训练还包括评估训练机器人和样本机器人的组件和监控软件,如 TensorBoard,Sentry 以及 Grafana。
在同步梯度下降的操作过程中,每一个 GPU 组件将计算自己负责的批处理部分的梯度,然后平均计算整个梯度。他们最初使用信息传递借口的规约算法进行平均计算,现在使用英伟达的多卡通框架 NCCL2 实现封装函数 GPU 并行计算和网络间数据传输。同步 58MB 大小数据(用于 OpenAI Five 表中显示了参数)的延迟,延迟时间足够低,可以满足大多数数据并行运算 GPU 标记。
▌不同于人类
OpenAI Five 获得的信息与人类完全一致,但系统可以立即反映人类玩家需要定期观察的信息,如类似位置、生命值和物品更新。OpenAI Five 的平均 APM 在 150-170 之间(理论上最快可以达到 450 平均反应时间为每四帧一动) 80 毫秒比人类平均速度快得多。
去年很多职业选手 TI 结束后使用 bot 训练 Blitz 的说法 solo bot改变了人的对 solo 看赛节奏,bot 倾向于快节奏风格,现在大多数选手都使用快节奏风格来和解 bot 抗衡。
AI 在 Dota2 节奏和执行力都很强。这是否意味着没有优化空间?当然不是,这次 OpenAI Five 仍有许多限制。例如,该系统在最后一次打击中较弱。其客观优先级与共同的专业战略相匹配。获得战略地图控制等长期奖励往往需要牺牲短期奖励。
Open AI 在今年的后续工作中,他说 TI 在表演比赛中,职业玩家将继续挑战 AI,但结果也是实力嘲讽人类。也许,更令人期待的是,在 Dota2 这样复杂的游戏会出现吗?AI vs AI神仙打架比赛?