深入理解DPO(Direct Preference Optimization)算法

目录

  • 1. 什么是DPO?
  • 2. Bradley-Terry模型
    • 2.1 奖励模型的训练
  • 3. 从PPO到DPO
  • 4. DPO的简单实现
  • 5. 梯度分析
  • Ref

1. 什么是DPO?

直接偏好优化(Direct Preference Optimization, DPO)是一种不需要强化学习的对齐算法。由于去除了复杂的强化学习算法,DPO 可以通过与有监督微调(SFT)相似的复杂度实现模型对齐,不再需要在训练过程中针对大语言模型进行采样,同时超参数的选择更加容易。

2. Bradley-Terry模型

Bradley-Terry模型对比较关系进行建模,设 A A A 的实力为 λ 1 \lambda_1 λ1 B B B 的实力为 λ 2 \lambda_2 λ2,那么 A A A B B B 对战, A A A 战胜 B B B 的概率为:

P ( A > B ) = e λ 1 e λ 1 + e λ 2 = α 1 α 1 + α 2 , α 1 ≜ e λ 1 , α 2 ≜ e λ 2 P(A>B)=\frac{e^{\lambda_1}}{e^{\lambda_1}+e^{\lambda_2}}=\frac{\alpha_1}{\alpha_1+\alpha_2},\quad \alpha_1\triangleq e^{\lambda_1},\quad \alpha_2\triangleq e^{\lambda_2} P(A>B)=eλ1+eλ2eλ1=α1+α2α1,α1eλ1,α2eλ2

因为无法保证 λ 1 , λ 2 \lambda_1,\lambda_2 λ1,λ2 一定大于0,所以需要用softmax函数处理一下。

举一个例子,假设有如下的胜负表:

对战
A vs B84
A vs C35

若要求 B B B 战胜 C C C 的概率,我们需要知道 α 2 , α 3 \alpha_2,\alpha_3 α2,α3 的值。首先可以得到似然函数:

L = ( α 1 α 1 + α 2 ) 8 ( α 2 α 1 + α 2 ) 4 ( α 1 α 1 + α 3 ) 3 ( α 3 α 1 + α 3 ) 5 L=\left(\frac{\alpha_1}{\alpha_1+\alpha_2}\right)^8 \left(\frac{\alpha_2}{\alpha_1+\alpha_2}\right)^4 \left(\frac{\alpha_1}{\alpha_1+\alpha_3}\right)^3 \left(\frac{\alpha_3}{\alpha_1+\alpha_3}\right)^5 L=(α1+α2α1)8(α1+α2α2)4(α1+α3α1)3(α1+α3α3)5

对对数似然函数求偏导可以得到 α 2 = 1 2 α 1 , α 3 = 5 3 α 1 \alpha_2=\frac12\alpha_1,\,\alpha_3=\frac53\alpha_1 α2=21α1,α3=35α1。于是

P ( B > C ) = α 2 α 2 + α 3 = 1 2 1 2 + 5 3 = 3 13 P(B>C)=\frac{\alpha_2}{\alpha_2+\alpha_3}=\frac{\frac12}{\frac12+\frac53}=\frac{3}{13} P(B>C)=α2+α3α2=21+3521=133

2.1 奖励模型的训练

奖励模型的训练涉及到正例 ( x , y + ) (x,y^+) (x,y+) 和负例 ( x , y − ) (x,y^-) (x,y),其中 x x x 是prompt, y y y 是response。由于 r ( x , y ) r(x,y) r(x,y) 可能是负数,因此在使用Bradley-Terry建模时,需要预先过一下softmax:

P ( y + > y − ∣ x ) = exp ⁡ ( r ( x , y + ) ) exp ⁡ ( r ( x , y + ) ) + exp ⁡ ( r ( x , y − ) ) = 1 1 + exp ⁡ ( r ( x , y − ) − r ( x , y + ) ) = σ ( r ( x , y + ) − r ( x , y − ) ) \begin{aligned} P(y^+>y^-|x)&=\frac{\exp (r(x,y^+))}{\exp (r(x,y^+))+\exp (r(x,y^-))}=\frac{1}{1+\exp(r(x,y^-)- r(x,y^+))} \\ &=\sigma (r(x,y^+)-r(x,y^-)) \end{aligned} P(y+>yx)=exp(r(x,y+))+exp(r(x,y))exp(r(x,y+))=1+exp(r(x,y)r(x,y+))1=σ(r(x,y+)r(x,y))

