大模型微调底层动力学:从“心法”到“火候”

0 阅读3分钟

一、 角色分工:谁在操纵模型?

在微调的战场上,每一个术语都有它不可替代的性格:

  • 损失函数 (Loss): 它是**“毒舌判官”**。它拿着标准答案,冷酷地告诉模型:“你离正确答案还差 10.5 分”。
  • 梯度 (Gradient): 它是**“下山指南”。数学证明,沿着梯度的反方向走,损失值(错误)下降最快。它指引了参数进化的方向**。
  • 学习率 (LR): 它是**“油门/步幅”**。它不属于 Loss,而是优化器的操纵杆。它决定了沿着指南的方向,这一步我们要跨出 1 厘米 还是 100 米
  • 优化算法 (AdamW): 它是**“私人教练”**。它不仅看当前的方向,还会翻看历史账本,为每一个参数调整运动节奏。

二、 学习率:控制“步长”的艺术

正如你所理解的:学习率就是参数变化的步长。但在实战中,这个步长必须“见机行事”。

1. 全局节奏 (Scheduler) —— 提前预设的导航图

我们通常给微调设定一个**“先热身,再冲刺,最后减速”**的曲线:

  • Warmup (热身段):怕初期梯度太猛,把预训练的根基踩碎,所以先小步走。
  • Cosine Decay (余弦退火段):快到山谷底部时,步幅要丝滑变小。
    • 数学直觉:只有步长足够小,才能钻进那个最准的“最优解坑底”,否则会在坑边反复横跳(震荡)。

2. 局部微操 (AdamW 自适应) —— 动态变化的私人医生

这是关于**缩放因子(步长缩放)**的核心机制:

  • 动态账本:AdamW 为每个参数存了两个“记忆”:一阶矩(走过的方向)和二阶矩(走过的剧烈程度)。
  • 初始化与变化
    • 冷启动:从 0 开始,通过“偏差修正”快速找回状态。
    • 自我修正:利用 EMA(指数移动平均),让 99.9% 的记忆留在过去,0.1% 的感受留给现在。
    • 逻辑闭环:如果一个参数更新太频繁(二阶矩变大),AdamW 就会通过除法把它的步长自动收缩;如果一个参数太懒(梯度小),分母变小,步长就自动放大

三、 损失函数加权:给考试“划重点”

既然 Loss 决定方向,那我们可以通过操纵 Loss 来“引导”模型关注我们想要的东西:

1. 提问遮盖 (Prompt Masking)

  • 操作:把用户提问部分的权重设为 0
  • 原因:我们不希望模型浪费脑力去背用户的提问方式,我们只让它学习怎么输出答案。

2. 关键节点加权 (Weighted Loss)

  • 操作:人为把答案里的关键逻辑词(如 "Therefore", "Step 1")权重设为 2.0,最终答案设为 5.0
  • 原理:这是一场“不公平的考试”。错一个虚词扣 1 分,算错最后结果扣 50 分。在巨大的惩罚(梯度)面前,优化器会强迫模型优先保住这些高分题相关的神经元。

四、 工业界的选择:为什么是 AdamW?

  • SGD (随机梯度下降):虽然简单,但它是一根筋。在 LLM 这种复杂的地形里,它容易在平原上迷路,在陡坡上摔跤。
  • AdamW:不仅聪明(自适应),还很稳(修复了权重衰减)。虽然它很**“贵”**(需要 2 倍显存存账本),但它让训练变得异常稳定,是目前的绝对统治者。

🛠️ 深度总结:一句话心法

微调就是:设定一个“判官”(Loss),在“私人医生”(AdamW) 的动态微操下,踩着“油门”(LR) 寻找最佳步长,一路上还不忘给“重点题”(Weighted Loss) 加码。

💡 知识点速查手册

  1. 学习率:参数更新的位移幅值(步长)。
  2. AdamW 缩放因子:根据梯度历史动态计算,旨在平衡剧烈与平缓的参数更新。
  3. 退火:在训练后期收缩步长,追求极限精度,防止跳出最优解。
  4. Loss 权重:人为引导模型注意力,解决核心逻辑易出错、 Prompt 过拟合等工程问题。