Back to blog

强化学习基础设施(RL Infra)优化必读论文与技术全景

覆盖分布式RL、RLHF系统、环境加速、采样优化、通信优化、内存优化等方向

强化学习基础设施(RL Infra)优化

一、RL Infra 核心问题与挑战

1.1 为什么RL Infra比SFT/预训练更难?

维度预训练/SFTRL训练
计算模式纯forward+backwardgenerate → reward → update 交替
GPU利用率高(连续计算)低(生成阶段GPU空闲)
数据流静态数据集在线采样,数据不断变化
内存模型+优化器状态模型×多个(policy/ref/reward/value)
通信梯度同步模型同步+经验传输
调度简单actor/learner分离,复杂调度

1.2 RL Infra优化的核心目标

最大化硬件利用率 = 最大化有效token吞吐量
                 = 减少GPU空闲时间
                 + 减少内存占用
                 + 减少通信开销
                 + 提高采样效率

二、RL Infra 技术方向全景

2.1 方向总览

RL Infra 优化
├── 1. 系统架构
│   ├── Actor-Learner 分离
│   ├── 生成-训练解耦
│   ├── 异步流水线
│   └── 资源调度
├── 2. 生成优化
│   ├── 推理引擎 (vLLM/SGLang)
│   ├── 批量生成
│   ├── 采样策略
│   └── KV Cache管理
├── 3. 训练优化
│   ├── PPO/GRPO/DPO
│   ├── 梯度累积
│   ├── 混合精度
│   └── 参数高效更新
├── 4. 内存优化
│   ├── 多模型管理
│   ├── 激活检查点
│   ├── Offloading
│   └── LoRA/QLoRA
├── 5. 采样优化
│   ├── 经验回放
│   ├── 优先级采样
│   ├── 课程学习
│   └── 数据过滤
├── 6. 环境加速
│   ├── GPU加速环境
│   ├── 批量环境
│   ├── 异步环境
│   └── 模拟器优化
├── 7. 通信优化
│   ├── 模型同步
│   ├── 梯度压缩
│   ├── 参数服务器
│   └── 流水线通信
└── 8. 鲁棒性
    ├── 容错
    ├── 弹性伸缩
    ├── 训练稳定性
    └── 奖励hacking防护

三、必读论文列表

3.1 经典分布式RL系统

#论文年份核心贡献方向
1IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures2018Actor-Learner分离架构,V-trace修正系统架构
2SEED RL: Scalable and Efficient Deep-RL with Accelerated Central Inference2020GPU集中推理,LSTM+ResNet高效推理生成优化
3Distributed Prioritized Experience Replay (Ape-X)2018分布式优先经验回放,Actor生成+Learner训练采样优化
4RL²: Fast Reinforcement Learning via Slow Reinforcement Learning2016元学习RL,循环策略算法
5R2D2: Recurrent Experience Replay in Distributed Reinforcement Learning2021循环策略的分布式经验回放采样优化
6Gorila: General Reinforcement Learning Architecture2015参数服务器架构,分布式DQN系统架构

3.2 高吞吐RL系统

#论文年份核心贡献方向
7Sample Factory: Egocentric 3D Control from Pixels at 100000 FPS with Asynchronous Reinforcement Learning2020极高吞吐异步RL,100K FPS系统架构
8TorchBeast: A PyTorch Platform for Distributed RL2020IMPALA的PyTorch实现系统框架
9Moolib: A Library for Distributed RL2023Facebook分布式RL库系统框架
10TorchRL: A modular, primitive-first, PyTorch RL library2023模块化RL库,支持分布式系统框架
11CleanRL: High-quality Single-file Implementations of RL Algorithms2022高质量单文件RL实现系统框架

3.3 RLHF/LLM-RL 系统

#论文年份核心贡献方向
12Training language models to follow instructions with human feedback (InstructGPT)2022RLHF完整流程:SFT → RM → PPORLHF系统
13DeepSpeed-Chat: Easy, Fast and Affordable RLHF Training of ChatGPT-like Models at All Scales2023DeepSpeed RLHF系统,3D并行+ZeRORLHF系统
14OpenRLHF: An Easy-to-use, Scalable and High-performance RLHF Framework2024开源RLHF框架,Ray调度RLHF系统
15ReaLHF: A Unified and Efficient Framework for RLHF Training2024动态重并行,统一RLHF训练RLHF系统
16RLHFlow: An Open RLHF Framework2024开源RLHF框架RLHF系统
17Alignment Handbook2024HuggingFace对齐全书RLHF系统

3.4 RL算法优化(减少Infra负担)

