跳到主内容

微调时学习率为什么比预训练小?精修的力度

2026-10-18 发布 来源:我告诉你AI导航 阅读

训练大模型时分两个阶段:预训练把模型从随机初始化塑形成才,微调在成品上做定向精修。一个反复被观察到的现象是:微调阶段的学习率通常要比预训练小一到两个数量级。同样是更新参数,为什么力度差这么多?本文按机制层思路,从模型状态、数据规模、...

训练大模型时分两个阶段:预训练把模型从随机初始化塑形成才,微调在成品上做定向精修。一个反复被观察到的现象是:微调阶段的学习率通常要比预训练小一到两个数量级。同样是更新参数,为什么力度差这么多?本文按机制层思路,从模型状态、数据规模、更新目标三个角度讲清这件事。

模型状态:成品经不起猛拧

第一个角度是模型的状态不同。预训练开始时参数接近随机,梯度信号再大也「摔不坏」——一个本就乱七八糟的模型,往任何方向迈一大步都是改善。微调开始时模型已经成型,各项能力处在微妙的平衡里,此时大学习率等于在一个精密的成品上猛拧螺丝,很容易把原本通顺的语言能力拧坏。参数越接近收敛,对更新幅度就越敏感,这是优化过程的普遍规律。

数据规模:看得多容易冲过头

第二个角度是数据规模不同。预训练动辄几万亿 token,一个 global batch 只是沧海一粟,单步梯度噪声大,大学习率配合各种调度策略才能在噪声里稳步前进。微调数据常只有几十万到几百万条,同样的 batch size 下数据被反复看很多遍,梯度估计更准也更容易过拟合,此时大学习率会让模型在小数据集上「冲过头」,记住样本却丢了泛化。

更新目标:平原上雕花

第三个角度是更新目标不同。预训练的目标是下一词预测,loss 面宽阔平坦,大步走没问题。微调的目标更窄,可能是指令遵循、特定格式输出或领域口吻,loss 面在原本已经很低的水平上再抠细节,相当于在平原上雕花。雕花要用小力度、多步数,这就是微调常用 warmup 加线性衰减的原因。好比给已经成型的作品做精修:让文心一言和通义千问基于同一份底稿各改一版,改动越小越能保住原稿的味道,改动越大越容易跑偏。

档位参考与调大的征兆

常见的档位有个大致范围:预训练峰值学习率常在 1e-4 量级,全参数微调常用 1e-5 到 5e-6,LoRA 这类只训少量参数的方法反而可以用稍大的学习率,因为可训参数少、破坏面小。具体数值没有标准答案,要看专属测试集的反馈来定,评估集掉了就是力度过大。学习率调大会怎样?轻则 loss 震荡不降,重则模型输出乱码或能力断层——这就是灾难性遗忘的诱因之一,新知识没学好,旧能力先丢了。

三个档位的量级和破坏面,可以并排对照:

阶段学习率量级可训参数破坏面与风险
预训练峰值常在 1e-4全部参数参数接近随机,迈大步也是改善
全参数微调常用 1e-5 到 5e-6全部参数成品平衡精密,猛拧会拧坏语言能力
LoRA可比全参微调稍大只训少量参数破坏面小,但大过头一样过拟合

配套地,batch size 的选择也影响有效步长,batch size 大了好还是小了好讲了两头的代价。最后说一个常见误配:用预训练的大学习率跑微调,前几百步 loss 降得飞快,团队以为效果好,其实是模型在「背题」,接着泛化能力就垮。力度小的精修,慢才是正常的。

训练数据的喂入顺序同样会影响收敛节奏,训练数据的顺序有影响吗值得一并读;微调后模型能力迁移的观察维度,见微调会改变性格吗。

  • 模型状态:成品平衡精密,禁不起大步猛拧
  • 数据规模:微调数据少看得多,大学习率容易冲过头
  • 更新目标:平原雕花用小力度多步数,warmup 加衰减
  • 常见档位:全参微调 1e-5 量级,LoRA 可略大,以评估集反馈为准
  • 调大征兆:loss 震荡、输出退化、旧能力丢失

关于微调学习率再多问三句

  • LoRA 可以用大一点的学习率吗?:可以,它只更新一小部分参数,破坏面小,但大过头一样会过拟合,仍以评估集为准。
  • 学习率一定要衰减吗?:多数设置会衰减,最后阶段用小步长收束找细节,恒定学习率在精修阶段容易在最优点附近来回跳。
  • loss 不降是学习率太小吗?:不一定,也可能是数据质量问题或任务本身难,先确认数据和模板再动学习率。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]