3.2 超参与 loss 曲线解读


3.2 超参与 loss 曲线解读

本节摘要:SFT 的超参基调由一个数字决定:loss 起点约 1.3——基座已带强语言先验,SFT 教的是行为不是语言,因此力度要"轻":学习率取预训练的约 1/51/10、epoch 23 轮封顶、过拟合来得比预训练快得多。本节给出 124M 模型的超参量级表与调参次序(先 batch 与累积,再 lr,最后 epoch),然后教读 loss 曲线:健康的形状、过拟合的三个征兆(train 降 val 升、输出复读、回答变短变小),以及"该在第几个 checkpoint 收手"的经验法则。

学习目标

阅读完本节,你应当能够:

  1. 用"起点 1.3"推出 SFT 超参的轻力度基调并说出各超参的量级区间。
  2. 按正确次序调参(batch/累积 → lr → epoch),不乱碰旋钮。
  3. 从 loss 曲线认出过拟合三征兆并决定收手点。

一、为什么力度要轻:起点 1.3 的推论

回顾 1.1 节的两个起点:预训练从 10.4 起步(学语言),SFT 从约 1.3 起步(社区实测 nanochat 口径)。1.3 意味着基座对"对话里的下一个词"已经猜得八九不离十——可学的空间小,能毁的空间大。推论链:

起点低(先验强) ──► 大 lr 会把预训练权重冲离最优点(灾难性遗忘) ──► 数据量小(数万条 vs 预训练百亿 token)──► 多跑几轮必然过拟合 ──► 结论:小 lr、少轮数、盯紧验证集

124M 模型的量级表(经验区间,非精确值;1B+ 模型 lr 再减半左右):

超参 预训练量级(对照) SFT 量级 说明
学习率(峰值) ~6e-4 1e-5 ~ 5e-5 预训练的 1/51/10;warmup 短(几十几百步)
调度 cosine 衰减 cosine 或线性衰减到 0 与预训练同形,只是全程更短
epoch 单轮大数据 2~3 轮封顶 第 2 个 epoch 后过拟合风险陡增
有效 batch 数百~数千条序列 32~128 条序列 小了噪声大,大了白费显存
权重衰减 0.1 上下 0~0.1 小数据下别指望它救命

调参次序(次序错了会互相掩盖):

  1. 先定 batch 与梯度累积:显存允许的单卡 batch × 累积步数 = 有效 batch,落进 32~128;
  2. 再扫 lr:从 2e-5 起,以 2 倍步长试 {1e-5, 2e-5, 5e-5},看前几百步的 loss 斜率与稳定性;
  3. 最后定 epoch:用验证集 loss 的拐点说话(下文),不拍脑袋。

💡 一个反直觉的事实:SFT 对 lr 的容忍区间比预训练窄得多。预训练 lr 偏高 2 倍往往只是慢一点;SFT lr 偏高 2 倍,模型可能直接"忘了怎么说人话"——输出退化成乱码或无限复读。宁可偏小,不要贪快。

二、读 loss 曲线

健康的 SFT loss 曲线(示意坐标,训练日志随手可画):

loss 1.5 │● 1.4 │ ● 1.3 │ ●● 1.2 │ ●●● 1.15│ ●●●●────●●●●●●──●●●●●●● train:快速下探后趋平 1.18│ ●●●●──●●──●●──●───▲ val:先降后回升 = 过拟合起点 └──────────────────────────────► step ~10% │ ~1 epoch ~2 epochs 快降区 │ 平台区 过拟合区

三个读图要点:

  1. 快降区(前 10% 步数):loss 从 1.3 快速下探——模型在学"格式与行为"(什么时候停、以谁的身份说),这段斜率最大;
  2. 平台区:斜率趋平——行为已学会,剩余下降来自背数据(开始危险);
  3. 分叉点:train 继续降、val 开始回升——过拟合的数学定义,checkpoint 应选在 val 最低点,而不是训练结束点。

三、过拟合的三个征兆

loss 曲线之外,生成行为的三征兆(每几百步存一次 checkpoint、抽问几个固定问题对照):

征兆 表现 对应病情
复读 同一句话在回答里连写数遍;换个问题还是那句 把训练集的表面统计背下来了
变短变小 回答越来越短、越来越"安全",最后单字作答 学到了"训练集回答都短"的捷径
逐字复述 抽训练集里的问题,回答与训练集一字不差 纯记忆,零泛化——epoch 到头了

处置三连:回退到上一个健康 checkpoint;epoch 减一;lr 减半重跑。"回退 checkpoint"之所以放在第一,是因为它零成本见效——这也是为什么实战脚本(3.3 节)每几百步必存档。

⚠️ 别被 train loss 的持续下降骗了:SFT 的 train loss 在 2 轮之后还在降是常态,降的每一分都可能来自记忆而非能力。验收只看 val 与生成抽检——第 5 章会把"生成抽检"升级成正式的评测集。

四、一个完整的心智检查单

跑每次 SFT 前过一遍(本书工程纪律):

  1. 数据过 2.1 契约校验与 2.2 清洗;量级落在模型对应的区间表(2.2 末);
  2. 掩码过 3.1 的前向验收(基座 loss 在 1~2 之间);
  3. lr 在 1e-55e-5、epoch ≤3、有效 batch 32128;
  4. 每几百步存 checkpoint + 固定问题抽检;
  5. 收手标准:val loss 拐点 或 生成三征兆任一出现。

本节要点回顾

  1. 起点 1.3 ⇒ 轻力度:lr 1e-55e-5(预训练的 1/51/10)、epoch 23 封顶、有效 batch 32128。
  2. 调参次序:batch/累积 → lr(2 倍步长扫描)→ epoch(val 拐点定)。
  3. 过拟合三征兆:复读、变短变小、逐字复述——处置是回退、减轮、减 lr,验收只认 val 与抽检。

旋钮的读法有了,3.3 节把它们全部装进一份完整可跑的训练脚本,并备好故障排查表。


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U