1. 大语言模型微调的学习动态解析
在人工智能领域,理解大语言模型(LLM)的微调过程一直是个黑箱问题。最近发表在ICLR 2025的这项研究通过"学习动态"(Learning Dynamics)的视角,为我们打开了一扇观察模型内部运作机制的窗口。
学习动态理论的核心在于揭示:当模型基于某个训练样本更新参数时,这种变化会如何影响它对其他样本的预测。这就像是在观察大脑学习新知识时,不同神经元之间如何相互影响。研究者们发现,这种动态过程能够解释许多微调过程中的反直觉现象。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 学习动态的理论框架
2.1 基本数学表达
学习动态可以用以下公式描述:
Δθ ≡ θ_{t+1} - θ_t = -η·∇L(f_θ(x_u), y_u)
Δf(x_o) ≡ f_{θ_{t+1}}(x_o) - f_{θ_t}(x_o)
其中:
- η是学习率
- L是损失函数
- (x_u, y_u)是训练样本
- x_o是我们想观察预测变化的测试样本
这个公式告诉我们:基于训练样本(x_u,y_u)的一次参数更新,会如何改变模型对测试样本x_o的预测。
2.2 三项关键因素分解
研究者将预测变化分解为三个关键因素的乘积:
Δlogπ_t(y|x_o) = -η·A_t(x_o)·K_t(x_o,x_u)·G_t(x_u,y_u) + O(η²)
这三项分别代表:
- A_t(x_o):模型当前预测的梯度
- K_t(x_o,x_u):经验神经正切核(eNTK),衡量样本间的相似性
- G_t(x_u,y_u):损失函数对logits的梯度
这种分解让我们能够精确分析不同因素对学习过程的影响。
3. 监督微调(SFT)的动态分析
3.1 SFT的基本机制
监督微调使用负对数似然损失:
L_SFT(x_u,y_u^+) = -Σlogπ(y_l^+|y_{<l}^+,x_u)
研究发现,学习一个响应y_u^+不仅会提高模型对该响应的置信度,还会"拉高"与之相似的其他响应。这就像学习数字"4"时,也会影响对相似数字"9"的识别。
3.2 实际观察到的现象
在实验中,研究者发现了几个有趣现象:
- 模型对训练响应y_u^+的置信度持续上升
- 与y_u^+相似的响应(如改写版本)初期置信度会上升,后期下降
- 完全无关的响应置信度持续下降
- 其他问题的正确答案置信度也会上升
最后一个现象特别值得注意,它解释了为什么微调后模型会产生"幻觉"——因为学习一个问题时,会无意中提高对其他问题答案的置信度。
4. 直接偏好优化(DPO)的动态分析
4.1 DPO与SFT的关键区别
DPO的损失函数同时考虑偏好响应y_u^+和非偏好响应y_u^-:
L_DPO(θ) = -E[logσ(βlog(π_θ(y_u^+)/π_ref(y_u^+)) - βlog(π_θ(y_u^-)/π_ref(y_u^-)))]
与SFT不同,DPO会对非偏好响应施加负梯度,这导致了独特的"挤压效应"。
4.2 挤压效应(Squeezing Effect)
当对低概率响应施加负梯度时,会出现以下现象:
- 该响应的置信度必然下降
- 减少的概率质量会转移到当前最可能的响应上
- 分布越集中(peakier),效应越强
- 初始概率越低,效应越显著
这解释了为什么DPO训练中,几乎所有响应的置信度都会下降,而模型会倾向于生成重复内容。
5. 实验验证与发现
5.1 SFT的实验结果
研究者构建了探测数据集D_probe,观察不同类型响应的置信度变化:
- 偏好响应y_u^+:持续上升
- 改写版本:初期上升后期下降
- 随机句子:持续下降
- 其他问题答案:持续上升
这些结果完美验证了理论预测。
5.2 DPO的实验结果
DPO训练中观察到:
- 偏好响应和非偏好响应的置信度都下降
- 改写版本的置信度变化介于两者之间
- 贪心解码选择的响应置信度快速上升
这证实了挤压效应的存在,也解释了模型输出退化的原因。
6. 改进方案:扩充式SFT
基于对挤压效应的理解,研究者提出改进方案:
- 在SFT阶段同时使用y_u^+和y_u^-训练
- 提高非偏好响应的初始概率
- 再进行常规DPO训练
这种方法显著缓解了挤压效应,使DPO后的模型性能更好。实验显示,经过多轮DPO后,改进方法的性能反超基准方法。
7. 实际应用建议
对于从业者,这项研究提供了几个重要启示:
- 监控不同类型响应的置信度变化,可以诊断训练问题
- 适当调整SFT阶段的数据组成,能改善后续DPO效果
- 注意控制DPO的训练轮数,避免过度挤压
- 考虑引入更多样化的响应类型进行训练
这些发现不仅帮助我们理解模型行为,也为改进对齐方法提供了新思路。
