【论文解读】监督微调(SFT)的梯度与强化学习策略梯度的关系分析——DFT(SFT+RL)

发布于:2025-08-18 ⋅ 阅读:(22) ⋅ 点赞:(0)

监督微调(SFT)的梯度与强化学习策略梯度的关系分析

原论文:《ON THE GENERALIZATION OF SFT: A REINFORCEMENT LEARNING PERSPECTIVE WITH REWARD RECTIFICATION》
https://arxiv.org/pdf/2508.05629

一、背景与目标

本文旨在通过数学分析,深入揭示监督微调(SFT)的梯度更新与强化学习(RL)中的策略梯度之间的深层联系,并明确指出SFT的梯度更新隐含了一个不稳定的奖励结构。具体而言,SFT的核心目标是最小化交叉熵损失,而其梯度可以被巧妙地重写为一种离线策略梯度的形式,其中隐含的奖励与模型分配给专家动作的概率倒数成正比

我们将从SFT的目标函数出发,逐步推导其梯度,进而分析其与强化学习策略梯度等价性,最终揭示这种隐含奖励结构所带来的问题

二、SFT的目标函数与梯度推导

2.1 SFT的目标函数

SFT的核心目标是最小化交叉熵损失,其数学形式定义如下:

LSFT(θ)=E(x,y⋆)∼D[−log⁡πθ(y⋆∣x)]L_{\text{SFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}[-\log \pi_\theta(y^\star \mid x)]LSFT(θ)=E(x,y)D[logπθ(yx)]

其中:

  • D={(x,y⋆)}D = \{(x,y^\star)\}D={(x,y)}专家示范数据集
  • xxx 是输入查询(Prompt)。
  • y⋆y^\stary 是对应的参考答案(专家动作或目标序列)。
  • πθ(y⋆∣x)\pi_\theta(y^\star \mid x)πθ(yx) 是模型在参数 θ\thetaθ 下生成参考答案 y⋆y^\stary概率
  • E(x,y⋆)∼D\mathbb{E}_{(x,y^\star) \sim D}E(x,y)D 表示对数据集 DDD期望,本质上是对所有样本的平均损失。

此目标函数的核心意义在于,促使模型的生成概率分布 πθ(y∣x)\pi_\theta(y \mid x)πθ(yx) 尽可能地接近专家答案 y⋆y^\stary。这通过最大化 πθ(y⋆∣x)\pi_\theta(y^\star \mid x)πθ(yx)(即最小化其负对数 −log⁡πθ(y⋆∣x)-\log \pi_\theta(y^\star \mid x)logπθ(yx))来实现。

2.2 计算SFT的梯度

为了深入理解SFT的梯度与强化学习的关联,我们接下来将计算目标函数 LSFT(θ)L_{\text{SFT}}(\theta)LSFT(θ) 关于模型参数 θ\thetaθ 的梯度:

∇θLSFT(θ)=∇θE(x,y⋆)∼D[−log⁡πθ(y⋆∣x)]\nabla_\theta L_{\text{SFT}}(\theta) = \nabla_\theta \mathbb{E}_{(x,y^\star) \sim D}[-\log \pi_\theta(y^\star \mid x)]θLSFT(θ)=θE(x,y)D[logπθ(yx)]

由于期望运算是对数据集 DDD 的平均,我们可以将梯度运算移入期望内部(在常规优化假设下,此交换是合法的):

∇θLSFT(θ)=E(x,y⋆)∼D[∇θ(−log⁡πθ(y⋆∣x))]\nabla_\theta L_{\text{SFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}[\nabla_\theta(-\log \pi_\theta(y^\star \mid x))]θLSFT(θ)=E(x,y)D[θ(logπθ(yx))]

现在,我们聚焦于计算内部的梯度 ∇θ(−log⁡πθ(y⋆∣x))\nabla_\theta(-\log \pi_\theta(y^\star \mid x))θ(logπθ(yx))

∇θ(−log⁡πθ(y⋆∣x))=−∇θlog⁡πθ(y⋆∣x)\nabla_\theta(-\log \pi_\theta(y^\star \mid x)) = -\nabla_\theta \log \pi_\theta(y^\star \mid x)θ(logπθ(yx))=θlogπθ(yx)

根据对数函数的导数性质 ∇θlog⁡f(θ)=∇θf(θ)f(θ)\nabla_\theta \log f(\theta) = \frac{\nabla_\theta f(\theta)}{f(\theta)}θlogf(θ)=f(θ)θf(θ),我们有:

∇θlog⁡πθ(y⋆∣x)=∇θπθ(y⋆∣x)πθ(y⋆∣x)\nabla_\theta \log \pi_\theta(y^\star \mid x) = \frac{\nabla_\theta \pi_\theta(y^\star \mid x)}{\pi_\theta(y^\star \mid x)}θlogπθ(yx)=πθ(yx)θπθ(yx)

因此,内部梯度可以进一步展开为:

∇θ(−log⁡πθ(y⋆∣x))=−∇θπθ(y⋆∣x)πθ(y⋆∣x)\nabla_\theta(-\log \pi_\theta(y^\star \mid x)) = -\frac{\nabla_\theta \pi_\theta(y^\star \mid x)}{\pi_\theta(y^\star \mid x)}θ(logπθ(yx))=πθ(yx)θπθ(yx)

将此结果代回SFT的梯度表达式,我们得到:

∇θLSFT(θ)=E(x,y⋆)∼D[−∇θπθ(y⋆∣x)πθ(y⋆∣x)]\nabla_\theta L_{\text{SFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}\left[-\frac{\nabla_\theta \pi_\theta(y^\star \mid x)}{\pi_\theta(y^\star \mid x)}\right]θLSFT(θ)=E(x,y)D[πθ(yx)θπθ(yx)]

这正是文章中给出的SFT梯度形式,为了更清晰地展示倒数关系,通常写为:

∇θLSFT(θ)=E(x,y⋆)∼D[−1πθ(y⋆∣x)∇θπθ(y⋆∣x)]\nabla_\theta L_{\text{SFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}\left[-\frac{1}{\pi_\theta(y^\star \mid x)}\nabla_\theta \pi_\theta(y^\star \mid x)\right]θLSFT(θ)=E(x,y)D[πθ(yx)1θπθ(yx)]

此表达式清晰地表明,SFT的梯度更新与模型对专家动作 y⋆y^\stary 分配的概率 πθ(y⋆∣x)\pi_\theta(y^\star \mid x)πθ(yx)倒数成正比

三、SFT梯度与强化学习策略梯度的等价性

为了深入揭示SFT与强化学习的内在联系,我们接下来将SFT的梯度与强化学习领域中核心的**策略梯度(Policy Gradient)**进行细致比较。

3.1 强化学习中的策略梯度

在强化学习中,策略梯度方法的核心目标是优化策略 πθ(a∣s)\pi_\theta(a \mid s)πθ(as)(其中 sss 代表状态aaa 代表动作),以最大化期望的累积奖励:

J(θ)=Eτ∼πθ[∑tr(st,at)]J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}\left[\sum_t r(s_t,a_t)\right]J(θ)=Eτπθ[tr(st,at)]

其中 r(st,at)r(s_t,a_t)r(st,at) 是在状态 sts_tst 下采取动作 ata_tat 所获得的奖励函数。基于REINFORCE算法,策略梯度的标准形式为:

∇θJ(θ)=Eτ∼πθ[∑tr(st,at)∇θlog⁡πθ(at∣st)]\nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta}\left[\sum_t r(s_t,a_t)\nabla_\theta \log \pi_\theta(a_t \mid s_t)\right]θJ(θ)=Eτπθ[tr(st,at)θlogπθ(atst)]

对于离线强化学习(Off-policy RL)场景,假设我们的数据来源于行为策略 πb(a∣s)\pi_b(a \mid s)πb(as)(而非当前正在优化的目标策略 πθ(a∣s)\pi_\theta(a \mid s)πθ(as)),那么在计算策略梯度时,需要引入重要性采样(Importance Sampling)权重 πθ(a∣s)πb(a∣s)\frac{\pi_\theta(a \mid s)}{\pi_b(a \mid s)}πb(as)πθ(as) 来校正采样偏差:

∇θJ(θ)=E(s,a)∼πb[πθ(a∣s)πb(a∣s)r(s,a)∇θlog⁡πθ(a∣s)]\nabla_\theta J(\theta) = \mathbb{E}_{(s,a) \sim \pi_b}\left[\frac{\pi_\theta(a \mid s)}{\pi_b(a \mid s)}r(s,a)\nabla_\theta \log \pi_\theta(a \mid s)\right]θJ(θ)=E(s,a)πb[πb(as)πθ(as)r(s,a)θlogπθ(as)]

利用我们之前推导的对数导数性质 ∇θlog⁡πθ(a∣s)=∇θπθ(a∣s)πθ(a∣s)\nabla_\theta \log \pi_\theta(a \mid s) = \frac{\nabla_\theta \pi_\theta(a \mid s)}{\pi_\theta(a \mid s)}θlogπθ(as)=πθ(as)θπθ(as),上述离线策略梯度表达式可以被重写为:

∇θJ(θ)=E(s,a)∼πb[r(s,a)πb(a∣s)∇θπθ(a∣s)]\nabla_\theta J(\theta) = \mathbb{E}_{(s,a) \sim \pi_b}\left[\frac{r(s,a)}{\pi_b(a \mid s)}\nabla_\theta \pi_\theta(a \mid s)\right]θJ(θ)=E(s,a)πb[πb(as)r(s,a)θπθ(as)]

此形式清晰地表明,离线策略梯度的更新方向与奖励 r(s,a)r(s,a)r(s,a)行为策略概率 πb(a∣s)\pi_b(a \mid s)πb(as)倒数紧密相关。

3.2 SFT梯度与策略梯度的比较

现在,我们将之前推导的SFT梯度:

∇θLSFT(θ)=E(x,y⋆)∼D[−1πθ(y⋆∣x)∇θπθ(y⋆∣x)]\nabla_\theta L_{\text{SFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}\left[-\frac{1}{\pi_\theta(y^\star \mid x)}\nabla_\theta \pi_\theta(y^\star \mid x)\right]θLSFT(θ)=E(x,y)D[πθ(yx)1θπθ(yx)]

与离线策略梯度的一般形式:

∇θJ(θ)=E(s,a)∼πb[r(s,a)πb(a∣s)∇θπθ(a∣s)]\nabla_\theta J(\theta) = \mathbb{E}_{(s,a) \sim \pi_b}\left[\frac{r(s,a)}{\pi_b(a \mid s)}\nabla_\theta \pi_\theta(a \mid s)\right]θJ(θ)=E(s,a)πb[πb(as)r(s,a)θπθ(as)]

进行对比,我们可以观察到两者之间惊人的相似性。它们之间的具体对应关系如下:

  • 状态 sss 在SFT中对应于输入查询 xxx
  • 动作 aaa 在SFT中对应于专家答案 y⋆y^\stary
  • 行为策略 πb(a∣s)\pi_b(a \mid s)πb(as) 在SFT中对应于数据生成分布,这可以被视为专家策略(因为训练数据通常被认为是专家的示范)。
  • 奖励 r(s,a)r(s,a)r(s,a) 在SFT中被隐含定义为:
    r(y⋆)∝1πθ(y⋆∣x)r(y^\star) \propto \frac{1}{\pi_\theta(y^\star \mid x)}r(y)πθ(yx)1
    SFT梯度中的负号表明SFT的目标是最小化损失,这与强化学习最大化奖励的目标方向相反,因此梯度方向也相反。

综上所述,SFT的梯度可以被精确地视为一种特殊的离线策略梯度,其特点在于:

  • 数据分布 E(x,y⋆)∼D\mathbb{E}_{(x,y^\star) \sim D}E(x,y)D 对应于从行为策略 πb\pi_bπb 中采样
  • 隐含的奖励函数r(y⋆)=1πθ(y⋆∣x)r(y^\star) = \frac{1}{\pi_\theta(y^\star \mid x)}r(y)=πθ(yx)1(忽略常数因子)。

四、隐含奖励结构的问题

通过上述数学推导,文章清晰地揭示了SFT梯度隐含的奖励结构

r(y⋆)∝1πθ(y⋆∣x)r(y^\star) \propto \frac{1}{\pi_\theta(y^\star \mid x)}r(y)πθ(yx)1

这种特殊的奖励结构在实践中存在以下严重问题

4.1 稀疏性

  • 奖励仅在专家动作 y⋆y^\stary 上被定义为非零值,对于任何非专家动作 y≠y⋆y \neq y^\stary=y,奖励则为
  • 这种稀疏性与传统的行为克隆(Behavioral Cloning)方法高度相似,它限制了模型探索其他可能合理动作的能力
  • 最终,模型倾向于机械地复刻训练数据,导致其泛化能力较差,难以应对训练集中未出现的多样化场景。

4.2 不稳定性

  • 当模型对专家动作的预测概率 πθ(y⋆∣x)\pi_\theta(y^\star \mid x)πθ(yx) 非常小时(这通常发生在模型学习的早期阶段或遇到困难样本时),隐含奖励 1πθ(y⋆∣x)\frac{1}{\pi_\theta(y^\star \mid x)}πθ(yx)1 将会变得极其巨大
  • 这种极大的奖励值会直接导致梯度的计算项 ∇θπθ(y⋆∣x)πθ(y⋆∣x)\frac{\nabla_\theta \pi_\theta(y^\star \mid x)}{\pi_\theta(y^\star \mid x)}πθ(yx)θπθ(yx)方差无限放大(即梯度爆炸)。
  • 高方差的梯度会严重破坏优化过程的稳定性,形成一个被称为“病态的优化景观”(pathological optimization landscape),使得模型难以有效地收敛到具有良好泛化性能的最优解。

4.3 过拟合风险

  • 由于隐含奖励与专家动作概率的倒数成正比,SFT会倾向于过度拟合训练数据中的特定专家答案。
  • 这种机制使得模型忽略了其他可能合理的输出或解决方案,从而进一步限制了模型在未见过数据上的泛化能力和创造性。

五、动态微调(DFT)的解决方案

为了根本性地解决SFT隐含奖励结构所带来的问题,文章提出了一种创新的方法——动态微调(Dynamic Fine-tuning, DFT)DFT通过修改损失函数来巧妙地消除SFT中导致不稳定的倒数概率加权项

DFT的目标函数定义如下:

LDFT(θ)=E(x,y⋆)∼D[−πθ(y⋆∣x)log⁡πθ(y⋆∣x)]L_{\text{DFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}[-\pi_\theta(y^\star \mid x)\log \pi_\theta(y^\star \mid x)]LDFT(θ)=E(x,y)D[πθ(yx)logπθ(yx)]

我们同样来推导其关于模型参数 θ\thetaθ 的梯度:

∇θLDFT(θ)=∇θE(x,y⋆)∼D[−πθ(y⋆∣x)log⁡πθ(y⋆∣x)]\nabla_\theta L_{\text{DFT}}(\theta) = \nabla_\theta \mathbb{E}_{(x,y^\star) \sim D}[-\pi_\theta(y^\star \mid x)\log \pi_\theta(y^\star \mid x)]θLDFT(θ)=θE(x,y)D[πθ(yx)logπθ(yx)]

与SFT梯度推导类似,将梯度运算移入期望内部,并计算内部梯度:

∇θ[−πθ(y⋆∣x)log⁡πθ(y⋆∣x)]\nabla_\theta[-\pi_\theta(y^\star \mid x)\log \pi_\theta(y^\star \mid x)]θ[πθ(yx)logπθ(yx)]

使用乘积法则进行求导:∇(uv)=v∇u+u∇v\nabla(uv) = v\nabla u + u\nabla v(uv)=vu+uv。令 u=πθ(y⋆∣x)u = \pi_\theta(y^\star \mid x)u=πθ(yx)v=log⁡πθ(y⋆∣x)v = \log \pi_\theta(y^\star \mid x)v=logπθ(yx)

=−[log⁡πθ(y⋆∣x)∇θπθ(y⋆∣x)+πθ(y⋆∣x)⋅∇θπθ(y⋆∣x)πθ(y⋆∣x)]= -\left[\log \pi_\theta(y^\star \mid x)\nabla_\theta \pi_\theta(y^\star \mid x) + \pi_\theta(y^\star \mid x)\cdot \frac{\nabla_\theta \pi_\theta(y^\star \mid x)}{\pi_\theta(y^\star \mid x)}\right]=[logπθ(yx)θπθ(yx)+πθ(yx)πθ(yx)θπθ(yx)]

简化第二项:

=−[log⁡πθ(y⋆∣x)∇θπθ(y⋆∣x)+∇θπθ(y⋆∣x)]= -\left[\log \pi_\theta(y^\star \mid x)\nabla_\theta \pi_\theta(y^\star \mid x) + \nabla_\theta \pi_\theta(y^\star \mid x)\right]=[logπθ(yx)θπθ(yx)+θπθ(yx)]

提取公因子 ∇θπθ(y⋆∣x)\nabla_\theta \pi_\theta(y^\star \mid x)θπθ(yx)

=−[log⁡πθ(y⋆∣x)+1]∇θπθ(y⋆∣x)= -[\log \pi_\theta(y^\star \mid x) + 1]\nabla_\theta \pi_\theta(y^\star \mid x)=[logπθ(yx)+1]θπθ(yx)

因此,DFT的完整梯度表达式为:

∇θLDFT(θ)=E(x,y⋆)∼D[−(log⁡πθ(y⋆∣x)+1)∇θπθ(y⋆∣x)]\nabla_\theta L_{\text{DFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}\left[-(\log \pi_\theta(y^\star \mid x) + 1)\nabla_\theta \pi_\theta(y^\star \mid x)\right]θLDFT(θ)=E(x,y)D[(logπθ(yx)+1)θπθ(yx)]

在实际应用中,log⁡πθ(y⋆∣x)\log \pi_\theta(y^\star \mid x)logπθ(yx) 通常是负值(因为概率 πθ(y⋆∣x)≤1\pi_\theta(y^\star \mid x) \le 1πθ(yx)1),且其绝对值可能较大。因此,(log⁡πθ(y⋆∣x)+1)(\log \pi_\theta(y^\star \mid x) + 1)(logπθ(yx)+1) 这一项的影响相对稳定且有限。最关键的变化在于,DFT的梯度表达式中不再包含 1πθ(y⋆∣x)\frac{1}{\pi_\theta(y^\star \mid x)}πθ(yx)1 这样的倒数项。这一根本性的改变消除了SFT中导致高方差和梯度爆炸的关键因素,从而将优化过程转化为一个更加稳定和可控的更新形式

文章进一步指出,当 πθ(y⋆∣x)\pi_\theta(y^\star \mid x)πθ(yx) 接近1时,log⁡πθ(y⋆∣x)\log \pi_\theta(y^\star \mid x)logπθ(yx) 接近0,此时 log⁡πθ(y⋆∣x)+1≈1\log \pi_\theta(y^\star \mid x) + 1 \approx 1logπθ(yx)+11。因此,DFT的梯度可以进一步近似为:

∇θLDFT(θ)≈E(x,y⋆)∼D[−∇θπθ(y⋆∣x)]\nabla_\theta L_{\text{DFT}}(\theta) \approx \mathbb{E}_{(x,y^\star) \sim D}[-\nabla_\theta \pi_\theta(y^\star \mid x)]θLDFT(θ)E(x,y)D[θπθ(yx)]

这一近似形式表明,DFT的更新不再直接依赖于概率 πθ(y⋆∣x)\pi_\theta(y^\star \mid x)πθ(yx) 的大小。它类似于一种均匀加权的梯度更新,从而有效地避免了SFT中因低概率导致梯度极度膨胀的问题。

六、总结

6.1 SFT梯度推导总结

  • 从SFT的目标函数 LSFT(θ)=E(x,y⋆)∼D[−log⁡πθ(y⋆∣x)]L_{\text{SFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}[-\log \pi_\theta(y^\star \mid x)]LSFT(θ)=E(x,y)D[logπθ(yx)] 出发,计算其梯度,最终得到:
    ∇θLSFT(θ)=E(x,y⋆)∼D[−1πθ(y⋆∣x)∇θπθ(y⋆∣x)]\nabla_\theta L_{\text{SFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}\left[-\frac{1}{\pi_\theta(y^\star \mid x)}\nabla_\theta \pi_\theta(y^\star \mid x)\right]θLSFT(θ)=E(x,y)D[πθ(yx)1θπθ(yx)]
  • 此形式与强化学习中的离线策略梯度具有高度相似性,清晰地表明SFT可以被视为一种特殊的策略梯度方法

6.2 隐含奖励结构问题

  • SFT的梯度隐含了一个特殊的奖励函数 r(y⋆)∝1πθ(y⋆∣x)r(y^\star) \propto \frac{1}{\pi_\theta(y^\star \mid x)}r(y)πθ(yx)1
  • 这种倒数概率加权的特性导致了稀疏性不稳定性(梯度高方差和爆炸)以及过拟合风险等一系列问题。

6.3 DFT的改进

  • **动态微调(DFT)**通过修改损失函数为 LDFT(θ)=E(x,y⋆)∼D[−πθ(y⋆∣x)log⁡πθ(y⋆∣x)]L_{\text{DFT}}(\theta) = \mathbb{E}_{(x,y^\star) \sim D}[-\pi_\theta(y^\star \mid x)\log \pi_\theta(y^\star \mid x)]LDFT(θ)=E(x,y)D[πθ(yx)logπθ(yx)]
  • 这一修改根本性地消除了损失函数中导致不稳定的倒数项,从而实现了更稳定的梯度更新,并显著增强了模型的泛化能力

6.4 意义

这一系列深入的数学推导不仅揭示了SFT与RL之间深刻的数学联系,更重要的是,它展示了通过对损失函数进行看似简单(甚至可能仅通过一行代码即可实现)的修改,便能显著提升SFT的性能,尤其是在处理复杂任务时的泛化能力

七、补充说明

7.1 为什么奖励结构有问题

  • 倒数概率加权 1πθ(y⋆∣x)\frac{1}{\pi_\theta(y^\star \mid x)}πθ(yx)1 意味着模型会对那些被分配了极低概率的专家动作表现出过度敏感
  • 这种过度敏感导致梯度方差被无限放大,使优化过程变得极其不稳定
  • 其内在机制是迫使模型过度拟合训练数据中的特定专家答案,从而牺牲了模型探索和生成其他合理输出的能力

7.2 DFT的直观解释

  • DFT通过在原损失项前额外乘以一个权重项 πθ(y⋆∣x)\pi_\theta(y^\star \mid x)πθ(yx)
  • 这意味着,对于那些模型预测概率较低(即困难)的样本,其对总损失的贡献被降低了。
  • 相反,DFT鼓励模型在那些预测概率较高(即容易)的样本上进行更稳定和高效的优化
  • 这种策略避免了模型在不确定样本上“过度用力”,从而有效减少了过拟合,并显著增强了模型的泛化能力

7.3 与Focal Loss的对比

  • SFT的交叉熵损失类似于标准的交叉熵损失
  • DFT的损失 −plog⁡p-p\log pplogp 在形式上与Focal Loss −(1−p)γlog⁡p-(1-p)^\gamma \log p(1p)γlogp 呈现出相反的优化倾向
  • Focal Loss 的设计目标是聚焦于难分类的样本,通过降低易分类样本的权重来解决类别不平衡问题。
  • DFT的设计意图是聚焦于易分类的样本(或模型已有一定掌握的样本),通过降低低概率样本的权重来稳定训练。
  • 这种对比反映了大型语言模型(LLM)时代所关注的核心问题:模型往往更容易过拟合而非欠拟合,因此优化策略也从强调“关注难样本”转向了“稳定易样本、避免过拟合”。

网站公告

今日签到

点亮在社区的每一天
去签到