abstract
去中心化分布式PPO(DD-PPO) 是一种在资源密集型模拟环境中进行分布式强化学习的方法,在Hatitat-Sim上表现出近线性的扩展——通过串行在128个GPU上实现了107倍加速。 code video
introduction
不同于gym和Atari, 3D simulator需要GPU加速,因此worker的数量通常有限制(
2
5
2^5
25-
2
8
2^8
28vs
2
12
2^{12}
212-
2
15
2^{15}
215), 高维的输入和深度神经网络使parameter server紧张, 本文提出了一种新的分布式架构:
- 去中心化(无参数服务器)
- 分布式
- workers将它们的更新同步到model时(通信阶段)为避免落后者造成的延误,提出一个抢占阈值,一旦有一定百分比的workers完成收集数据,其他workers也提前结束rollout, 开始训练。
algorithm
在监督学习中,数据并行的分布式实验实现方法:在step
k
k
k, worker n有一份parameter的copy
θ
n
k
\theta^k_n
θnk?, 计算梯度, 通过下式更新
θ
\theta
θ. 我们将其应用于on-policy的RL中,在step
k
k
k, worker n拥有参数parameter的副本
θ
n
k
\theta^k_n
θnk?, 它使用
π
θ
n
k
\pi_{\theta^k_n}
πθnk??收集经验,通过某种策略梯度的算法如PPO计算梯度,并将梯度与其他workers共享,并且依据下式更新模型: 鉴于每个worker都必须等待最慢的完成收集经验,因此会存在大量的同步开销。为了解决这个问题,引入一个阈值,一旦其他工人p%完成收集(比如设置60%工作良好),则落后者被迫提前结束数据收集。我们平等的权衡每个worker对loss的贡献,并且将结束前的最小步骤数限制为最大值的1/4, 确保所有环境都有助于学习。
experiments
related work
RL simulators可以分成四部分:
- Simulation: 执行agent选择的动作,返回新的状态和奖励值;
- Inference: 将新状态作为网络输入,输出action
- Learner: 输入数据,计算梯度并更新策略网络的参数
- Parameter server/master: 维护参数,协调workers
相关工作
- Synchronous RL: 同步RL,利用单个进程执行以上四个角色
- Synchronous Distributed RL: 与DDPPO最密切相关的工作,Atari实验,并不work;lock step同步过程中,由于时间开销增大,并行收益被抵消?
- Asynchronous Distributed RL:使用单个进程(CPU)执行simulation和inference, 另一个单独进行异步执行learner和parameter server. 扩展到资源密集型环境时遇到的问题:(1)simulation和inference仅限于cpu不可行,深度网络需要GPU加速,虽然这些过程可以转移到GPU,但是GPU以大批量运行最有效(推理模拟过程的batch大小为1),GPU利用率低,相比之下,DDPPO每个GPU使用一个进程,并从多个环境中批量观察以进行推理。(2)单进程learner/parameter仅限于单个节点的GPU,虽然这不是小网络和低维输入的限制,但是高维输入和复杂网络不适用。
- 落后效应缓解,旨在减少workers经验收集的时间差异。
|