#论文年份核心贡献方向
18DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models (GRPO)2024Group Relative Policy Optimization,无需Critic模型算法优化
19ReMax: A Simple, Effective, and Efficient RL Method for Aligning LLMs2023REINFORCE变体,无需Value模型算法优化
20Back to Basics: Revisiting REINFORCE Style Optimization for Learning from Human Feedback (RLOO)2024REINFORCE Leave-One-Out,简单高效算法优化
21Direct Preference Optimization (DPO)2023无需RM和RL,直接偏好优化算法优化
22SimPO: Simple Preference Optimization with a Reference-Free Reward2024无参考模型的偏好优化算法优化
23KTO: Model Alignment as Prospect Theoretic Optimization2024基于前景理论的对齐,无需配对数据算法优化
24ORPO: Monolithic Preference Optimization without Reference Model2024无参考模型,单阶段优化算法优化
25Self-Play Fine-Tuning Converts Weak Language Models to Strong Language Models (SPIN)2024自博弈微调算法优化

3.5 推理/生成优化

#论文年份核心贡献方向
26vLLM: Efficient Memory Management for Large Language Model Serving with PagedAttention2023PagedAttention,连续批处理推理引擎
27SGLang: Efficient Execution of Structured Language Model Programs2024结构化生成,RadixAttention推理引擎
28TensorRT-LLM2023NVIDIA高性能LLM推理推理引擎
29DeepSpeed-FastGen: High-throughput Text Generation for LLMs via MII and DeepSpeed-Inference2024DeepSpeed推理引擎推理引擎
30Splitwise: Efficient Generative LLM Inference Using Phase Splitting2023prefill/decode分离推理优化

3.6 环境加速

#论文年份核心贡献方向
31Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning2021GPU加速机器人仿真环境加速
32Brax: A Differentiable Physics Engine for Large Scale Rigid Body Simulation2021JAX可微分物理引擎环境加速
33EnvPool: A C++ based high-performance reinforcement learning environment execution engine2022C++批量环境引擎环境加速
34GPU-accelerated Atari Emulation for RL2021GPU加速Atari环境加速
35Mava: A research framework for distributed multi-agent reinforcement learning2021分布式多智能体RL环境加速

3.7 内存与计算优化

#论文年份核心贡献方向
36LoRA: Low-Rank Adaptation of Large Language Models2021低秩适配,减少可训练参数参数高效
37QLoRA: Efficient Finetuning of Quantized LLMs20234-bit量化+LoRA内存优化
38ZeRO-Offload: Democratizing Billion-Scale Model Training2021CPU offload内存优化
39Mixed Precision Training2018FP16/BF16混合精度计算优化
40Activation Checkpointing2016梯度检查点内存优化

3.8 奖励与评估

#论文年份核心贡献方向
41Training a Helpful and Harmless Assistant with RLHF (Reward Modeling)2022奖励模型训练方法奖励系统
42Reward Model Ensembles Help Mitigate Overoptimization2023奖励模型集成奖励系统
43Scaling Laws for Reward Model Overoptimization2022奖励hacking的缩放定律奖励系统
44Rule-Based Rewards for Language Model Alignment (RBR)2024基于规则的奖励奖励系统
45Generative Reward Models2024生成式奖励模型奖励系统

四、RL Infra 各方向详解

4.1 系统架构

4.1.1 Actor-Learner 分离

核心思想:将数据采样(Actor)和梯度更新(Learner)分离到不同进程/机器。

┌─────────────────────────────────────────────────────┐
│                    RL Infra 架构                       │
│                                                       │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐        │
│  │ Actor 1  │    │ Actor 2  │    │ Actor N  │        │
│  │ (推理)    │    │ (推理)    │    │ (推理)    │        │
│  └────┬─────┘    └────┬─────┘    └────┬─────┘        │
│       │               │               │               │
│       └───────────────┼───────────────┘               │
│                       │ 经验缓冲                       │
│                       ▼                               │
│              ┌─────────────────┐                      │
│              │  Replay Buffer  │                      │
│              │  (经验存储)      │                      │
│              └────────┬────────┘                      │
│                       │                               │
│       ┌───────────────┼───────────────┐               │
│       ▼               ▼               ▼               │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐        │
│  │Learner 1 │    │Learner 2 │    │Learner N │        │
│  │ (训练)    │    │ (训练)    │    │ (训练)    │        │
│  └──────────┘    └──────────┘    └──────────┘        │
└─────────────────────────────────────────────────────┘

关键挑战:

  • Actor和Learner之间的模型同步延迟
  • 经验数据传输带宽
  • Actor推理效率

代表论文:

  • IMPALA (2018): V-trace修正off-policy偏差
  • SEED RL (2020): GPU集中推理
  • Sample Factory (2020): 异步高吞吐

4.1.2 生成-训练解耦(LLM-RL特有)

