Skip to content

梯度下降与优化器:从「往山下走」到 Adam

一、背景

训练神经网络(包括大模型预训练)本质是在 高维空间里找一组参数,让损失函数尽量小。最朴素的想法是:算梯度,往梯度的反方向挪一小步——这就是 梯度下降。但实际训练里,学习率怎么设、要不要「带惯性」、怎么自适应每个参数的步伐,直接决定 收敛快不快、会不会炸 loss

做过 微调 LoRA、跑过 PyTorch 训练脚本的朋友,一定见过 AdamWlr_scheduler 这些配置。搞懂优化器在干什么,读论文里的 warmup、cosine decay 才不会懵;和 量化、混合精度 文章一起看,也能理解训练栈里每一环在省什么。

二、核心概念和核心原理(详细解答+通俗解释)

(一)核心概念(先通俗,再详细)

  • **1. 梯度(Gradient)——损失对参数的「坡度」**通俗解释:每个参数动一点点,损失变多少;坡度大说明 往这个方向改参数,损失变化快。详细解答:反向传播用链式法则算出 损失对各参数的偏导(梯度);负梯度方向是 局部最快下降方向(一阶近似)。

  • 2. 学习率(Learning Rate)——每一步迈多大通俗解释:太大 震荡甚至发散;太小 爬得慢、还容易卡平台。详细解答:现在常用 调度器:warmup(先小步摸索)、再 cosine/linear decay(后期细调)。

  • 3. SGD / Momentum / Adam通俗解释:SGD 最简;Momentum 像带球下坡,有惯性,过窄谷更稳;Adam 给每个参数 自适应步长(用一阶、二阶矩估计),默认好用,LLM 训练里极常见。详细解答:AdamW 把权重衰减从自适应里 解耦,Transformer 训练更常用 AdamW。

(二)核心原理(通俗拆解,一步一步讲清楚)

  1. 第一步:批量(Batch)与随机性通俗解释:全数据算梯度太贵,用 mini-batch 近似;有噪声反而有助 逃出尖锐极小点。详细解答:Batch size 影响梯度方差与显存;大模型用 梯度累积 模拟大 batch。

  2. 第二步:为什么需要 Warmup通俗解释:训练初期参数乱,梯度可能很大,猛更新会炸;先小学习率「热身」。详细解答:Transformer 里 attention 尺度与层数深时 更敏感,warmup 几乎是标配经验。

  3. 第三步:与混合精度训练通俗解释:FP16/BF16 前向,FP32 存主权重或 loss scaling,减少显存、加速;优化器状态仍要精度小心处理。详细解答:和 量化(推理) 不同,这是 训练时 数值策略。

三、补充进阶知识点(易懂不晦涩,适配新手进阶)

  • 1. 二阶方法为何少见通俗解释:牛顿法要 海森矩阵,维度上亿时不可行;近似二阶(如 Shampoo)在超大模型里有研究,但工程主流仍是 一阶 + 好调度。简单补充:知道即可,面试吹到二阶别穿帮。

  • 2. 微调时的学习率通俗解释:全参微调常 比预训练小一个数量级;LoRA 可稍大,但仍要试。简单补充:和 PEFT/LoRA 专题呼应。

  • 3. 和之前知识点的关联(重点) Transformer 训练依赖稳定优化;微调与对齐 里的 loss 形状不同但优化器同一套;KV Cache 是推理侧,优化器是训练侧——别混。

四、文章知识总结

  1. 背景:训练 = 最小化损失;优化器决定 怎么沿梯度更新参数
  2. 核心概念:梯度、学习率、SGD/Momentum/AdamW;batch 与噪声。
  3. 核心原理:warmup+衰减是 Transformer 标配套路;混合精度是训练工程常识。
  4. 进阶:微调 lr 更小;二阶大规模不主流。
  5. 核心逻辑会调 lr 和调度器,比会背 Adam 公式更值钱。

总结:优化器是 深度学习「发动机调校」;读 LLM 训练论文时,把优化与学习率曲线对上号,很多东西就不再玄学。