主要 RL 计算组件包括:1)环境模拟(Environment simulation)根据 actions 产生观察结果和奖励。这种计算通常使用外部黑盒程序执行,如游戏或物理引擎,通常在 CPU 上执行;2)策略推理(Policy inference)从观察中生成 actions,观察是通过神经网络策略的推理(也称为前向传播)进行的。该系统可以使用 CPU 或 GPU 设备进行策略推理,尽管在采用 GPU 时可能具有明显的性能优势;3)训练(Training)使用收集的轨迹在 GPU 上执行梯度下降迭代以改进策略。
Actor worker 模拟环境 — 他们根据接收到的操作生成奖励和下一步观察结果。 Policy worker 执行神经策略的批量前向传播,根据观察结果生成动作。 Trainer worker 运行给定训练样本的随机梯度下降步骤来更新策略。
Actor。使用支持大规模并行仿真的 Isaac Gym [12] 作为仿真引擎。作者不做任何针对 Isaac Gym 的假设,PQL 已针对任何支持大量并行环境的基于 GPU 的模拟器进行了优化。在 agent 过程中,agent 会根据探索策略与数以万计的环境进行交互。因此,作者会维护一个本地策略网络 π^a (s_t),并定期与 P-learner 中的策略网络 π^p (s_t) 同步。 V-learner。创建了一个专门用于训练值函数的流程,可以在不被数据收集或策略网络更新打断的情况下进行持续更新。为了计算贝尔曼误差,需要有一个策略网络来估算要采取的最优行动,还需要有一个重放缓冲区来采样一批 I.I.D. 训练数据。由于使用专门的进程来不断更新值函数,V-learner 必须经常查询策略网络,并从重放缓冲区中采样数据。为了减少跨进程的网络和数据通信开销,在 V-learner 中维护了一个本地策略网络 π^v (s_t) 和一个本地重放缓冲区 ({(s_t, a_t, s_t+1, r_t, d_t+1)}) 。π^v (s_t) 会定期与 P-learner 中的 π^p (s_t) 同步。当 GPU 内存足够大以容纳整个重放缓冲区时(通常是在观测结果不是图像的情况下),会直接在 GPU 上分配重放缓冲区,以避免 CPU-GPU 数据传输瓶颈。 P-learner。使用另一个专用流程来更新策略网络 π^p (s_t)。策略网络 π^p (s_t) 经过优化,以最大化 Q^p (s_t,π^p (s_t))。同样,在 P-learner 中保留了一个 {(s_t)} 的重放缓冲区和一个本地值函数 Q^p (s_t,a_t),以减少跨进程的通信开销。Q^p (s_t, a_t) 会与 V-learner 中的 Q^v_1 (s_t, a_t) 定期更新。
首先,它允许我们平衡每个进程的资源分配,减少方案性能的差异。在计算资源数量固定的情况下,让部分进程等待的能力可以让其他进程更多地使用 GPU 资源。这在资源有限的情况下尤为重要。如果只有一个 GPU,且所有三个进程都能在其上自由运行,那么模拟大量环境会导致 GPU 利用率非常高,从而减慢 P-learner 和 V-learner 的运行速度,导致性能下降。需要注意的是,之前的研究(如 Ape-X [13])并没有对这种控制进行研究,模拟和网络训练都使用了计算机集群,因此没有出现争夺有限计算资源的现象(三个进程都在一个 GPU 上运行)。 另一方面,由于模拟速度和网络训练速度在很大程度上取决于任务复杂度、网络规模、计算机硬件等因素,因此让每个进程自由运行会给训练速度和学习性能带来更大的差异。例如,对联系丰富的任务进行仿真可能比其他任务慢;有些任务可能需要更深的策略网络或 Q 网络;甚至一台机器上的 GPU 在不同时间的运行条件也可能不同,从而导致不同进程的速度不同,并进一步导致不同的学习性能。其次,比率控制可以提高收敛速度。例如,之前的研究表明,更新策略网络的频率低于更新 Q 函数的频率会带来更好的学习效果。本文实验也显示了类似的比率,但本文的研究结果是在并行训练策略和值函数的情况下得出的。 第三,比率 β_p:v 可以解释为目标策略网络更新的频率。我们可以注意到,本文使用滞后策略来更新 Q 函数,并根据上述比率使其同步。因此,不会明确创建目标策略网络,但每次同步都可视为策略网络的硬更新。
由于硬件和批处理的原因,learner 的速度比所有参与者的速度加起来还要快;因此,整体训练速度受限于参与者执行 rollout 的速度。 训练后量化可以有效地产生量化的强化学习策略,而奖励损失很小。这表明,量化(低至 8 位)对策略输出的影响有限,因此可以用来加快 actor 的推出速度。 actor 只进行推理(不进行优化),因此 actor 一方的所有计算都可以大幅量化,而不会影响优化;反之,learner 在 actor 和 critic 网络上都执行复杂的优化程序,因此 learner 的量化可能会降低收敛性。