Dota 2 with Large Scale Deep Reinforcement Learning

下载 PDF

Dota 2 with Large Scale Deep Reinforcement Learning - 中文验证版

英文原文卡片:openai_five_2019.md

状态:已翻译。

元数据

  • Slug: openai_five_2019
  • 年份: 2019
  • 会议: arXiv
  • 作者: OpenAI et al.
  • 阅读状态: read complete
  • 计算范式: 搜索、仿真与科学计算(search_simulation_science_compute
  • 主要来源: PDF抽取文本

计算设置

论文描述了一个规模极大的 CPU/GPU 分布式系统,但未给出 GPU 型号。它说明 OpenAI Five 在数月内使用了数千块 GPUs,基础设施基于 Google Cloud Platform,并使用 blocksparse 库的快速 GPU 操作。最终资源表给出的范围而非一个固定机器数量:480-1,536 块优化器 GPUs,500-1,440 块 rollout GPUs,以及 80,000-172,800 个 rollout CPUs。LSTM 大小在运行期间从 2048 增加到 4096。

论文的计算核算对优化是明确的,但也警告优化仅仅是总成本的一部分。到 2019 年 4 月 13 日对阵 Team OG 时,OpenAI Five 已消耗 770 +/- 50 PFLOP/s-days 的 GPU 优化计算;到 4 月 22 日,已消耗 820 +/- 50 PFLOP/s-days。作者估计优化器 GPUs 大致占美元成本的 30%,rollout 前向传播 GPUs 另占 30%,rollout CPUs 另占 30%,控制器/评估/开销占剩余 10%。因此标题中的 PFLOP/s-days 数字低估了完整的异构系统预算。

瓶颈

Dota 2 使仿真吞吐量成为核心瓶颈。一场游戏以每秒 30 帧运行约 45 分钟,具有部分可观测性、长时间跨度、高维动作空间以及随 agent 改进而变化的多玩家自对弈分布。论文报告系统从每 2 秒约 2M 帧的 batch 中学习,这是一个关于环境生成规模与神经优化同等重要的陈述。

第二个瓶颈是数据的新鲜度。早期等待完整 episode 的系统产生的 rollout 数据已经是数小时和数千个梯度步陈旧的,通常无用或有害。样本复用是另一个约束:如果优化器消耗数据的速度比 rollout 产生数据更快,相同的经验被重复使用过多,训练会减慢。因此 OpenAI Five 是一个运行游戏的 CPUs、执行策略推理的 GPUs 和执行优化的 GPUs 之间紧密的异步循环。

方法适配

OpenAI Five 通过将仿真、前向传播和优化分离来将 PPO 适配到硬件。Rollout worker 机器以约半实时速度运行 Dota 2 自对弈游戏,因为这允许更多并行游戏和更高的总吞吐量。Rollout 机器运行游戏引擎而非策略;它们与一个前向传播 GPU 池通信,该池以约 60 个一批的方式执行策略推理。优化器 GPUs 将游戏数据接收到本地经验 buffer 中,采样 mini-batches,计算梯度,并在同步更新参数之前通过 NCCL 进行 allreduce。

有效 batch 直接从设备数量构建。每个优化器 GPU 使用 120 个样本的 16 个时间步,在峰值时系统使用最多 1,536 块优化器 GPUs,总计 batch size 为 2,949,120 个时间步,具有五个英雄策略副本。PPO 使用截断的通过时间反向传播(truncated backpropagation through time)、Adam、lambda 为 0.95 的 GAE,以及梯度裁剪。模型是一个中央共享 LSTM,为单独的策略和价值头提供输入。

"surgery"(手术)机制也是一个计算适配。因为训练持续了约 10 个月,而 Dota 2、观察、动作和模型架构都在变化,每次变化后从头开始将极其昂贵。Surgery 将旧策略转换为兼容的新策略,使训练可以跨环境和架构变化继续。

证据

主要性能证据是 OpenAI Five 在 2019 年 4 月 13 日击败了卫冕 Dota 2 世界冠军 Team OG,随后在在线展示期间以 99.4% 的胜率赢得了超过 7,000 场公开比赛。论文将此与上述资源规模联系起来:在对阵 OG 时,训练已消耗 770 +/- 50 PFLOP/s-days 的 GPU 优化计算和数月的 CPU/GPU rollout 基础设施。

系统证据同样重要。论文报告更大的 batch size 加速了训练,经过测试的区间内 batch 高达数百万观察量。Rerun 的 983K 时间步 batch 相比 123K 时间步基线有约 2.5 倍加速。作者还表明陈旧的 rollout 数据和过度的样本复用会减慢学习,解释了为什么优化器 GPUs 必须与 rollout CPUs 和前向传播 GPUs 一起缩放。

历史影响

OpenAI Five 表明,当仿真和优化被作为一个分布式系统对待时,大规模自对弈 RL 可以达到世界冠军电子竞技表现。它将 AlphaGo/AlphaZero 的经验教训扩展到了实时、部分可观测、多 agent 环境中,其中经验生成、策略推理和梯度更新都必须一起缩放。

从历史上看,它是搜索/仿真/科学计算范式中的一个里程碑,因为限制资源不仅仅是矩阵乘法。该项目依赖 CPU 仿真 workers、在推理和优化之间拆分的 GPUs、大 batch PPO,以及为变化环境服务的训练延续工具。它使 RL 的系统层面无法从算法结果中分离。

局限

限制相当大,且主要是计算结构限制。OpenAI Five 不从像素学习;它使用语义观察和一个自定义的 Dota 2 gym 环境。该系统在相对于完整 Dota 2 的限制条件下进行游戏,包括有限的英雄池和排除一些多单位控制的复杂性。它还使用了脚本化或工程化的子系统以及大量的环境集成。

硬件披露在设备 SKU 级别是不完整的。论文提供了 GPU 和 CPU 数量、batch size、吞吐量和 PFLOP/s-days,但没有 GPU 型号名称或详细的集群拓扑。报告的优化计算也排除了整个系统的大部分,包括 rollout CPUs 和前向传播服务 GPUs。最后,这种方法假设存在一个可以在大规模并行中运行的可仿真环境。这正是使 OpenAI Five 成为可能的原因,也限制了直接迁移到现实世界交互而非仿真成为瓶颈的领域。

链接