mally的技术笔记mally的技术笔记
AIGC相关
关于作者
AIGC相关
关于作者
  • AIGC相关
  • 长文

    • 长文
    • MoE 梳理
    • Tokenization 分词
    • VERL 框架看 GRPO 过程
  • 细碎大模型知识

    • 细碎大模型知识
    • clip-higher 为什么有效
    • F1 分数是什么
    • 温度 temperature 是什么
    • 分词和嵌入的关系
    • SwiGLU 激活函数
    • 拒绝采样微调是什么
    • 策略熵和交叉熵
    • GRPO 流程
    • DPO 公式推导
  • 论文阅读

    • 论文阅读
    • Demons in the Detail: On Implementing Load Balancing Loss for Training Specialized Mixture-of-Expert
    • Scaling Relationship on Learning Mathematical Reasoning with Large Language Models
    • switch transfomer 论文
    • RAGEN: Understanding Self-Evolution in LLM Agents via Multi-Turn Reinforcement Learning
    • Mixture of Experts Explained
    • Demons in the Detail: On Implementing Load Balancing Loss for Training Specialized Mixture-of-Expert

      • Demons in the Detail: On Implementing Load Balancing Loss for Training Specialized Mixture-of-Expert
      • 背景知识

DPO 公式推导

DPO 公式

数据集 {x,yw,yl},其中 x 表示问题,yw表示好的(winner), yl表示不好的(loser) 。

Jr(r,D)=maxE(x,ytr,ytl)∼D[log⁡σ{βlog⁡πθ^(yu|x)πref(yu|x)−βlog⁡πθ^(yl|x)πref(yl|x)}]

注意点:

由于是句子级别的,x 和 y 都是由很多 token 构成的, π(y|x)其实是把生成过程的每个 token 的交叉熵加起来了。

DPO 的奖励分数是什么

就是r(x,y)=βlog⁡πθ∗(y|x)πref(y|x)+βlog⁡Z(x)

DPO 公式怎么来的

1.DPO 是为了简化 PPO 而产生

PPO 来源于 policy-based 的强化学习,它希望寻找策略使得策略奖励最大(另一类 vlue-based,是希望行动奖励最大),同时为了稳定它希望当前新策略和旧策略不能差异太大。

maxπEx∼D,y∼π[r(x,y)]−βDKL[π(y|x)∥πref(y|x)]

其中:

  • r(x,y):奖励函数
  • β:约束强度系数
  • DKL:KL 散度,衡量策略 π与参考策略(旧策略) πref的偏离程度

然而,PPO 这样首先得训一个奖励模型,这样太麻烦。DPO 就希望绕过这个。

于是 DPO 是对 PPO 的公式展开。

2.对 PPO 公式展开,利用策略分布π来表示奖励 r(x,y)。

定义一个新的概率分布π∗=1Z(x)πref(y|x)⋅exp⁡{1βr(x,y)},上述展开的公式则可以写成

要让πθ使得 J 最小,而logZ(x) 与πθ无关,故而只要优化第一项 KL 就好,KL 最小,则两个分布一样,即π∗=πθ,那么这个公式为

πθ=1Z(x)πref(y|x)⋅exp⁡{1βr(x,y)}

那么从这个公式就可以反推出奖励模型的表达式:r(x,y)=βlog⁡πθ∗(y|x)πref(y|x)+βlog⁡Z(x),这时候就可以把优化奖励模型 r 变成优化π∗了(Z(x)在后面可以)。

3.引入 Bradley-Terry 模型,通过偏好对比方式化解了直接最大化。

首先看 Bradley-Terry 模型定义:

把要奖励最大,利用 Bradley-Terry 化解为了好的回答比坏的回答胜出的概率更大。

即 pβ∗(yw≻yl|x)=r(x,yw)r(x,yw)+r(x,yl),

化简后就是 pβ∗=sigmoid(βlog⁡πref(y1|x)π∗(y1|x)−βlog⁡πref(y2|x)π∗(y2|x))

故而 DPO 的损失函数为:

其他问题:

  1. 为什么 DPO 训练会出现正样本 reward 也会降低的现象

参考博客

DPO 公式推导 把推导逻辑写清楚了

(DPO) Bradley-Terry 模型概念-CSDN 博客 讲 Bradley-Terry 概念

PG/PPO/DPO/GRPO/MDPO 公式推导 | JJJYmmm's Blo 公式推导清楚

Direct Preference Optimization (DPO)原理详解及公式推导-CSDN 博客 非常详细

Prev
GRPO 流程