其中 σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1 是Sigmoid函数。训练奖励模型实际上就是最大化 P ( y + > y − ∣ x ) P(y^+>y^-|x) P(y+>yx) 的过程,这等价于最小化 − log ⁡ P ( y + > y − ∣ x ) -\log P(y^+>y^-|x) logP(y+>yx),因此可以得到奖励模型训练的损失函数:

L RM = − E ( x , y + , y − ) ∼ D [ log ⁡ σ ( r ( x , y + ) − r ( x , y − ) ) ] \mathcal{L}_{\text{RM}} =-\mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D}} [\,\log\sigma(r(x,y^+)-r(x,y^-))] LRM=E(x,y+,y)D[logσ(r(x,y+)r(x,y))]

这一过程实际上是对比学习,奖励模型需要学习在提升正例分数的同时,进一步降低负例的分数,以最大化正例和负例之间的分数差异。

3. 从PPO到DPO

传统的RLHF算法需要先在人类偏好数据上训练一个奖励模型,然后再使用这个奖励模型和相关的强化学习算法(如PPO)去指导LLM进一步学习,但这种做法有如下弊端:

  • 奖励建模的过程较为复杂,需要额外的计算开销。
  • 强化学习流程复杂,过程不稳定,且对超参数敏感。

DPO可以直接让策略模型在人类偏好数据上学习,省去了构建奖励模型和进行强化学习的步骤,故得名直接偏好优化(Direct Preference Optimization)。

我们先来看使用KL散度作为正则项的PPO算法,为了推导更为简便,我们可以将优化目标重写为下式:

max ⁡ π θ E x ∼ D , y ∼ π θ [ r ( x , y ) ] − β KL [ π θ ( y ∣ x ) ∥ π ref ( y ∣ x ) ] \max_{\pi_{\theta}} \mathbb{E}_{x\sim D,y\sim \pi_{\theta}} [r(x,y)]-\beta \text{KL} [\pi_{\theta}(y|x) \,\|\, \pi_{\text{ref}}(y|x)] πθmaxExD,yπθ[r(x,y)]βKL[πθ(yx)πref(yx)]

其中 r ( x , y ) r(x,y) r(x,y) 是奖励函数, π θ \pi_{\theta} πθ 是策略模型(待训练的模型), π ref \pi_{\text{ref}} πref 是参考模型(冻结),两者均从SFT模型初始化得来。在RLHF阶段,我们一方面需要最大化奖励,一方面又不能让策略模型偏离参考模型太远。

注意到 P ( y + > y − ∣ x ) P(y^+>y^-|x) P(y+>yx) 仅跟 r ( x , y ) r(x,y) r(x,y) 有关,如果我们能够找到 π θ \pi_{\theta} πθ r ( x , y ) r(x,y) r(x,y) 之间的关系,我们就能用 π θ \pi_{\theta} πθ 去表示 P ( y + > y − ∣ x ) P(y^+>y^-|x) P(y+>yx),进而就能规避奖励建模的过程。这样一来,LLM就能够通过与强化学习等价的形式学习到人类的价值观和偏好。

考虑对PPO的优化目标进行变换:

