Agent RL(番外):DPO 到底补充了什么
这是一篇可选的背景文章,只帮助理解后训练里「偏好优化」和「环境交互式 RL」怎么分工,不是阅读 PPO、GRPO 和 Agent RL 主线的前置条件。
主线导航: 为什么需要 Agent RL · 从工具调用到可训练轨迹 · 从 PPO 到 GRPO
1. DPO 解决的是什么问题
DPO 直接用偏好对更新模型,省掉了单独训练奖励模型和在线采样这两步。
假设同一个输入 x 有两个回答:人或标注器更喜欢 yw,不喜欢 yl。DPO 直接用这样的偏好对更新语言模型,让它相对参考模型更倾向于 yw:
输入 x → 偏好回答 y_w / 非偏好回答 y_l → 一次偏好优化更新它不需要先训练一个单独的奖励模型,也不要求每次更新前都让当前策略进入环境采样。「直接」是相对经典 RLHF 流程而言的,它仍然需要偏好数据、参考模型和常规的训练稳定手段。
2. 它和 SFT、PPO、GRPO 分别差在哪里
三者的区别在于用什么数据、一次更新在拉动什么。它们可以串联使用,也可以只用其中一部分。
| 方法 | 主要数据 | 一次更新在做什么 | 是否必须执行环境 |
|---|---|---|---|
| SFT | 示范回答或成功轨迹 | 提高示范 token 的概率 | 否 |
| DPO | 同一输入下的偏好对 | 拉大偏好与非偏好回答的相对概率 | 否 |
| PPO / GRPO | 策略采样的轨迹与奖励 | 提高高优势动作的概率 | 通常需要 |
DPO 是偏好数据上的后训练目标,PPO 和 GRPO 是利用结果反馈优化策略的 RL 目标。三者可以串起来:先用 SFT 学会基本格式,再用 DPO 对齐偏好,最后在可验证的环境里用 Agent RL 改善多步决策。只用其中一部分也完全可以,取决于手头有什么数据、有没有可用的环境。
3. 只看一个目标的形状
损失下降的方向是:偏好回答相对参考模型的概率上升,非偏好回答的相对概率下降。
DPO 的常见目标是:
LDPO=−logσ(β[logπref(yw∣x)πθ(yw∣x)−logπref(yl∣x)πθ(yl∣x)])
πθ 是正在更新的策略,πref 是冻结的参考策略,β 控制相对参考策略能偏离多远。直观地说,模型提高偏好回答相对参考策略的概率,同时降低非偏好回答的相对概率,损失就会下降。
这里回答的概率通常是对回答 token 的对数概率求和,或者按实现规定的方式聚合。输入的提示词不算偏好动作;同样,Agent 轨迹里的工具观察也不是模型生成的 token。
4. 为什么 DPO 对 Agent RL 有帮助,但不能替代它
DPO 比较的是两条已经收集到的轨迹。环境转移、执行成本和探索新分支,都不会因为换了目标函数而自动出现。
DPO 可以帮助模型学会:
- 更符合人类偏好的最终回答;
- 更稳定的格式、拒答和风格;
- 在已有的偏好数据里,区分较好的完整轨迹和较差的完整轨迹。
但它本身不回答 Agent RL 的几个核心问题:
- 在新的环境状态下,下一步该调用哪个工具;
- 一次修改导致测试失败之后,怎样恢复;
- 终局成功应该怎样分配到长轨迹的早期动作上;
- 偏好数据没有覆盖到的分支,怎样通过探索去发现。
把成功轨迹和失败轨迹配成偏好对,DPO 就能用失败样本做离线更新,但它比较的仍然是两条已经收集好的轨迹。
5. 什么时候值得单独使用 DPO
偏好数据充足、环境执行昂贵、目标主要是回答质量和风格时,DPO 是低成本的选择。它学到的是标注规则实际奖励的东西。
当手里有大量稳定的偏好对、环境执行很贵,或者目标主要是最终回答的质量和行为风格时,DPO 通常是低成本的补充。对代码 Agent,可以把补丁质量、测试结果和审阅意见组织成偏好对,再离线训练。
需要留意的是:偏好标注的一致性、参考模型的选择、回答长度的偏差,以及数据分布的漂移。一条「看起来更好」的完整轨迹也可能包含不必要的工具调用;如果偏好规则没有把成本和可靠性表达出来,模型就会学到标注器实际奖励的那些表面特征。
6. 阅读主线时记住三句话
- DPO 是一种偏好优化方法,不是 Agent RL 的必经阶段。
- DPO 的一次更新可以不执行环境,但数据仍然可能来自环境轨迹。
- Agent RL 关心的是在交互中改变决策分布;DPO 关心的是在偏好对上改变相对概率。
有了这三点,主线第三篇里「DPO 与成功轨迹 SFT 放在哪里」那一节就足以衔接,不需要先掌握 DPO 的完整推导。
参考资料
- Direct Preference Optimization:DPO 原论文。
- InstructGPT:SFT、奖励模型和 PPO 组成的经典 RLHF 流程。
版权所有
版权归属:Pray0