核心思想:LLM-RL中,生成(rollout)和训练(update)使用不同的并行策略。

生成阶段(推理优化)           训练阶段(训练优化)
┌─────────────────┐         ┌─────────────────┐
│  vLLM/SGLang    │         │  DeepSpeed      │
│  - TP并行        │   ──→   │  - 3D并行        │
│  - PagedAttention│         │  - ZeRO-3       │
│  - 连续批处理    │         │  - 梯度累积      │
└─────────────────┘         └─────────────────┘

关键挑战:

  • 模型在推理引擎和训练框架之间转换
  • 推理和训练的GPU利用率不均衡
  • 长序列生成的内存管理

代表论文:

  • DeepSpeed-Chat (2023): 推理-训练统一框架
  • OpenRLHF (2024): Ray调度推理-训练分离
  • ReaLHF (2024): 动态重并行

4.2 生成优化

4.2.1 推理引擎选择

引擎特点适用场景
vLLMPagedAttention,连续批处理通用LLM推理
SGLangRadixAttention,结构化生成复杂prompt/多轮对话
TensorRT-LLMNVIDIA优化,kernel融合最高吞吐
DeepSpeed-FastGenSplitwise架构DeepSpeed生态

4.2.2 批量生成优化

问题:RL训练中,需要生成大量response,每个prompt生成多个response。

优化点:

  1. 连续批处理:动态添加/移除请求,提高GPU利用率
  2. 前缀缓存:相同system prompt的请求共享KV Cache
  3. 异步生成:生成和训练并行,不阻塞训练
  4. 批量采样:同一prompt生成多个response,复用prefill

关键数据(典型RL训练):

  • 每个prompt生成K=64个response
  • 生成阶段占总时间50-80%
  • 推理引擎吞吐直接影响训练速度

4.3 训练优化

4.3.1 RL算法选择

算法需要Value模型需要RM复杂度内存代表
PPO✓✓高高InstructGPT
GRPO✗✓中中DeepSeek-R1
ReMax✗✓低低-
RLOO✗✓低低-
DPO✗✗低低-
SimPO✗✗低低-
KTO✗✗低低-
SPIN✗✗低低自博弈

PPO vs GRPO 内存对比(70B模型,BF16):

PPO: Policy + Reference + Reward + Value = 4个模型
     70B × 4 × 2 bytes = 560 GB (仅参数)
     + 优化器状态 × 2 = 560 × 12 = 6.7 TB

GRPO: Policy + Reference + Reward = 3个模型(无Value)
      70B × 3 × 2 bytes = 420 GB (仅参数)
      节省 25% 内存

4.3.2 梯度优化

梯度累积:RL训练中batch size通常较大,需要梯度累积。

实际batch_size = micro_batch × gradient_accumulation × num_gpus
例如: 1 × 8 × 64 = 512

混合精度:

  • BF16训练(推荐,比FP16更稳定)
  • FP32梯度累积(防止精度损失)
  • FP32 master weights

4.4 内存优化

4.4.1 多模型内存管理

RL训练需要同时加载多个模型:

模型用途是否可卸载是否可量化
Policy当前训练模型否否
ReferenceKL约束可offload可量化
Reward奖励计算可offload可量化
Value基线估计(PPO)可offload可量化

优化策略:

  1. Reference模型offload:训练时offload到CPU,生成时加载回GPU
  2. Reward模型量化:INT8/INT4量化减少内存
  3. LoRA训练:仅训练adapter,base模型共享
  4. 梯度检查点:减少激活内存

4.4.2 内存估算公式

模型参数内存 = num_params × bytes_per_param
优化器状态 = num_params × 12 (Adam: 2 states + momentum)
梯度 = num_params × bytes_per_param
激活 = batch_size × seq_len × hidden_dim × num_layers × bytes

总内存 ≈ (num_params × 14 + 激活) × num_models

4.5 采样优化

4.5.1 经验回放

问题:在线RL需要不断生成新数据,生成成本高。

优化点:

  1. 优先经验回放:高价值样本优先重用(Ape-X, R2D2)
  2. 离线数据混合:在线数据+离线数据混合训练
  3. 数据过滤:过滤低质量/重复样本
  4. 课程学习:从简单到复杂逐步增加难度

4.5.2 数据效率

关键指标:

  • 每个token的有效训练信号
  • 生成token与训练token的比例
  • 数据重复利用率

优化方法:

  1. 多次复用:同一batch多次梯度更新
  2. 重要性采样:off-policy修正
  3. 优势估计优化:GAE, V-trace

4.6 环境加速(游戏/机器人RL)

4.6.1 GPU加速环境

传统方式:CPU运行环境,GPU运行模型,大量数据传输开销。

