向量化环境与分布式采样
on-policy 方法靠并行环境获得样本,off-policy 方法靠分布式 actor 填充回放缓冲。本章讲向量化环境的同步/异步实现、IMPALA 的 V-trace 修正策略滞后、Ape-X 的分布式优先回放,以及 SEED RL 的集中推理架构。
采样是 RL 的吞吐瓶颈
Section titled “采样是 RL 的吞吐瓶颈”RL 的吞吐由两段流水线决定:采样(与环境交互、生成转移)与学习(梯度更新)。深度 RL 的采样远慢于学习(环境是物理模拟或游戏引擎,学习是 GPU 矩阵乘)——采样是瓶颈。架构设计的核心问题:怎么把采样并行化、怎么让采样与学习流水线化。
向量化环境:同步与异步
Section titled “向量化环境:同步与异步”向量化环境(vectorized environments):把 个环境放进一个接口,step 一次步进全部 个环境:
- 同步(SyncVectorEnv):等所有环境走完一步再继续——简单、批规整,但慢环境拖累快环境(木桶效应);
- 异步(AsyncVectorEnv):各环境独立进程,取"已就绪"的环境——吞吐更高,批不规整(需要组 batch)。
规模的意义:on-policy 方法(PPO/A2C)只能用当前策略的数据,并行环境数直接决定单位时间能采多少样本(→ Actor-Critic 与 GAE)。64 个环境与 4096 个环境,是两种完全不同的训练体验。
IMPALA:V-trace 修正策略滞后
Section titled “IMPALA:V-trace 修正策略滞后”IMPALA(Importance Weighted Actor-Learner Architecture, Espeholt et al., 2018):大量 actor(模拟器进程)持续采样,learner(GPU)集中学习。actor 的数据要排队送到 learner——到达时策略已经更新过了(策略滞后,policy lag),数据是 off-policy 的。
V-trace 是修正:对截断的重要性采样做限幅——
限幅 (常取 1)让 off-policy 数据可用而不爆炸(重要性采样的方差问题,→ 蒙特卡洛方法)。V-trace 让"用 off-policy 数据跑 on-policy 算法"成为可能——这是 actor-learner 架构的理论粘合剂。
Ape-X:分布式优先回放
Section titled “Ape-X:分布式优先回放”Ape-X(Horgan et al., 2018):off-policy 方法的分布式版本——大量 actor 各自持有旧网络副本采样、存入共享的分布式优先回放缓冲,learner 按优先级采样更新,定期把新网络发给 actor。
- actor 用旧网络采样(滞后无妨,Q-learning 天然 off-policy);
- 优先回放(PER,→ DQN 及其改进)在分布式缓冲上运行;
- **采样与学习的比例(replay ratio)**成为核心超参:每条数据被学习几次——太高 learning 过拟合旧数据,太低 GPU 闲置。
SEED RL:集中推理
Section titled “SEED RL:集中推理”SEED RL(Espeholt et al., 2020)再进一步:推理也集中——actor 只跑环境(CPU),动作由 learner 的 GPU 集中推理(gRPC 传输观测、传回动作)。省掉 actor 的模型副本与同步,简化架构;代价是网络往返延迟成为每步的开销(适合轻观测、重模型)。
三个架构的谱系:
| 架构 | 推理在哪 | off-policy 修正 | 适合 |
|---|---|---|---|
| IMPALA | actor | V-trace | on-policy 大规模 |
| Ape-X | actor | Q-learning 天然 | off-policy 大规模 |
| SEED RL | learner | V-trace | 轻观测重模型 |
Ray RLlib、Acme、TorchRL 等框架封装了这些架构(→ 库与框架对比)。选型的经验:先想清楚采样与学习的比例(多少 actor、replay ratio 多少),架构是比例的函数——比例错了,什么架构都救不了吞吐。
- V-trace 让 off-policy 数据可用于 on-policy 算法
- 采样与学习的比例(replay ratio)是关键超参
- Ray RLlib 等框架封装了这些架构