max ⁡ π θ E x ∼ D , y ∼ π θ [ r ( x , y ) ] − β KL [ π θ ( y ∣ x ) ∥ π ref ( y ∣ x ) ] = max ⁡ π θ E x ∼ D E y ∼ π θ ( y ∣ x ) [ r ( x , y ) − β log ⁡ π θ ( y ∣ x ) π ref ( y ∣ x ) ] = min ⁡ π θ E x ∼ D E y ∼ π θ ( y ∣ x ) [ log ⁡ π θ ( y ∣ x ) π ref ( y ∣ x ) − 1 β r ( x , y ) ] = min ⁡ π θ E x ∼ D E y ∼ π θ ( y ∣ x ) [ log ⁡ π θ ( y ∣ x ) π ref ( y ∣ x ) + log ⁡ 1 exp ⁡ ( 1 β r ( x , y ) ) + log ⁡ 1 1 Z ( x ) − log ⁡ Z ( x ) ] = min ⁡ π θ E x ∼ D E y ∼ π θ ( y ∣ x ) [ log ⁡ π θ ( y ∣ x ) 1 Z ( x ) π ref ( y ∣ x ) exp ⁡ ( 1 β r ( x , y ) ) − log ⁡ Z ( x ) ] \begin{aligned} &\max_{\pi_{\theta}} \mathbb{E}_{x\sim D,y\sim \pi_{\theta}} [r(x,y)]-\beta \text{KL} [\pi_{\theta}(y|x) \,\|\, \pi_{\text{ref}}(y|x)] \\ =&\max_{\pi_{\theta}} \mathbb{E}_{x\sim D} \mathbb{E}_{y\sim \pi_{\theta}(y|x)}\left[ r(x,y)-\beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref}}(y|x)}\right] \\ =&\min_{\pi_{\theta}} \mathbb{E}_{x\sim D} \mathbb{E}_{y\sim \pi_{\theta}(y|x)}\left[ \log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref}}(y|x)}-\frac{1}{\beta}r(x,y)\right] \\ =&\min_{\pi_{\theta}} \mathbb{E}_{x\sim D} \mathbb{E}_{y\sim \pi_{\theta}(y|x)}\left[ \log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref}}(y|x)}+\log\frac{1}{\exp(\frac{1}{\beta}r(x,y))}+\log\frac{1}{\frac{1}{Z(x)}}-\log Z(x)\right] \\ =&\min_{\pi_{\theta}} \mathbb{E}_{x\sim D} \mathbb{E}_{y\sim \pi_{\theta}(y|x)}\left[ \log\frac{\pi_{\theta}(y|x)}{\frac{1}{Z(x)}\pi_{\text{ref}}(y|x)\exp(\frac{1}{\beta}r(x,y))}-\log Z(x)\right] \\ \end{aligned} ====πθmaxExD,yπθ[r(x,y)]βKL[πθ(yx)πref(yx)]πθmaxExDEyπθ(yx)[r(x,y)βlogπref(yx)πθ(yx)]πθminExDEyπθ(yx)[logπref(yx)πθ(yx)β1r(x,y)]πθminExDEyπθ(yx)[logπref(yx)πθ(yx)+logexp(β1r(x,y))1+logZ(x)11logZ(x)]πθminExDEyπθ(yx)[logZ(x)1πref(yx)exp(β1r(x,y))πθ(yx)logZ(x)]

其中 Z ( x ) Z(x) Z(x) 是我们额外引入的配分函数,定义为

Z ( x ) = ∑ y π ref ( y ∣ x ) exp ⁡ ( 1 β r ( x , y ) ) Z(x)=\sum_y \pi_{\text{ref}}(y|x)\exp\left(\frac{1}{\beta}r(x,y)\right) Z(x)=yπref(yx)exp(β1r(x,y))

现定义

π ∗ ( y ∣ x ) = 1 Z ( x ) π ref ( y ∣ x ) exp ⁡ ( 1 β r ( x , y ) ) \pi^*(y|x)=\frac{1}{Z(x)}\pi_{\text{ref}}(y|x)\exp\left(\frac{1}{\beta}r(x,y)\right) π(yx)=Z(x)1πref(yx)exp(β1r(x,y))

容易发现 π ∗ \pi^* π 满足以下两个性质:

  • π ∗ ( y ∣ x ) ≥ 0 \pi^*(y|x)\geq 0 π(yx)0
  • ∑ y π ∗ ( y ∣ x ) = 1 \sum_y \pi^*(y|x)=1 yπ(yx)=1

这说明 π ∗ \pi^* π 是一个概率分布,我们将它代回原式并继续推导:

min ⁡ π θ E x ∼ D E y ∼ π θ ( y ∣ x ) [ log ⁡ π θ ( y ∣ x ) π ∗ ( y ∣ x ) − log ⁡ Z ( x ) ] = min ⁡ π θ E x ∼ D [ E y ∼ π θ ( y ∣ x ) [ log ⁡ π θ ( y ∣ x ) π ∗ ( y ∣ x ) ] − log ⁡ Z ( x ) ] = min ⁡ π θ E x ∼ D [ KL [ π θ ( y ∣ x ) ∥ π ∗ ( y ∣ x ) ] − log ⁡ Z ( x ) ] \begin{aligned} &\min_{\pi_{\theta}} \mathbb{E}_{x\sim D} \mathbb{E}_{y\sim \pi_{\theta}(y|x)}\left[ \log\frac{\pi_{\theta}(y|x)}{\pi^*(y|x)}-\log Z(x)\right] \\ =&\min_{\pi_{\theta}} \mathbb{E}_{x\sim D} \left[ \mathbb{E}_{y\sim \pi_{\theta}(y|x)}\left[ \log\frac{\pi_{\theta}(y|x)}{\pi^*(y|x)} \right]-\log Z(x) \right] \\ =&\min_{\pi_{\theta}} \mathbb{E}_{x\sim D} \left[ \text{KL}[\pi_{\theta}(y|x) \,\|\, \pi^*(y|x)]-\log Z(x) \right] \\ \end{aligned} ==πθminExDEyπθ(yx)[logπ(yx)πθ(yx)logZ(x)]πθminExD[Eyπθ(yx)[logπ(yx)πθ(yx)]logZ(x)]πθminExD[KL[πθ(yx)π(yx)]logZ(x)]

注意到配分函数 Z ( x ) Z(x) Z(x) π θ \pi_{\theta} πθ 无关,因此可以视为常数,所以只需要最小化KL散度这一项。根据Gibbs不等式,我们可以直接得到最优解

π θ ( y ∣ x ) = π ∗ ( y ∣ x ) = 1 Z ( x ) π ref ( y ∣ x ) exp ⁡ ( 1 β r ( x , y ) ) \pi_{\theta}(y|x)=\pi^*(y|x)=\frac{1}{Z(x)}\pi_{\text{ref}}(y|x)\exp\left(\frac{1}{\beta}r(x,y)\right) πθ(yx)=π(yx)=Z(x)1πref(yx)exp(β1r(x,y))

接下来推导 r ( x , y ) r(x,y) r(x,y) π θ \pi_{\theta} πθ 之间的关系。对上式移项可得:

exp ⁡ ( 1 β r ( x , y ) ) = π θ ( y ∣ x ) π ref ( y ∣ x ) ⋅ Z ( x ) r ( x , y ) = β log ⁡ π θ ( y ∣ x ) π ref ( y ∣ x ) + β log ⁡ Z ( x ) \begin{aligned} \exp\left(\frac{1}{\beta}r(x,y)\right)&=\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref}}(y|x)}\cdot Z(x)\\ r(x,y)&=\beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref}}(y|x)}+\beta \log Z(x) \end{aligned} exp(β1r(x,y))r(x,y)=πref(yx)πθ(yx)Z(x)=βlogπref(yx)πθ(yx)+βlogZ(x)

我们将这个表达式代入到之前的 P ( y + > y − ∣ x ) P(y^+>y^-|x) P(y+>yx) 中可得:

P ( y + > y − ∣ x ) = σ ( r ( x , y + ) − r ( x , y − ) ) = σ ( β log ⁡ π θ ( y + ∣ x ) π ref ( y + ∣ x ) + β log ⁡ Z ( x ) − β log ⁡ π θ ( y − ∣ x ) π ref ( y − ∣ x ) − β log ⁡ Z ( x ) ) = σ ( β log ⁡ π θ ( y + ∣ x ) π ref ( y + ∣ x ) − β log ⁡ π θ ( y − ∣ x ) π ref ( y − ∣ x ) ) \begin{aligned} P(y^+>y^-|x)&=\sigma (r(x,y^+)-r(x,y^-)) \\ &=\sigma\left(\beta\log\frac{\pi_{\theta}(y^+|x)}{\pi_{\text{ref}}(y^+|x)}+\beta \log Z(x)-\beta\log\frac{\pi_{\theta}(y^-|x)}{\pi_{\text{ref}}(y^-|x)}-\beta \log Z(x) \right) \\ &=\sigma\left(\beta\log\frac{\pi_{\theta}(y^+|x)}{\pi_{\text{ref}}(y^+|x)}-\beta\log\frac{\pi_{\theta}(y^-|x)}{\pi_{\text{ref}}(y^-|x)} \right) \\ \end{aligned} P(y+>yx)=σ(r(x,y+)r(x,y))=σ(βlogπref(y+x)πθ(y+x)+βlogZ(x)βlogπref(yx)πθ(yx)βlogZ(x))=σ(βlogπref(y+x)πθ(y+x)βlogπref(yx)πθ(yx))

