如何在 PPO 等 RL 算法中实现并行性?

人工智能 强化学习 演员批评方法 执行 近端策略优化
2021-11-01 07:00:11

有多种方法可以在强化学习中实现并行性。一种是使用在他们自己的环境中运行的并行工作者来并行收集数据,而不是使用重放内存缓冲区(例如,这就是 A3C 的工作原理)。

但是,有些方法(例如 PPO)是故意使用批量训练的。对于仍然使用批量训练的算法,通常如何实现并行性?

梯度是否累积在并行工作人员和组合上?还有其他方法吗?以一种方式进行并行处理比另一种方式有什么好处?

2个回答

OpenAI 对此有一个帖子:https ://openai.com/blog/openai-five/

他们使用无数的rollout worker收集 60 秒的数据,然后将这些数据推送到 GPU 集群,在其中计算 4096 批观测的梯度,然后对其进行平均。

PPO 实际上被设计为允许这种并行化,因为它使用具有固定大小的轨迹段收集数据,例如 OpenAI Five 需要 60 秒,其中应该是“远小于剧集长度”(PPO 论文的第 5 页)。

论文Dota 2 with Large Scale Deep Reinforcement Learning比最初的博客文章更详细。

他们称他们的分布式训练框架为Rapid,该框架也用于他们的一些机器人工作,例如学习灵巧手操作论文,他们在部分讨论了 Rapid 的小规模部署(与 Dota2/OpenAI V 相比​​) 4.3.