Policy Gradient(策略梯度)
根据 reward / advantage,直接调整模型生成某个 token / action 的概率——如果好就提高概率,如果差就降低概率。
是什么
Policy Gradient 是一种直接优化策略(policy)的强化学习方法。它不要求有标准答案,而是根据奖励信号来调整模型的行为概率。
Policy 的定义
在强化学习中,policy = 策略,记作:
即在状态 下,模型选择动作 的概率。
在 LLM 中:
所以对 LLM 来说,policy 就是:当前模型在这个前缀下生成下一个 token 的概率分布。
On-Policy 与 Off-Policy
On-Policy(在策略)
训练数据来自当前正在训练的这个 policy 自己。
模型先自己生成轨迹,然后用这些自己生成的轨迹来更新自己:
当前模型 π_θ 生成答案
→ reward model / verifier 给反馈
→ 用这些反馈更新 π_θ
GRPO、PPO、RLVR 通常是 on-policy。OPD 也是 on-policy,因为训练状态来自学生当前模型自己生成的轨迹。
Off-Policy(离策略)
训练数据不是来自当前正在训练的 policy,而是来自别的 policy、旧 policy、教师模型、人类数据、静态数据集等。
教师模型生成答案 / 人类写好答案
→ 学生模型学习
普通 SFT 和传统 KD 通常是 off-policy。
为什么区分 on/off-policy 很重要?
Off-policy 最大的问题是 distribution mismatch(分布不匹配):
- 训练时,学生看到的是教师的高质量轨迹:
A → B → C → 正确答案 - 推理时,学生自己可能生成:
A → D → E → 错误答案 - 学生训练时没见过
A → D → E这种自己会走到的状态,不知道怎么纠正
这就是 exposure bias(曝光偏差)。On-policy 训练解决了这个问题:训练数据永远来自学生自己当前会访问的状态分布。
| On-Policy | Off-Policy | |
|---|---|---|
| 轨迹来源 | 当前模型自己生成 | 教师/人类/旧模型/静态数据 |
| 优点 | 无分布偏移,训练-推理一致 | 数据复用,样本效率高 |
| 缺点 | 需要不断采样(计算成本高) | 分布不匹配,学生犯错后无法纠正 |
| 典型方法 | PPO, GRPO, OPD, RLVR | SFT, 普通 KD, DPO |
工作原理
核心目标:最大化期望奖励
即:从当前模型采样回答,希望这些回答的平均 reward 越高越好。
Policy Gradient 技巧
模型输出是离散 token,不能像普通回归那样对采样结果直接求导。Policy gradient theorem 给出:
对 LLM,回答由多个 token 组成 :
所以:
Advantage(优势函数)
实际训练中用 advantage 替代原始 reward:
其中 是 baseline(通常为一批样本的平均 reward)。
为什么需要 advantage? Reward 的绝对值不一定有意义,相对好坏更重要。
例如同一个 prompt,模型采了 4 个答案:
答案 A reward = 0.9
答案 B reward = 0.8
答案 C reward = 0.7
答案 D reward = 0.2
如果用原始 reward,它们都是正的,模型会提高所有答案的概率。但我们希望 A、B 被提高,D 被降低。
用平均 reward () 作为 baseline:
A: advantage = +0.25 → 提高
B: advantage = +0.15 → 提高
C: advantage = +0.05 → 微调
D: advantage = -0.45 → 显著降低
Policy-Gradient Loss
训练框架最小化 loss,所以将最大化目标写为负 loss:
这是最基本的 policy-gradient loss。 它的含义非常直观:
- (token/轨迹比平均好) → 提高该 token 的概率
- (token/轨迹比平均差) → 降低该 token 的概率
- (与平均持平) → 基本不更新
直观例子
假设模型面对 prompt 2 + 3 = ? 生成 5:
- 如果 reward = +1,loss = ,梯度下降会提高生成
5的概率 - 如果 reward = -1,loss = ,梯度下降会降低生成
5的概率
为什么重要
- RL 后训练的基础:PPO、GRPO、REINFORCE++ 等所有现代 LLM RL 算法都基于 policy gradient
- 不依赖标准答案:只需 reward 信号,不需要 ground truth——适用于创意写作、对话等无唯一正确答案的任务
- 探索能力:通过采样探索策略空间,可能发现超越教师的更好策略(这是蒸馏做不到的)
- 与 OPD 的桥梁:OPD 的 reverse KL loss 本质上可以看作以教师 logprob 为 advantage 的 policy gradient
与相邻概念的区别
| 方法 | 目标函数 | 信号类型 | 需要标准答案 |
|---|---|---|---|
| SFT(交叉熵) | Hard label | ✓ | |
| KD(Forward KL) | Soft distribution | ✗ | |
| DPO | Pairwise preference loss | 成对偏好 | ✗ |
| Policy Gradient | Scalar advantage | ✗ | |
| OPD(Reverse KL) | Teacher token logprob | ✗ |
常见误解
- ❌ “Policy gradient 就是 REINFORCE” → REINFORCE 是最基础的 policy gradient 算法(用 Monte Carlo 采样估计梯度),但现代方法(PPO、GRPO)在 REINFORCE 基础上加了 importance sampling、clipping、baseline 等大量改进。
- ❌ “Policy gradient 需要 reward model” → 不一定。Verifiable reward(如数学题答案对错、代码是否通过测试)可以直接作为 reward,无需训练 reward model。
- ❌ “On-policy 一定比 off-policy 好” → On-policy 避免了分布偏移,但每次更新后需要重新采样,计算成本高。Off-policy 可以复用数据,样本效率更高。实际训练通常结合两者。
- ❌ “Advantage 就是 reward 减 baseline” → 这是最简单形式。更复杂的 advantage estimator(如 GAE,Generalized Advantage Estimation)会考虑时序差分和未来奖励的衰减。
相关
- PPO(近端策略优化) — 基于 policy gradient 的经典 RL 算法,引入 clipping 稳定训练
- GRPO(组相对策略优化) — 去 Critic 的 PPO 变体,组内相对 advantage
- On-Policy Distillation(在策略蒸馏) — reverse KL 为 advantage 的 on-policy 蒸馏
- RLHF(人类反馈强化学习) — policy gradient 驱动的偏好对齐框架
- DPO(直接偏好优化) — 绕过 policy gradient 的对齐方法
- Knowledge Distillation(知识蒸馏) — 蒸馏大类,OPD 为 on-policy 变体
- verl — 实现 policy gradient 训练的开源框架
- Wiki 目录