最终得到DPO的目标函数:

L DPO = − E ( x , y + , y − ) ∼ D [ log ⁡ σ ( β log ⁡ π θ ( y + ∣ x ) π ref ( y + ∣ x ) − β log ⁡ π θ ( y − ∣ x ) π ref ( y − ∣ x ) ) ] \mathcal{L}_{\text{DPO}}=-\mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D}} \left[ \log\sigma\left(\beta\log\frac{\pi_{\theta}(y^+|x)}{\pi_{\text{ref}}(y^+|x)}-\beta\log\frac{\pi_{\theta}(y^-|x)}{\pi_{\text{ref}}(y^-|x)} \right) \right] LDPO=E(x,y+,y)D[logσ(βlogπref(y+x)πθ(y+x)βlogπref(yx)πθ(yx))]

可以发现 L DPO \mathcal{L}_{\text{DPO}} LDPO L RM \mathcal{L}_{\text{RM}} LRM 的形式十分接近,即DPO具有以下形式的隐式奖励函数:

r θ ( x , y ) = β log ⁡ π θ ( y ∣ x ) π ref ( y ∣ x ) r_{\theta}(x,y)=\beta\log\frac{\pi_{\theta}(y|x)}{\pi_{\text{ref}}(y|x)} rθ(x,y)=βlogπref(yx)πθ(yx)

这也回应了DPO论文标题中的「Your Language Model is Secretly a Reward Model」。

接下来可以总结一下DPO的流程了:

  • π SFT \pi^{\text{SFT}} πSFT 初始化 π θ , π ref \pi_{\theta},\,\pi_{\text{ref}} πθ,πref
  • 对于每个 x x x,用 π ref \pi_{\text{ref}} πref 采样一对答案 ( y 1 , y 2 ) (y_1,y_2) (y1,y2),再让人工标注者去标注,以离线的方式构建人类偏好数据集 D = { x i , y i + , y i − } i = 1 N \mathcal{D}=\{x_i,y_i^+,y_i^-\}_{i=1}^N D={xi,yi+,yi}i=1N
  • 通过最小化 L DPO \mathcal{L}_{\text{DPO}} LDPO 来不断优化 π θ \pi_{\theta} πθ

4. DPO的简单实现

为方便计算,我们对 L DPO \mathcal{L}_{\text{DPO}} LDPO 做个简单的变形:

L DPO = − E ( x , y + , y − ) ∼ D [ log ⁡ σ ( β log ⁡ π θ ( y + ∣ x ) π θ ( y − ∣ x ) − β log ⁡ π ref ( y + ∣ x ) π ref ( y − ∣ x ) ) ] \mathcal{L}_{\text{DPO}}=-\mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D}} \left[ \log\sigma\left(\beta\log\frac{\pi_{\theta}(y^+|x)}{\pi_{\theta}(y^-|x)}-\beta\log\frac{\pi_{\text{ref}}(y^+|x)}{\pi_{\text{ref}}(y^-|x)} \right) \right] LDPO=E(x,y+,y)D[logσ(βlogπθ(yx)πθ(y+x)βlogπref(yx)πref(y+x))]

一种简单的实现:

def dpo_loss(policy_chosen_logps, policy_rejected_logps, ref_chosen_logps, ref_rejected_logps, beta):"""Compute the simplified DPO loss with sigmoid loss type.Args:policy_chosen_logps: Log probabilities of the policy model for the chosen responses. Shape: (batch_size,)policy_rejected_logps: Log probabilities of the policy model for the rejected responses. Shape: (batch_size,)ref_chosen_logps: Log probabilities of the reference model for the chosen responses. Shape: (batch_size,)ref_rejected_logps: Log probabilities of the reference model for the rejected responses. Shape: (batch_size,)beta: Temperature controlling strength of KL penaltyReturns:losses: The DPO loss for each example in the batch.chosen_rewards: Rewards for the chosen responses.rejected_rewards: Rewards for the rejected responses."""# Calculate log-ratiospolicy_logratios = policy_chosen_logps - policy_rejected_logpsref_logratios = ref_chosen_logps - ref_rejected_logps# Compute logits for sigmoid losslogits = policy_logratios - ref_logratios# Sigmoid loss typelosses = -F.logsigmoid(beta * logits)# Compute rewardschosen_rewards = beta * (policy_chosen_logps - ref_chosen_logps).detach()rejected_rewards = beta * (policy_rejected_logps - ref_rejected_logps).detach()return losses, chosen_rewards, rejected_rewards

5. 梯度分析

通过对DPO的目标函数求导,我们可以深入理解DPO算法如何针对LLM的参数进行优化。

u = β log ⁡ π θ ( y + ∣ x ) π ref ( y + ∣ x ) − β log ⁡ π θ ( y − ∣ x ) π ref ( y − ∣ x ) u=\beta\log\frac{\pi_{\theta}(y^+|x)}{\pi_{\text{ref}}(y^+|x)}-\beta\log\frac{\pi_{\theta}(y^-|x)}{\pi_{\text{ref}}(y^-|x)} u=βlogπref(y+x)πθ(y+x)βlogπref(yx)πθ(yx),利用Sigmoid函数的性质,我们有:

∇ L DPO = − E ( x , y + , y − ) ∼ D [ ∇ log ⁡ σ ( u ) ] = − E ( x , y + , y − ) ∼ D [ ∇ σ ( u ) σ ( u ) ∇ u ] = − E ( x , y + , y − ) ∼ D [ σ ( − u ) ∇ u ] = − E ( x , y + , y − ) ∼ D [ σ ( r θ ( x , y − ) − r θ ( x , y + ) ) ⋅ ( ∇ log ⁡ π θ ( y + ∣ x ) − ∇ log ⁡ π θ ( y − ∣ x ) ) ] \begin{aligned} \nabla \mathcal{L}_{\text{DPO}}&=-\mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D}}[\nabla\log\sigma(u)]= -\mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D}}\left[\frac{\nabla \sigma(u)}{\sigma(u)}\nabla u\right] \\ &=-\mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D}}\left[ \sigma(-u)\nabla u \right] \\ &=-\mathbb{E}_{(x,y^+,y^-)\sim \mathcal{D}}\left[ \sigma(r_{\theta}(x,y^-)-r_{\theta}(x,y^+)) \cdot (\nabla \log \pi_{\theta}(y^+|x) - \nabla \log \pi_{\theta}(y^-|x)) \right] \end{aligned} LDPO=E(x,y+,y)D[logσ(u)]=E(x,y+,y)D[σ(u)σ(u)u]=E(x,y+,y)D[σ(u)u]=E(x,y+,y)D[σ(rθ(x,y)rθ(x,y+))(logπθ(y+x)logπθ(yx))]

其中 r θ r_{\theta} rθ 是上文提到的隐式奖励函数。

通过对上述目标函数的导数进行分析,可以发现优化过程中会增大 log ⁡ π θ ( y + ∣ x ) \log \pi_\theta(y^+|x) logπθ(y+x) log ⁡ π θ ( y − ∣ x ) \log \pi_\theta(y^-|x) logπθ(yx) 之间的差异。这表明优化过程中训练模型向符合人类偏好的内容靠近 ( y + ) (y^+) (y+),同时尽量避免生成不符合人类偏好的内容 ( y − ) (y^-) (y)

