第四部分:分布式强化学习¶
大规模训练强化学习智能体需要将计算分布到多台机器上。本部分涵盖分布式 RL 的系统架构、主流框架和实践考量——从奠基性设计到驱动大规模训练的现代系统。
学习内容¶
- 架构范式 — A3C、Ape-X、IMPALA、SEED RL 及其设计权衡
- 框架与系统 — RLlib、Acme、EnvPool、Sample Factory 等系统
- 大模型 RL 基础设施 — 面向 RLHF、Agentic RL 与具身训练的现代系统
- 实践扩展指南 — 如何高效地扩展 RL 训练
前两页主要讲经典分布式 RL 的设计模式;新增这一页则把这些思想延伸到大模型时代常见的 trainer-rollout-reward-environment pool 系统。
为什么需要分布式 RL?¶
强化学习的训练具有独特的计算特性,对分布式系统提出了特殊要求:
| 维度 | RL 与监督学习的区别 |
|---|---|
| 数据生成 | 必须与环境交互(on-policy)或从回放缓冲区采样(off-policy) |
| 数据新鲜度 | On-policy 方法需要当前策略的数据(过期数据会损害性能) |
| 环境开销 | 仿真本身可能成为瓶颈(复杂物理、渲染) |
| 探索多样性 | 并行环境提供多样化的经验 |
| 训练循环 | 紧密耦合:采集 → 训练 → 更新 → 再采集 |
单机 RL 训练面临的瓶颈:
- 样本采集缓慢:单个环境只能实时生成数据
- GPU 利用率低:策略网络通常较小,GPU 大量时间在等待环境数据
- 训练时间过长:复杂任务需要数十亿环境步
分布式 RL 通过并行化环境交互、数据采集和策略训练来解决这些问题。
关键洞察
监督学习中,数据是预先存在的静态资源,瓶颈通常在模型训练(计算密集型)。而在 RL 中,数据需要实时生成,瓶颈往往在数据采集端。这一根本差异决定了分布式 RL 的独特设计空间。
设计空间¶
graph TD
D[分布式 RL 设计] --> DP[数据并行]
D --> EP[环境并行]
D --> PP[流水线并行]
DP --> SA[同步更新<br/>A2C, PPO]
DP --> AA[异步更新<br/>A3C, IMPALA]
EP --> VP[向量化环境<br/>GPU 加速]
EP --> RP[远程环境<br/>多机部署]
PP --> SF[Actor-Learner 分离<br/>Ape-X, SEED]
核心设计决策包括:
- 同步 vs. 异步更新
- 计算发生在哪里(CPU Actor、GPU Learner)
- 数据如何流动(Actor 与 Learner 之间)
- 数据新鲜度要求(on-policy 的严格性 vs. off-policy 的容忍度)
同步与异步的权衡¶
| 维度 | 同步更新 | 异步更新 |
|---|---|---|
| 梯度质量 | 精确,无过期参数 | 可能使用过期参数计算 |
| 吞吐量 | 受最慢 Worker 限制 | 不受个别 Worker 阻塞 |
| 实现复杂度 | 较简单 | 需处理数据过期与一致性 |
| 收敛性 | 理论保证更强 | 可能需要额外校正(如 V-trace) |
| 典型算法 | PPO, A2C | A3C, IMPALA |
与其他章节的联系¶
阅读建议
如果你对 RL 基础算法不够熟悉,建议先完成第一部分的学习。分布式 RL 本质上是"如何高效运行已有算法",理解算法本身是前提条件。