type
status
date
slug
summary
tags
category
icon
password
📎
DPO 是纯纯的 数学魔法时间
 
参考 zhuanlan.zhihu.comzhuanlan.zhihu.com

1. 先解释下后面的符号含义

:是 reward_model,
:是我们要优化的模型(actor model),
:是 dpo 和 ppo 都用到的 reference_model。

2. 再看看几个重要的 loss 和 公式

RLHF 一般会分 2 步:
  • 第一步是训练 reward model。训练数据是同一个 prompt 的 2 个回答,让人或 GPT4 标注哪个回答更好,reward model 会去优化如下的 loss:
    •  
  • 第二步是用 RL 算法来提升模型的得分(PPO简化版,这里的loss并非 actor 和 critic loss 而是策略梯度下降的loss):
  • dpo loss:
  • KL 散度:

3. OK 正式开始推导

针对 ppo 的 loss 函数,我们做以下变换:
  • 代入 KL 散度( 提取放到了左下角):
  • 乘上 ,把 max 变成 min 得:
  • 等价变换得:
  • 根据 得:
  • 这里我们可以构造出一个新的概率分布:
  • 进行分母归一化,为的是使保证分布的概率和等于 1,分母:
  • 继续对 ppo 的 loss 函数等价变换得:
  • 化简得:
  • 由于 完全没有关系,可以省略,得:
  • 代入 KL 散度得(左下角的 没有了):
  • 由于 KL 散度的非负性质,在 2 个分布相等时取最小值。 的最优解就是 ,PPO 的最优概率分布就是
  • 也就是说,在已知 Reward_model 的参数 的情况下,我们可以求得 PPO 的最优解
  • 另一个角度来说,由 的公式,我们相当于是得到了 的关系,那么是否我们可以把训练 转化成直接去训练 呢?
  • 转换一下 的定义式可以得到:
  • 等价变换得:
  • 的等价表达式代入到 Reward_model 的 loss 函数:
  • DPO 通过以上的公式转换把 RLHF 无损地转化为了 SFT,在训练的时候不再需要同时跑 4 个模型(reward model, ref model, critic, actor),而是只用跑 actor 和 ref 2 个模型,甚至由于不再在线采数据,ref model 的输出可以预先存下来,训练的时候重复使用。
 
百度云4机A800测试RAG技术汇总(2) 查询增强
Loading...