此外,公式的前半部分 σ ( r θ ( x , y − ) − r θ ( x , y + ) ) \sigma(r_\theta(x,y^-) - r_\theta(x,y^+)) σ(rθ(x,y)rθ(x,y+)) 可以看作是梯度的系数,动态地控制梯度下降的步长。可以发现,当策略模型更倾向于生成不符合人类偏好的内容 y − y^- y 时, r θ ( x , y − ) r_\theta(x,y^-) rθ(x,y) r θ ( x , y + ) r_\theta(x,y^+) rθ(x,y+) 之间的差值变大,导致梯度下降的步长变大,从而进行更为激进的参数更新,以避免生成 y − y^- y。反之,当策略模型倾向于生成符合人类偏好的内容 y + y^+ y+ 时,说明策略模型当前具备较好的参数。此时梯度的系数变小,这会使得策略模型的参数的更新幅度降低,防止更新步长过大使得策略模型的性能出现震荡,增加训练的稳定性。


Ref

[1] https://www.bilibili.com/video/BV1GF4m1L7Nt/?spm_id_from=333.337.search-card.all.click
[2] 《大模型综述》
[3] https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/411925.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server中如何自动抓取阻塞

背景 当发数据库生阻塞时,可以通过SQL语句来获取当前阻塞的会话情况,可以得到下面的信息 说明:会话55阻塞了会话53。两个会话都执行了update test set fid10 where fid0。 但我们也经常碰到客户生产环境出现阻塞,由于不会抓取或者…

还在拼接字符串生成XML?(Java)

FreeMarker是一个功能强大的Java模板引擎&#xff0c;广泛应用于生成动态内容&#xff0c;如HTML、XML和其他文本格式。本文将介绍FreeMarker的基本使用方法&#xff0c;并提供一个更丰富的XML模板示例&#xff0c;以及模板标签和标识的含义。 1. 引入依赖 <dependency>…

三分钟总结开源流程表单的优势特点

实现流程化办公&#xff0c;可以借助低代码技术平台、开源流程表单的优势特点。作为当前较为理想的平台产品&#xff0c;低代码技术平台凭借够灵活、好操作、可视化界面的优势特点&#xff0c;得到了通信业、医疗、高校等很多行业客户朋友的喜爱与支持。今天一起来看看开源流程…

联华证券-新手炒股入门指南:学习路径与注意事项

学习炒股是一个循序渐进的过程&#xff0c;以下是入门建议以及需要注意的事项&#xff1a; 学习炒股的入手步骤 掌握基础知识&#xff1a; 股票市场基础&#xff1a;了解什么是股票、股市的运作机制、股票的种类等基本概念。 常用术语&#xff1a;熟悉如市盈率&#xff08;P/…

ET6框架(三)前后端通讯分析

文章目录 一、信息的通讯二、网络通讯协议的“理像模型”三、网络通讯协议的“四层模型”四、什么是 Socket&#xff1f;五、Socket通讯流程 一、信息的通讯 网络消息的发送类似于邮寄信件的流程&#xff0c;需要一个地址及收件人。 在网络通讯中通常我们需要一个IP地址及端口…

uni-app启动本地开发环境,修改默认端口号

vite.config.js: import { defineConfig } from "vite"; import uni from "dcloudio/vite-plugin-uni";// https://vitejs.dev/config/ export default defineConfig({server: {port: 3006,},plugins: [uni()], });人工智能学习网站 https://chat.xutong…

趣味算法------过河卒

目录 ​编辑 题目描述 解题思路 具体代码 总结 问题描述&#xff1a; 解决方案&#xff1a; 代码实现&#xff1a; 关键点&#xff1a; 题目描述 棋盘上 A 点有一个过河卒&#xff0c;需要走到目标 B 点。卒行走的规则&#xff1a;可以向下、或者向右。同时在棋盘上 C…

自动化通过cmd命令行并以特定账户连接到远程机器

1 建一个taskschedule运行cmd命令 2 cmd命令示例&#xff1a; 机器名加域名 mstsc /v:"<MachineName>.xxx.xxx.com"或者是机器IP地址 mstsc /v:"10.148.66.178"3 设置用特定账户登陆 用户名可以写 <要连接的机器名><用户名> 勾选“记住…

川崎机器人维修请开启马达电源报警故障

‌川崎机器人故障代码主要用于指示机器人的不同运行问题和状态&#xff0c;帮助快速识别和解决这些问题。‌Kasawaki机械手故障代码通常以字母和数字的组合形式出现&#xff0c;其中字母代表故障的类型&#xff0c;而数字则是具体的代码编号。这些代码可以分为‌P‌代表操作错误…