GPU加速:环境和模型都在GPU上运行。

环境加速方式吞吐提升
Isaac GymGPU物理仿真100-1000x
BraxJAX可微分100-1000x
EnvPoolC++批量10-50x
Atari (GPU)GPU模拟器50-100x

4.6.2 批量环境

核心思想:同时运行多个环境实例,批量处理。

传统:env1 → obs1 → model → act1 → env1 → ...
批量:[env1,...,envN] → [obs1,...,obsN] → model → [act1,...,actN] → ...

关键数据:

  • 典型批量大小:64-2048个环境
  • GPU利用率提升:10-100x

4.7 通信优化

4.7.1 模型同步

问题:多Actor需要同步最新模型参数。

方案:

  1. 同步更新:所有Actor等待Learner更新后同步(简单但慢)
  2. 异步更新:Actor独立更新,使用stale gradients(快但不稳定)
  3. 半同步更新:NVIDIA A-SGD等,容忍一定延迟

4.7.2 经验传输

问题:Actor生成的大量经验需要传输到Learner。

优化:

  1. 压缩:量化observations
  2. 异步传输:边生成边传输
  3. 共享内存:同一节点共享内存,避免序列化

4.8 鲁棒性

4.8.1 训练稳定性

RL训练特有不稳定因素:

  1. 奖励hacking:模型找到获取高奖励的捷径
  2. KL散度爆炸:策略偏离参考模型太远
  3. 优势估计偏差:Value模型不准
  4. 梯度爆炸:长序列+高方差梯度

防护措施:

  1. KL惩罚:限制策略偏离
  2. 梯度裁剪:防止梯度爆炸
  3. 奖励归一化:稳定训练
  4. 早停:基于KL散度或奖励饱和

4.8.2 容错

大规模RL训练的容错挑战:

  • Actor数量多(1000+),故障率高
  • 经验缓冲需要持久化
  • 训练状态需要checkpoint

方案:

  1. 弹性Actor:Actor故障不影响Learner
  2. 分布式经验缓冲:持久化经验数据
  3. 异步checkpoint:不阻塞训练

五、RL Infra 关键技术点总结

5.1 生成阶段优化(最关键)

优化点                          效果
─────────────────────────────────────────
推理引擎(vLLM/SGLang)          2-5x 吞吐提升
连续批处理                      2-3x GPU利用率
前缀缓存                       30-50% 推理加速
异步生成(不阻塞训练)           50% 总时间节省
批量采样(同一prompt多response)  经验效率提升

5.2 内存优化

优化点                          效果
─────────────────────────────────────────
GRPO替代PPO(去掉Value模型)    节省25%内存
Reference模型offload到CPU       节省1个模型内存
Reward模型INT8量化              节省50%Reward内存
LoRA训练                       节省90%+优化器状态
梯度检查点                      节省60-80%激活内存

5.3 算法优化(减少Infra负担)

优化点                          效果
─────────────────────────────────────────
GRPO(无Critic)               去掉1个模型
DPO/SimPO(无RM无RL)          去掉2个模型
RLOO(REINFORCE)              简化优势估计
多次复用数据                    减少生成次数
离线数据混合                    减少在线生成需求

5.4 通信优化

优化点                          效果
─────────────────────────────────────────
模型同步策略(异步/半同步)      减少等待时间
经验压缩(量化observation)      减少传输带宽
共享内存(同节点)              避免序列化开销
流水线通信                      隐藏通信延迟

六、推荐阅读路径

入门(理解RL Infra核心问题)

  1. InstructGPT - RLHF完整流程
  2. IMPALA - Actor-Learner架构
  3. DeepSpeed-Chat - 工业级RLHF系统
  4. GRPO (DeepSeekMath) - 简化RL算法

进阶(系统优化)

  1. OpenRLHF - 开源RLHF框架
  2. ReaLHF - 动态重并行
  3. SEED RL - GPU集中推理
  4. Sample Factory - 高吞吐异步RL
  5. vLLM - 高效推理引擎
  6. SGLang - 结构化生成

前沿(最新进展)

  1. DeepSeek-R1 - GRPO大规模应用
  2. ReMax - 简化RL训练
  3. RLOO - REINFORCE变体
  4. SimPO - 无参考偏好优化
  5. Rule-Based Rewards - 规则奖励

按技术栈

  • DeepSpeed系:DeepSpeed-Chat → ZeRO → DeepSpeed-FastGen
  • vLLM系:vLLM → SGLang → TensorRT-LLM
  • 开源框架:OpenRLHF → TRL → alignment-handbook
  • 简化算法:PPO → GRPO → ReMax → RLOO → DPO → SimPO
  • 环境加速:Isaac Gym → Brax → EnvPool