大模型学习笔记 - LLM 对齐优化算法 DPO

LLM - DPO

DPO 概述

大模型预训练是从大量语料中进行无监督学习,语料库内容混杂,训练的目标是语言模型损失,任务是next token prediction,生成的token 不可控,为了让大模型能生成符合人类偏好的答案(无毒无害等)一般都会进行微调和人类对齐,通常采用的方法是 基于人类反馈的强化学习方法RLHF. RLHF 是一个复杂且经常不稳定的过程,RLHF 分为2个步骤:

  1. 首先,训练一个SFT模型
  2. 然后,训练一个反映人类偏好的奖励模型 (Reward model),
  3. 最后,使用强化学习微调大型无监督 LM,以最大化这种估计奖励,而不会偏离原始模型太远。

DPO论文证明现有方法使用的基于 RL 的目标可以通过简单的二元交叉熵目标精确优化,大大简化了偏好学习管道。我们的方法利用了奖励模型参数化的特定选择,它可以在没有 RL 训练循环的情况下以封闭形式提取其最优策略。DPO是稳定的、高性能的、计算量轻的,在微调或执行显著的超参数调优时不需要从LM中采样。我们的实验表明,DPO可以微调LM,使其与人类偏好保持一致,甚至比现有方法更好。

核心就是:不需要显示地训练一个Reward Model,而是利用 从奖励函数到最优策略的解析映射,从而将 奖励函数上的偏好损失函数转换为策略上的偏好损失函数。
具体做法是给定人类对模型响应的偏好数据集,DPO使用简单的二元交叉熵目标优化策略,而无需在训练期间明确学习奖励函数或从策略中采样

DPO 目标函数推导

首先,DPO的目标函数是根据RLHF的2步骤的目标函数进行推理得到的。我们先看 RLHF步骤中的 目标函数:

一个是RewardModel:
m a x r θ E ( x , y w , y l ) ∈ D [ l o g ( σ ( r ϕ ( x , y w ) − r ϕ ( x , y l ) ) ) ] max_{r_{\theta}}E_{(x,y_w,y_l)\in D}[log(\sigma(r_{\phi}(x,y_w) - r_{\phi}(x,y_l)))] maxrθE(x,yw,yl)D[log(σ(rϕ(x,yw)rϕ(x,yl)))]
一个是RL目标函数:
m a x π θ E ( x ∈ D , y ∈ π θ ( y ∣ x ) ) [ r ϕ ( x , y ) ] − β D K L [ π θ ( y ∣ x ) ∣ ∣ π r e f ( y ∣ x ) ] max_{\pi_{\theta}}E_{(x \in D,y \in \pi_{\theta}(y|x))}[r_{\phi}(x,y)] - \beta D_{KL}[\pi_{\theta}(y|x)||\pi_{ref}(y|x)] maxπθE(xD,yπθ(yx))[rϕ(x,y)]βDKL[πθ(yx)∣∣πref(yx)]

下面我们针对RL的目标函数进行推导,看DPO的目标是如何得到的。

  1. 对于RL目标函数进行展开计算:
    m a x π θ E ( x ∈ D , y ∈ π θ ( y ∣ x ) ) [ r ϕ ( x , y ) ] − β D K L [ π θ ( y ∣ x ) ∣ ∣ π r e f ( y ∣ x ) ] max_{\pi_{\theta}}E_{(x \in D,y \in \pi_{\theta}(y|x))}[r_{\phi}(x,y)] - \beta D_{KL}[\pi_{\theta}(y|x)||\pi_{ref}(y|x)] maxπθE(xD,yπθ(yx))[rϕ(x,y)]βDKL[πθ(yx)∣∣πref(yx)]
    = m a x π θ E ( x ∈ D , y ∈ π θ ( y ∣ x ) ) [ r ϕ ( x , y ) ] − β l o g π θ ( y ∣ x ) π r e f ( y ∣ x ) =max_{\pi_{\theta}}E_{(x \in D,y \in \pi_{\theta}(y|x))}[r_{\phi}(x,y)] - \beta log\frac{\pi_{\theta}(y|x)}{\pi_{ref}(y|x)} =maxπθE(xD,yπθ(yx))[rϕ(x,y)]βlogπref(yx)πθ(yx)
    = m i n π θ E ( x ∈ D , y ∈ π θ ( y ∣ x ) ) [ β l o g π θ ( y ∣ x ) π r e f ( y ∣ x ) − r ϕ ( x , y ) ] =min_{\pi_{\theta}}E_{(x \in D,y \in \pi_{\theta}(y|x))}[\beta log\frac{\pi_{\theta}(y|x)}{\pi_{ref}(y|x)} - r_{\phi}(x,y)] =minπθE(xD,yπθ(yx))[βlogπref(yx)πθ(yx)rϕ(x,y)]
    = m i n π θ E ( x ∈ D , y ∈ π θ ( y ∣ x ) ) [ l o g π θ ( y ∣ x ) π r e f ( y ∣ x ) − 1 β r ϕ ( x , y ) ] =min_{\pi_{\theta}}E_{(x \in D,y \in \pi_{\theta}(y|x))}[log\frac{\pi_{\theta}(y|x)}{\pi_{ref}(y|x)} - \frac{1}{\beta }r_{\phi}(x,y)] =minπθE(xD,yπθ(yx))[logπref(yx)πθ(yx)β1rϕ(x,y)]
    = m i n π θ E ( x ∈ D , y ∈ π θ ( y ∣ x ) ) [ l o g π θ ( y ∣ x ) π r e f ( y ∣ x ) − l o g ( e 1 β r ϕ ( x , y ) ) ] =min_{\pi_{\theta}}E_{(x \in D,y \in \pi_{\theta}(y|x))}[log\frac{\pi_{\theta}(y|x)}{\pi_{ref}(y|x)} - log(e^{\frac{1}{\beta }r_{\phi}(x,y)})] =minπ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值