问题与目标
SFT 学习“示范答案长什么样”,偏好对齐学习“多个可行答案中更偏好哪一个”。本篇比较 DPO、奖励模型加 PPO 与 GRPO 的数据和计算边界,并避免把所有后训练都叫 RLHF。
核心概念

| 方法 | 主要数据 | 是否在线生成 | 显式奖励模型 | 主要特点 |
|---|---|---|---|---|
| SFT | Prompt—Answer | 否 | 否 | 模仿高质量示范 |
| DPO | Prompt—Chosen—Rejected | 否 | 否 | 直接优化偏好对,链路较短 |
| RM + PPO | 偏好对及在线 Rollout | 是 | 是 | 灵活但系统复杂、资源高 |
| GRPO | Prompt、多个生成、奖励 | 是 | 可用可验证奖励 | 组内相对优势,常用于推理任务 |
Agent Runtime 是推理时执行;Agent Training 是用工具或环境 Rollout 产生训练信号。运行时 Agent 做得不好,可能是工具、Prompt、状态或模型能力问题,不应未经定位直接上 GRPO。
可运行实现
下面把同一 Prompt 的候选分数转换为 GRPO 风格的组内标准化优势:
python
import math
def group_advantages(rewards: list[float]) -> list[float]:
mean = sum(rewards) / len(rewards)
variance = sum((value - mean) ** 2 for value in rewards) / len(rewards)
std = math.sqrt(variance)
if std < 1e-8:
return [0.0] * len(rewards)
return [round((value - mean) / std, 4) for value in rewards]
rewards = [1.0, 0.7, -0.2, 0.5]
print(group_advantages(rewards))
这只演示相对优势,不包含策略目标、参考模型 KL 或完整 GRPO。若四个候选奖励完全相同,组内没有可学习的相对信号。
DPO 需要可靠偏好对;PPO/GRPO 需要生成预算和奖励。选择算法之前,先验证奖励与真实质量是否相关。
常见问题与排查
Chosen 总是更长
模型可能学到长度偏好而不是质量。分析长度、格式、来源和标注者偏差,构造长度匹配对照。
奖励模型得分持续上升
策略可能在利用奖励漏洞。用未参与训练的人工评价、任务成功率和安全约束复核。
DPO 不属于强化学习,所以没有风险
它仍会放大偏好数据的偏差,也需要参考模型、超参数和独立评估,只是没有在线环境 Rollout。
GRPO 就是训练会调用工具的 Agent
普通 GRPO 可用于可验证生成任务;工具型 Agent Training 还需要环境隔离、工具协议、Rollout 和结果奖励,工程复杂度更高。
小结
SFT、DPO、PPO 和 GRPO解决不同训练信号。先问手里有什么数据、奖励能否验证、能承担多少 Rollout 成本,再选择算法名称。
许可协议:CC BY-NC 4.0
更新于 1 小时前
觉得文章有帮助?点个赞吧!
0 条评论


