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

DPO算法

DPO(Direct Preference Optimization)直接偏好优化。

训练集每个样本是一个三元组,结构如下

(prompt, chosen, rejected)

chosen(被选响应)
指针对同一提示(prompt),人类标注者或评估系统认为质量更高、更符合需求的响应。例如:

提示:“请解释水的三态变化。”
chosen​:“水有三种状态:固态、液态和气态。温度变化会导致状态转化,如冰融化成水,水蒸发成水蒸气。”

rejected(被拒响应)
指针对同一提示,人类标注者认为质量较低、不符合需求或存在错误的响应。例如:

rejected:“水是一种液体,在自然界中很常见。”(未完整回答问题)

策略模型(Policy Model)

定义与作用
策略模型是待优化的目标模型,其参数在训练过程中会被更新,目标是学习生成更符合人类偏好的响应。

训练机制

  • 接收输入提示(prompt)后,策略模型会生成响应并计算其概率分布。
  • 通过DPO损失函数(如基于Bradley-Terry模型的损失),模型调整参数以提高被选响应(chosen)的生成概率,降低被拒响应(rejected)的概率。

特点

  • 可训练:参数通过梯度更新不断优化。
  • 对齐偏好:最终目标是使模型输出更接近人类标注的高质量响应。
参考模型(Reference Model)
  • 定义与作用:

    参考模型是参数冻结的基准模型,通常为监督微调(SFT)后的模型,提供原始能力分布作为优化约束。

  • 核心功能:

    • 计算隐式奖励:通过比较策略模型与参考模型的输出概率差异,生成隐式奖励信号(如:rθ(x,y)=βlog⁡πθ(y∣x)πref(y∣x)r_θ(x,y)=\beta \log \frac{\pi_{\theta}(y|x)}{\pi_{\text{ref}}(y|x)}rθ(x,y)=βlogπref(yx)πθ(yx)

    • 控制分布偏移:KL散度约束防止策略模型过度偏离参考模型,避免生成不合理或低质量内容

  • 特点:

    • 参数固定:训练中不更新权重,仅提供计算基准。
    • 稳定性保障:作为正则化项,确保训练过程稳定。
Loss函数

直接偏好优化 (DPO) 损失函数

数学公式表示:

LDPO=−log⁡σ(β(log⁡πθ(yw∣x)πref(yw∣x)−log⁡πθ(yl∣x)πref(yl∣x))) \mathcal{L}_{\text{DPO}} = -\log \sigma\left(\beta\left(\log \frac{\pi_{\theta}\left(y_{w} \mid x\right)}{\pi_{\text{ref}}\left(y_{w} \mid x\right)}-\log \frac{\pi_{\theta}\left(y_{l} \mid x\right)}{\pi_{\text{ref}}\left(y_{l} \mid x\right)}\right)\right) LDPO=logσ(β(logπref(ywx)πθ(ywx)logπref(ylx)πθ(ylx)))

公式符号说明:
符号含义
LDPO\mathcal{L}_{\text{DPO}}LDPODPO 损失函数
σ\sigmaσSigmoid 激活函数
β\betaβ温度参数 (控制偏好强度)
πθ\pi_{\theta}πθ策略模型 (待优化)
πref\pi_{\text{ref}}πref参考模型 (固定参数)
xxx输入提示 (prompt)
ywy_wyw被选响应 (chosen response)
yly_lyl被拒响应 (rejected response)
公式解读:
  1. 核心计算:比较策略模型与参考模型对优质(ywy_wyw)和劣质(yly_lyl)响应的概率比差异
    log⁡πθ(yw∣x)πref(yw∣x)−log⁡πθ(yl∣x)πref(yl∣x)\log \frac{\pi_{\theta}(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \log \frac{\pi_{\theta}(y_l|x)}{\pi_{\text{ref}}(y_l|x)}logπref(ywx)πθ(ywx)logπref(ylx)πθ(ylx)

  2. β\betaβ 缩放:调节偏好差异的显著程度

  3. Sigmoid 转换:σ(⋅)\sigma(\cdot)σ() 将差异映射到 (0,1) 区间

  4. 负对数损失:−log⁡(⋅)-\log(\cdot)log() 使模型优化倾向于更大的偏好差异

参考

https://mp.weixin.qq.com/s/jnSGEBgzTkS4rid2rP3Omg

http://www.xdnf.cn/news/1471321.html

相关文章:

  • C++中虚函数与构造/析构函数的深度解析
  • 标注格式转换csv转xml
  • 【Hot100】回溯
  • 遇到“指责型人格”别硬碰硬!3个反拿捏技巧,让他从挑刺变闭嘴
  • 【前端教程】JavaScript DOM 操作实战案例详解
  • javafx笔记
  • 有序数组,距离目标最近的k个数 二分查找
  • 2025 年高教社杯全国大学生数学建模竞赛C 题 NIPT 的时点选择与胎儿的异常判定详解(一)
  • 数据库基础知识——聚合函数、分组查询
  • ResNet 迁移学习---加速深度学习模型训练
  • 瑞芯微RV1126目标识别算法Yolov8的部署应用
  • 关于kubernetes和docker版本的一些总结
  • 工业设备管理软件与AI_HawkEye智能运维平台_璞华大数据
  • 自定义格式化数据(BYOFD)(81)
  • Python快速入门专业版(五):从 print 到交互:Python 解释器与 IDLE 的基础使用
  • 如何在序列水平上简单分析一个新蛋白质序列(novel protein sequence)
  • AM J BOT | 黄芪稳健骨架树构建
  • 360° 拖动旋转的角度计算原理
  • LangChain: Memory
  • 嵌入式学习日记(41)串口
  • 数据库(基础操作)
  • 载流子寿命
  • 基于FPGA实现CRC校验码算法(以MODBUS中校验码要求为例)verilog代码+仿真验证
  • Python命令行选项(flags)解析
  • 漫画布局面板设计系统
  • 事务管理的选择:为何 @Transactional 并非万能,TransactionTemplate 更值得信赖
  • 从Java全栈到前端框架:一位程序员的实战之路
  • NestJS 整合 Redis 特性详解
  • 2025年统计与数据分析领域专业认证发展指南
  • [TryHackMe]Wordpress: CVE-2021-29447(wp漏洞利用-SSRF+WpGetShell)