05:创建逻辑软件元件库

1.创建逻辑软件元件库 点击 “编辑电参数” 1.1常规设置 1.2PCB封装 1.3门 1.4管脚 1.5检查元件 点击确定 1.6点击保存 2.处理重叠问题 2.1查看处理后的显示

《JavaEE进阶》----5.<SpringMVC②剩余基本操作(CookieSession)>

Cookie和Session简介。 Spring MVC的请求中 Cookie的设置和两种获取方式 Session的设置和三种获取方式。 三、&#xff08;接上文&#xff09;SpringMVC剩余基本操作 3.2postman请求 3.2.10 获取Cookie和Session 1.理解Cookie 我们知道HTTP协议自身是“无状态”协议。 &qu…

XtQuant接口概述,想用miniQMT做量化哪家券商支持?

XtQuant.XtData 行情模块 xtdata是xtquant库中提供行情相关数据的模块&#xff0c;本模块旨在提供精简直接的数据满足量化交易者的数据需求&#xff0c;作为python库的形式可以被灵活添加到各种策略脚本中。 主要提供行情数据&#xff08;历史和实时的K线和分笔&#xff09;、…

《黑神话悟空》:国产3A游戏的崛起与AI绘画技术的融合

一、游戏简介 近年来&#xff0c;国产3A游戏《黑神话悟空》以其精美的画面、丰富的剧情和独特的文化底蕴吸引了众多玩家的关注。这款游戏以中国古典名著《西游记》为背景&#xff0c;讲述了孙悟空历经磨难&#xff0c;最终成长为斗战胜佛的故事。在游戏制作过程中&#xff0c;开…

SpringBoot整合Mybatis,Junit (复现之前写的一个SSM项目)

引言 如下是之前写的一个SSM项目&#xff08;纯注解版&#xff09;&#xff0c;现在我们要把它改造成一个SpringBoot项目&#xff0c;以体现SpringBoot的方便。主要需要关注的文件已经用红框标出。 1.config文件夹里面的是Spring&#xff0c;SpringMvc&#xff0c;Mybatis的配…

zoom 会议 javascript 转录例子

一、启动server-to-server zoom api服务&#xff0c;用于创建会议&#xff0c;参考&#xff1a;如何使用Zoom API创建一个会议&#xff1f;-CSDN博客 二、启动meetingsdk-auth-endpoint服务&#xff0c;用于加入会议&#xff0c;参考&#xff1a;zoom 会议机器人web例子-CSDN博…

中国城市经济韧性数据集(2007-2022年)

数据来源&#xff1a;数据来自历年《中国城市统计NJ》、各省市《统计NJ》及《中国区域经济统计NJ》 时间范围&#xff1a;2007-2022年 数据范围&#xff1a;中国地级市样例数据&#xff1a; 包含内容&#xff1a; 全部内容下载链接&#xff08;原始数据计算代码最终数据&…

【binder】【android12】【2.servicemanager启动——全源码分析】

系列文章目录 可跳转到下面链接查看下表所有内容https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501文章浏览阅读2次。系列文章大全https://blog.csdn.net/handsomethefirst/article/details/138226266?spm1001.2014.3001.5501 目录 …

CI/CD之Jenkins用于Linux系统的部署方式汇总

目录 一、前言 二、CI/CD的定义与核心原则 CI/CD在现代软件开发中的重要性 CI/CD与Jenkins的关系 三、Jenkins部署方式汇总 1. 独立服务器部署 &#xff08;1&#xff09;离线安装 &#xff08;2&#xff09;在线安装 2. Docker容器部署 3. Kubernetes集群部署 4. 云…

神经网络卷积层

一、卷积操作 对应位置相乘相加&#xff0c;最终组成一个新的矩阵&#xff0c;实现了降维。 二、代码 import torch import torchvision from torch import nn from torch.nn import Conv2d from torch.utils.data import DataLoaderdataset torchvision.datasets.CIFAR10(&…

2024最全网络安全工程师面试题(附答案),金九银十找工作必看!

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…