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(y∣x)πθ(y∣x))
控制分布偏移: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(yw∣x)πθ(yw∣x)−logπref(yl∣x)πθ(yl∣x)))
公式符号说明:
符号 | 含义 |
---|---|
LDPO\mathcal{L}_{\text{DPO}}LDPO | DPO 损失函数 |
σ\sigmaσ | Sigmoid 激活函数 |
β\betaβ | 温度参数 (控制偏好强度) |
πθ\pi_{\theta}πθ | 策略模型 (待优化) |
πref\pi_{\text{ref}}πref | 参考模型 (固定参数) |
xxx | 输入提示 (prompt) |
ywy_wyw | 被选响应 (chosen response) |
yly_lyl | 被拒响应 (rejected response) |
公式解读:
核心计算:比较策略模型与参考模型对优质(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(yw∣x)πθ(yw∣x)−logπref(yl∣x)πθ(yl∣x)β\betaβ 缩放:调节偏好差异的显著程度
Sigmoid 转换:σ(⋅)\sigma(\cdot)σ(⋅) 将差异映射到 (0,1) 区间
负对数损失:−log(⋅)-\log(\cdot)−log(⋅) 使模型优化倾向于更大的偏好差异
参考
https://mp.weixin.qq.com/s/jnSGEBgzTkS4rid2rP3Omg