当前位置: 首页 > news >正文

DPO vs PPO,偏好优化的两条技术路径

1. 背景

在大模型对齐(alignment)里,常见的两类方法是:

  • PPO:强化学习经典算法,OpenAI 在 RLHF 里用它来“用奖励模型更新策略”。

  • DPO:2023 年提出的新方法(参考论文《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》),绕过了奖励模型,直接用偏好对 (chosen/rejected) 来优化。


2. PPO(Proximal Policy Optimization)

2.1 核心思想

  • 来自强化学习领域,是一种 on-policy 策略梯度方法

  • 用奖励模型(Reward Model)给生成的文本打分。

  • 目标是最大化期望奖励,同时用 KL 惩罚 约束策略不要偏离初始模型太远。

2.2 损失函数(简化)

LPPO(θ)=Et[min⁡(rt(θ)A^t,  clip(rt(θ),1−ϵ,1+ϵ)A^t)]L^{PPO}(\theta) = \mathbb{E}_t \Big[ \min( r_t(\theta) \hat{A}_t, \; \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t ) \Big]

其中:

  • rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_\text{old}}(a_t|s_t)}(策略比值)

  • A^t\hat{A}_t:优势函数(由奖励模型给出)

  • clip:限制更新幅度,避免策略崩溃。

2.3 特点

  • 优点:稳定性较好;能处理连续更新。

  • 缺点:需要训练一个独立的奖励模型,流程复杂;计算成本大。


3. DPO(Direct Preference Optimization)

3.1 核心思想

  • 用人类/自我博弈生成的偏好对:

    • chosen = 更好的回答

    • rejected = 更差的回答

  • 不需要显式训练奖励模型,而是把“奖励隐含在概率分布里”。

  • 直接优化策略模型,使得它更偏向 chosen

3.2 损失函数(简化)

LDPO(θ)=−E(x,y+,y−)[log⁡σ(β⋅(log⁡πθ(y+∣x)−log⁡πθ(y−∣x)−log⁡πref(y+∣x)+log⁡πref(y−∣x)))]L^{DPO}(\theta) = - \mathbb{E}_{(x, y^+, y^-)} \Big[ \log \sigma\big(\beta \cdot (\log \pi_\theta(y^+|x) - \log \pi_\theta(y^-|x) - \log \pi_{\text{ref}}(y^+|x) + \log \pi_{\text{ref}}(y^-|x)) \big) \Big]

其中:

  • y+y^+:chosen

  • y−y^-:rejected

  • πref\pi_{\text{ref}}:参考模型(通常是初始 SFT 模型)

  • β\beta:温度参数,调节强度

  • 本质上是一个 对比学习(contrastive learning) 的形式。

3.3 特点

  • 优点

    • 不需要奖励模型,流程更简单。

    • 样本利用率高,对训练稳定。

  • 缺点

    • 需要偏好对 (chosen/rejected),不能直接用单个答案 + 分数。

    • 不适合在线优化,更适合离线批量训练。


4. 对比总结

特点PPODPO
提出时间2017(RL 算法)→ RLHF2023(斯坦福团队)
是否需要奖励模型✅ 需要❌ 不需要
输入形式答案 + 奖励分数偏好对 (chosen, rejected)
优化方式强化学习(on-policy)直接偏好对比(对比学习)
训练稳定性相对复杂,易发散更稳定,收敛快
适合场景在线训练,奖励函数明确(数学/代码/对话安全性)离线批量微调,数据是偏好对(人类标注/自我博弈)
代表案例OpenAI GPT-4 RLHFDeepSeek R1(自博弈 + DPO)

5. 与 RLHF、自我博弈的关系

  • RLHF + PPO = 经典路线(GPT-4、Claude):人类标注 → 奖励模型 → PPO 优化。

  • 自我博弈 + DPO = 新兴路线(DeepSeek R1):模型自己对弈 → 偏好对 → DPO 微调。

  • 混合范式

    • 有人类数据时用 PPO 强化价值观对齐;

    • 有大规模自生成数据时用 DPO 提升推理/逻辑能力。


6. 一句话理解

  • PPO:模型像在健身,奖励模型是教练,不断纠正姿势。

  • DPO:模型像在辩论,直接看“好答案 vs 坏答案”,学会站在胜方。

http://www.dtcms.com/a/381010.html

相关文章:

  • clickhouse的UInt64类型(countIf() 函数返回)
  • 算法之线性基
  • GlobalBuildingAtlas 建筑物白模数据下载
  • 用pywin32连接autocad 写一个利用遗传算法从选择的闭合图形内进行最优利用率的排版 ai草稿
  • 性能测试工具JvisualVM/jconsole使用
  • 面试题:Redis要点总结(性能和使用)
  • 无卡发薪系统:灵活用工全链条协同的核心枢纽( “数据互通、流程联动” 为核心,将人力招聘、劳务结算、电子合同签约、保险投保深度整合,构建灵活用工管理闭环。)
  • 万物皆可PID:深入理解控制算法在OpenBMC风扇调速中的应用
  • Centos修改主机明后oracle的修改
  • 使用 nanoVLM 训练一个 VLM
  • 2025年- H135-Lc209. 长度最小的子数组(字符串)--Java版
  • 数据库建表练习
  • 使用tree命令导出文件夹/文件的目录树(linux)
  • 【SQL】指定日期的产品价格
  • 在WPF项目中使用阿里图标库iconfont
  • 新能源知识库(91)《新型储能规模化行动方案》精华摘引
  • 51c自动驾驶~合集29
  • Arbess V2.0.7版本发布,支持Docker/主机蓝绿部署任务,支持Gradle构建、Agent运行策略
  • 中科米堆CASAIM自动化三维检测系统-支持批量测量工件三维尺寸
  • 【学习K230-例程19】GT6700-TCP-Client
  • Java链表
  • 【PostgreSQL内核学习:表达式】
  • 步骤流程中日志记录方案(类aop)
  • React.memo 小练习题 + 参考答案
  • Java 的即时编译器(JIT)优化编译探测技术
  • 《计算机网络安全》实验报告一 现代网络安全挑战 拒绝服务与分布式拒绝服务攻击的演变与防御策略(4)
  • 综合体EMS微电网能效管理系统解决方案
  • ARM2.(汇编语言)
  • 从“插件化“到“智能化“:解密Semantic Kernel中Microsoft Graph的架构设计艺术
  • TDengine 特殊函数 MODE() 用户手册