从KL散度视角统一理解SFT与RLHF:大语言模型训练的本质是概率分布对齐
在机器学习特别是大语言模型LLM的训练中监督微调SFT和基于人类反馈的强化学习RLHF常被视为两个独立且递进的阶段。SFT负责教会模型“如何说话”而RLHF则负责让模型“说得好、说得安全”。然而当我们从概率分布优化的核心视角——KL散度Kullback-Leibler Divergence——来审视这两个过程时会发现它们并非割裂而是同一枚硬币的两面其本质区别在于优化目标中KL约束的方向是正向KL散度还是反向KL散度。本文将从概率分布对齐的基本原理出发深入拆解SFT和RLHF在数学形式上的统一框架。我们会用通俗的语言解释KL散度的概念并通过具体的公式推导和思想实验揭示SFT如何隐式地优化正向KL而RLHF中的策略优化如何对应反向KL。理解这一深层联系不仅能帮助我们更深刻地把握模型训练的本质也为调参、设计新的训练范式提供了清晰的理论地图。无论你是刚入门LLM的实践者还是希望深化理论理解的开发者本文都将带你穿透现象直达核心。1. 核心概念从概率分布对齐到KL散度在开始之前我们首先要建立两个核心认知第一语言模型的输出本质是一个概率分布第二训练的核心目标是将这个概率分布与我们期望的分布对齐。1.1 语言模型即概率分布生成器对于一个给定的输入提示Promptx自回归语言模型如GPT系列的任务是生成一个词序列y (y1, y2, ..., yT)。在每一步t模型会根据已生成的序列y_t计算词汇表V上所有可能下一个词的概率形成一个概率分布π_model(y_t | x, y_t)。整个生成序列的概率则是这些条件概率的连乘。因此我们可以将模型π_model看作一个复杂的、条件于输入x的概率分布发生器。训练的目标就是让模型分布π_model尽可能地接近我们心中理想的“目标分布”π_target。1.2 KL散度衡量分布差异的尺子如何衡量两个概率分布P和Q的差异最常用的工具之一就是KL散度也称为相对熵。KL散度的定义对于离散概率分布P和QKL散度D_KL(P || Q)定义为D_KL(P || Q) Σ_i P(i) * log(P(i) / Q(i))它衡量的是当用分布Q来近似真实分布P时所损失的信息量以比特或纳特为单位。KL散度有两个关键性质非负性D_KL(P || Q) ≥ 0当且仅当P Q时等于0。非对称性D_KL(P || Q) ≠ D_KL(Q || P)。这正是“正向”和“反向”之分的来源。非对称性的直观理解正向KL散度D_KL(P || Q)P是“真实”或“参考”分布Q是我们试图拟合的模型分布。优化D_KL(P || Q)要求Q在P有概率质量的地方也必须分配质量即“模式覆盖”。如果P是多模态的有多个高峰Q会被拉向覆盖所有这些高峰可能导致Q变得平缓。反向KL散度D_KL(Q || P)这里Q是模型分布P是目标分布。优化D_KL(Q || P)要求Q只在P有显著质量的地方分配质量并且可以完全忽略P中概率极低的区域即“模式寻求”。这容易导致Q坍缩到P的某一个高峰上模式坍塌。2. SFT隐式的正向KL散度最小化监督微调SFT通常使用交叉熵损失函数。让我们看看它如何与正向KL散度联系起来。2.1 SFT的标准流程与损失函数在SFT阶段我们拥有一个高质量的对话或指令遵循数据集D {(x_i, y_i^*)}其中y_i^*是人类标注者或精选模型给出的理想回答。对于一对样本(x, y^*)标准的交叉熵损失函数为L_SFT(θ) - Σ_{t1}^{T} log(π_θ(y_t^* | x, y^*_{t}))其中π_θ是待训练的模型θ是其参数。这个损失函数的直观解释是最大化模型为黄金回答序列y^*中每一个真实词分配的概率。2.2 从交叉熵到正向KL散度我们可以从分布视角重新理解这个损失。对于给定的x人类标注的y^*可以看作是从某个理想条件分布π_target(y | x)中抽取的一个样本。尽管我们只有一个样本但在理想情况下我们希望模型分布π_θ去逼近这个理想分布π_target。对所有数据(x, y)求期望SFT损失等价于最小化以下目标E_{(x, y) ~ D} [ - log π_θ(y | x) ]这恰好是最小化π_target与π_θ之间的交叉熵H(π_target, π_θ)。而交叉熵可以分解为H(π_target, π_θ) H(π_target) D_KL(π_target || π_θ)其中H(π_target)是目标分布自身的熵是一个与模型参数θ无关的常数。因此最小化交叉熵损失H(π_target, π_θ)等价于最小化正向KL散度D_KL(π_target || π_θ)。2.3 正向KL的特性及其在SFT中的体现优化正向KLD_KL(π_target || π_θ)意味着什么要求“模式覆盖”对于目标分布π_target有概率的任何输出y模型分布π_θ都必须赋予一定的概率。如果模型忽略了某个π_target认为合理的回答惩罚会很大。倾向于保守和平均由于数据集中对于同一个xy^*可能只有一种或少数几种写法π_target在这些样本点上近似为一个尖峰分布。优化正向KL会使模型努力覆盖这些尖峰但由于数据有限模型学到的分布可能不够“平滑”或“多样”更倾向于复现训练数据中的模式缺乏泛化。这解释了SFT模型有时会显得刻板、缺乏创造性的现象。一个思想实验 假设对于某个问题存在多个同样正确但表述不同的答案分布π_target是多峰的。SFT数据只提供了其中一种答案一个样本点。最小化正向KL的模型会尝试让这个答案的概率尽可能高但同时由于正向KL的“覆盖”压力它也可能给其他未见过但合理的答案分配一些微小概率通过模型的泛化能力但其主要质量会集中在所见过的答案上。3. RLHF显式的反向KL散度约束优化RLHF特别是其核心步骤——基于强化学习的策略优化如PPO采用了与SFT截然不同的优化范式。3.1 RLHF的标准框架与优化目标RLHF通常分为三步监督微调SFT如上述得到一个初始模型π_SFT。奖励模型RM训练通过人类对生成结果的偏好排序训练一个奖励模型r_φ(x, y)用以评判回答y的好坏。策略优化将语言模型视为策略π_θ利用奖励模型r_φ作为奖励信号通过强化学习如PPO优化该策略同时防止其偏离初始策略π_SFT太远。这第三步的优化目标通常形式化为max_θ E_{x~D, y~π_θ(·|x)} [r_φ(x, y)] - β * D_KL(π_θ(·|x) || π_SFT(·|x))其中第一项E[r_φ(x, y)]是期望奖励鼓励模型生成高奖励的回答。第二项β * D_KL(π_θ || π_SFT)是KL惩罚项β是控制惩罚强度的系数。D_KL(π_θ || π_SFT)正是反向KL散度。3.2 反向KL散度的核心作用在这个目标中反向KL散度D_KL(π_θ || π_SFT)充当了正则化器。它的作用是约束优化后的策略π_θ不要与SFT阶段得到的初始策略π_SFT偏离太远。优化反向KLD_KL(π_θ || π_SFT)具有以下特性要求“模式寻求”只要π_θ将其概率质量集中在π_SFT也赋予高概率的区域这个KL惩罚就会很小。π_θ可以安全地忽略π_SFT概率极低近乎为零的区域即使那些区域可能有高奖励但可能不安全或无意义。倾向于保守和坍缩优化过程会鼓励π_θ将概率质量从π_SFT的低概率区域挪到高概率区域。结合奖励最大化这会导致模型找到π_SFT高概率区域中那些恰好也能获得高奖励的“模式”并强化它们。这可能导致多样性降低模式坍塌但能有效避免模型为了追求高奖励而走向极端、无意义或不安全的输出。3.3 与SFT的对比硬币的两面现在我们可以清晰地看到对比特性SFT (隐式正向KL)RLHF策略优化 (显式反向KL)优化目标最小化 D_KL(π_target目标分布隐含在数据中的理想分布π_target由奖励模型r(x,y)定义的“好回答”偏好参考分布无直接拟合目标初始SFT模型π_SFTKL方向正向用π_θ覆盖π_target反向让π_θ保持在π_SFT的高概率区行为倾向模式覆盖学习数据中的所有模式可能平均化模式寻求聚焦于高奖励且初始模型认可的模式可能坍缩主要风险过拟合、刻板、缺乏对齐可能输出有害但符合语法的内容多样性丧失、过度优化Goodhart定律、训练不稳定它们如同一枚硬币的两面SFT的“正面”直接塑造模型分布去覆盖理想数据分布基础但可能粗糙。RLHF的“反面”在已塑形的基础上进行精细打磨通过反向KL约束确保优化不失控朝着人类偏好的方向微调。4. 深入理解一个简化的建模示例让我们通过一个极度简化的例子来直观感受正向KL和反向KL的不同行为。假设我们的词汇表只有两个词A和B。对于某个提示x初始模型SFT后分布π_SFT为P(A)0.5, P(B)0.5。奖励模型给出的奖励为r(A)1, r(B)10。即B是更好的回答。任务我们想优化模型分布π_θ使其获得高奖励但又不能偏离π_SFT太远。4.1 场景一使用反向KL约束类似RLHF优化目标max_π E_{y~π}[r(y)] - β * D_KL(π || π_SFT)我们可以计算不同π_θ(P(A)p, P(B)1-p)下的目标值设β1当p0.5(保持原分布)奖励0.510.5105.5 KL0 总目标5.5当p0.1(倾向于B)奖励0.110.9109.1 KL≈0.94 总目标≈8.16当p0.01(极度倾向B)奖励≈9.91 KL≈3.2 总目标≈6.71当p0.0(只输出B)奖励10 KL→∞ 总目标→ -∞计算表明存在一个最优解p介于0和0.5之间它增加了B的概率以获取更高奖励但又因反向KL惩罚而不会完全抛弃A。反向KL阻止了分布坍缩到单一模式B。4.2 场景二使用正向KL约束假设的替代方案如果我们将目标中的KL项换成正向KLmax_π E_{y~π}[r(y)] - β * D_KL(π_SFT || π)情况会大不相同。正向KLD_KL(π_SFT || π)在π给π_SFT有质量的点分配零概率时会趋于无穷大。如果π设定P(A)0那么D_KL(π_SFT || π)中对应于A的项0.5 * log(0.5/0)无穷大惩罚极大。因此正向KL强制要求π必须为A分配非零概率即使A的奖励很低。这更像是一种“数据覆盖”要求。这个例子清晰地展示了反向KL约束RLHF允许模型忽略低概率/低质量区域专注于提升高奖励区域只要不偏离初始分布太远。正向KL约束强制模型必须覆盖初始分布的所有支持集即使某些点不好。5. 工程实践中的启示与影响理解SFT和RLHF在KL散度上的对立统一对实际训练有重要指导意义。5.1 理解训练动态与超参调节SFT中的过拟合这本质上是正向KL最小化在有限数据下的必然结果。模型尽全力覆盖有限的训练样本点高概率导致在未见数据上泛化不佳。缓解方法包括数据增强、早停、dropout等。RLHF中的KL惩罚系数ββ控制了反向KL约束的强度。β太大模型几乎被锁定在π_SFT无法有效优化奖励。β太小模型会过度优化奖励可能产生“奖励黑客”行为生成看似高分但无意义的内容同时可能丢失语言流畅性偏离π_SFT太远。通常需要精细的调度或搜索来找到合适的β。奖励模型RM的过拟合如果RM过度拟合偏好数据它会给出有噪声或不合理的奖励。在反向KL约束下模型会努力寻找π_SFT高概率区域内那些能“欺骗”RM获得高分的输出导致泛化能力下降。5.2 算法改进的方向一些先进的算法改进可以从这个视角得到解释DPODirect Preference OptimizationDPO通过数学变换将带KL约束的强化学习目标转化为一个简单的分类损失。其推导过程清晰地揭示了它本质上也是在优化一个与反向KL相关的目标但省去了训练独立RM和复杂RL的步骤。IPOIdentity Preference Optimization针对DPO可能出现的过拟合问题IPO引入了额外的正则化项其目标也可以从KL散度的角度进行理解。KTOKahneman-Tversky Optimization通过引入前景理论对奖励进行非线性变换可以看作是在修改优化目标中“奖励”部分的形状从而影响在反向KL约束下的最优解。5.3 选择与权衡何时用SFT何时需要RLHF追求多样性与创造性如果任务本身需要模型有多种可能的合理输出如创意写作、头脑风暴强化正向KL特性的SFT可能更合适或至少需要谨慎使用强反向KL约束的RLHF以免扼杀多样性。追求安全性与对齐如果必须确保输出符合安全、伦理、事实性等硬性约束那么使用反向KL约束的RLHF是更佳选择。它能有效将模型约束在初始安全模型π_SFT的高置信度区域内进行优化避免出格。数据充足性当高质量、多样化的指令数据非常充足时SFT本身可能就能达到很好的对齐效果因为π_target本身已经编码了人类偏好。RLHF的优势在于能从相对稀疏的偏好反馈中泛化。离线vs在线SFT是典型的离线学习。RLHF中的策略优化可以是离线的如DPO也可以是在线的如PPO与真实人类交互。在线设置能持续收集反馈动态调整分布但成本更高。6. 常见问题与排查思路在实际操作中关于SFT和RLHF的困惑和问题很多从KL散度的视角可以给出一些统一的排查思路。问题现象可能原因KL视角解决思路SFT后模型输出刻板、缺乏变化正向KL最小化导致模型过度覆盖有限训练数据模式分布不够平滑。1. 增加训练数据的多样性。2. 在损失中加入标签平滑Label Smoothing这等价于让目标分布π_target变得更平滑从而缓解正向KL的尖峰覆盖压力。3. 调整温度参数Temperature在推理时进行采样。RLHF训练后模型多样性急剧下降反向KL约束过强β太大或奖励模型过度奖励某种单一模式导致模型分布坍缩。1. 减小KL惩罚系数β。2. 检查奖励模型是否在多样性样本上评分合理可能需要加入多样性相关的奖励项。3. 在RLHF数据收集中确保偏好数据覆盖多种风格的好答案。RLHF模型出现“胡说八道”或奖励黑客反向KL约束过弱β太小模型为了最大化奖励逃离了π_SFT定义的合理语言空间。1. 增大β。2. 加强π_SFT基线的质量通过更好的SFT。3. 在奖励模型中加入对困惑度Perplexity或与SFT模型输出相似度的惩罚。模型忘记了SFT阶段学到的知识RLHF的反向KL约束不足以将相关知识锚定在π_SFT的高概率区优化过程覆盖了这些模式。1. 增加β。2. 采用混合训练在RLHF目标中同时加入少量SFT损失即混合正向KL和反向KL目标。3. 使用更保守的RL算法。训练不稳定奖励值剧烈波动可能是优化过程中模型分布在正向KL和反向KL的拉力下陷入振荡。奖励模型梯度或策略梯度估计不准也会加剧此问题。1. 使用更稳定的优化器如AdamW并仔细调参。2. 对奖励进行标准化Whitening或裁剪。3. 使用PPO等具有信任域约束的算法并确保其KL惩罚或裁剪阈值设置合理。7. 总结与展望通过将SFT和RLHF统一到KL散度最小化的框架下我们获得了更深刻的洞察SFT是正向KL散度最小化的隐式实践致力于让模型分布覆盖理想数据分布其风险在于过拟合和模式平均。RLHF的策略优化是反向KL散度约束下的奖励最大化致力于在初始模型分布的安全区域内寻找更符合人类偏好的输出其风险在于模式坍塌和过度优化。它们并非简单的先后关系而是代表了两种不同的分布对齐哲学一种是“广泛学习力求覆盖”另一种是“精益求精聚焦优化”。在实际的大型语言模型训练中二者缺一不可。SFT奠定了模型能力与安全的基础分布RLHF则在此基础分布上进行校准和精细化调整。未来的训练范式可能会更显式地融合这两种KL约束。例如在同一个优化目标中平衡正向KL确保基础能力和反向KL实现偏好对齐或者根据不同的生成阶段动态调整KL约束的方向。对KL散度方向性的理解是我们设计更高效、更可控、更安全对齐算法的重要理论基础。理解这枚“硬币的两面”能帮助我们在面对模型训练中的各种现象如多样性下降、奖励黑客、遗忘等时快速定位到概率分布层面的根本原因从而做出更有效的调整。这不仅是理论上的优雅统一更是工程实践中强大的调试和分析工具。