Skip to content

2. 核心思想 ​

一句话理解 ​

RL Post-Training 的核心思想是:让模型在自己生成的数据上学习,用奖励信号而非人工标注来引导方向。基础设施的设计围绕"高效生成 → 准确评分 → 稳定更新"这个闭环展开。

五个核心抽象 ​

1. Rollout(采样) ​

Rollout 是用当前策略(Policy)模型生成一批数据的过程。在 LLM 语境下,就是给一批 prompt,让模型生成 response。

prompts: [p1, p2, ..., pN]
   ↓ 当前 policy 模型
rollouts: [(p1, r1), (p2, r2), ..., (pN, rN)]

关键工程指标:

  • 吞吐:每秒生成多少 token(直接决定训练 wall time)
  • 多样性:通过 temperature / top_p / top_k 控制,影响探索
  • 长度分布:影响 KV Cache 占用与负载均衡

2. Reward(奖励) ​

Reward 是对每个 rollout 样本打分,告诉模型"这个 response 好不好"。奖励来源有三类:

类型代表优点缺点
Reward Model人工偏好数据训练的标量模型通用、可打分主观任务训练成本高、易被 hack
可验证奖励(Verifiable Reward)数学答案比对、代码跑测试准确、不可 hack、零成本只适用有标准答案的任务
规则 / AI 反馈Constitutional AI 的批判模型灵活实现复杂

DeepSeek-R1 的关键洞察是:对于有标准答案的任务(数学、代码),可验证奖励 > Reward Model。这简化了基建——不需要单独部署一个 Reward Model 服务。

3. Advantage(优势) ​

Advantage 衡量"这个 response 比平均水平好多少"。它是 PPO/GRPO 的核心:

  • PPO:用一个 Critic 网络估计 Value,Advantage = Reward - Value。
  • GRPO:用同组(group)其他样本的平均 Reward 作为基线,Advantage = Reward - group_mean。

GRPO 的工程优势:省掉了 Critic 网络,显存减半,工程链路大幅简化。代价是需要为每个 prompt 生成多个 response(通常 8-64 个),增加了 Rollout 压力。

2025-2026 年围绕 GRPO 的弱点(长度偏差、零 advantage 坍缩、探索停滞、长序列不稳定)出现了一系列变体:DAPO(动态采样 + clip 改进)、VAPO(价值预训练 + 非对称裁剪)、GSPO(序列级 importance sampling)、Dr.GRPO(去长度偏差)。它们共享同一套工程骨架,多数可以只改 core_algos 级别的纯函数就接入现有框架。

# PPO(需要 Critic)
advantage = reward - critic(state)

# GRPO(用 group baseline)
advantage = reward - mean(rewards_in_group)

4. Policy Update(策略更新) ​

根据 advantage 更新 policy 模型的参数。核心是 PPO clipped objective:

L = min(r(θ) * A, clip(r(θ), 1-ε, 1+ε) * A)

其中 r(θ) = π_new(a|s) / π_old(a|s) 是新旧策略的概率比,clip 防止更新过大。

工程关键:每次更新都要重新计算 π_new 对所有 rollout token 的概率,这是一次完整的前向+反向。

5. KL Penalty(KL 散度惩罚) ​

为了防止 policy 偏离 reference(原始 SFT 模型)太远导致崩溃,通常加一个 KL 惩罚项:

reward_total = reward - β * KL(π_policy || π_ref)

工程关键:这意味着推理时需要同时部署 Policy 和 Reference 两个模型,显存翻倍。

三个核心设计权衡 ​

权衡一:On-Policy vs Off-Policy ​

模式定义优点缺点
On-Policy训练数据全部来自当前策略算法收敛性最强Rollout 必须等最新权重,无法流水
Off-Policy训练数据可以来自稍旧的策略可以异步流水线,GPU 利用率高需要 importance sampling 修正,可能不稳定

工程折中:近端 On-Policy——允许 Rollout 用滞后 1-N step 的权重,配合 ratio clipping 把偏差控制在可接受范围。veRL 和 OpenRLHF 都支持这种"半异步"模式。

2026 年的实践演进(截至 2026-10):半异步/全异步已成为生产标配,陈旧性控制收敛为三个正交手段的组合:

  1. 逐样本版本打标(per-sample version tagging):每个 rollout 样本记录生成时的 weight_version,超龄样本直接丢弃。
  2. 深度上界(depth bounding):rollout 缓冲队列限容,限制策略漂移的最大步数。
  3. 重要性采样修正(TIS):对lag 样本用 w = clip(π_new/π_old, 1-ε, 1+ε) 截断修正。

代表实现:veRL v0.9 的 V1 trainer(sync / colocate_async / separate_async 三模式,separate_async 可把训练侧空闲 GPU 借给生成侧)、AReaL 2.0 的四微服务全异步架构、OpenRLHF 的 FlashREINFORCE(单样本、无 Critic、把 KL 信任域直接建在 vLLM logprobs 上)。HuggingFace 对 16 个开源异步 RL 框架的调研(2026-03)也确认了"版本打标 + 深度上界 + 可选 IS 修正"是主流答案。

权衡二:Rollout / Train 资源配比 ​

Rollout 和 Train 消耗 GPU 的比例取决于:

  • 模型大小:70B 模型 Train 显存 6-8x,Rollout 显存 1-2x
  • 生成长度:长推理(8k-32k token)Rollout 时间是 Train 的 5-10 倍
  • GRPO group size:group=32 意味着 Rollout 样本量是 Train 的 32 倍

经验值(R1 类长推理训练):

  • Rollout 占 60-80% GPU
  • Train 占 20-40% GPU

权衡三:同卡部署 vs 分卡部署 ​

模式描述优点缺点
Co-located(同卡)Rollout 和 Train 跑在同一组 GPU 上,时间分片资源利用率最高需要频繁的引擎切换与权重重载
Disaggregated(分卡)Rollout 和 Train 各占一组 GPU引擎可独立优化跨集群权重同步开销大

veRL 同时支持两种模式,用 HybridEngine 抽象;OpenRLHF 主推分卡 + Ray 调度。

与 SFT 训练的核心差异(工程视角) ​

维度SFTRL Post-Training
数据流静态 dataloader → GPU在线生成 → 评分 → 训练
关键 metricLossReward / KL / Response Length
引擎单一训练框架推理引擎 + 训练框架
显存占用参数+梯度+优化器+激活上述 + KV Cache + Ref/Reward 模型
故障模式OOM、loss NaN上述 + reward hacking、KL 爆炸、length collapse
调度单位Data parallel groupRollout worker group + Train worker group

一个 RL Step 的逻辑视图 ​

本章小结 ​

RL Post-Training 的核心思想可以浓缩为四句话:

  1. 用模型生成数据,而非人工标注(Rollout)。
  2. 用可验证的奖励信号,而非主观偏好(Verifiable Reward)。
  3. 用组内相对优势代替绝对值函数(GRPO 对 PPO 的简化)。
  4. 推理和训练必须协同设计,不能独立优化(Rollout/Train 一体化基建)。
  5. 异步是利用率的生命线,陈旧性控制是收敛性的底线(版本打标 + 深度上界 + IS 修正)。

下一章我们看这些思想如何落到具体的系统架构上。

Released under CC-BY-SA-4.0 License.