一、 角色分工:谁在操纵模型?
在微调的战场上,每一个术语都有它不可替代的性格:
- 损失函数 (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) 加码。
💡 知识点速查手册
- 学习率:参数更新的位移幅值(步长)。
- AdamW 缩放因子:根据梯度历史动态计算,旨在平衡剧烈与平缓的参数更新。
- 退火:在训练后期收缩步长,追求极限精度,防止跳出最优解。
- Loss 权重:人为引导模型注意力,解决核心逻辑易出错、 Prompt 过拟合等工程问题。