元数据
| id | llm-training-loss-spike | 收录 | 2026-08-30 |
|---|---|---|---|
| 问题域 | 大模型本地部署 | 主题分组 | 编程与调试 |
| 适用工具 | python · 外部工具 | ||
症状
loss 曲线突然尖峰:单步 spike 后恢复、连续 spike、spike 后永久不恢复,或直接 `NaN`/`inf`;grad norm 同步异常抬升。
原因
更新量 = 学习率 × 梯度,尖峰本质是更新量失控。根因分三类:数据(异常 batch)、超参/链路(学习率过大、缺梯度裁剪、AMP 精度)、目标/实现(mask、label、多卡归约错误)。现象 ≠ 原因,先证据后处理。
解法
1. 按尖峰类型定位(单步/连续/不恢复/NaN);
2. 重放相同 batch + 看 grad norm / 相对更新量;
3. 按根因处理:修数据 / 梯度裁剪 / 降学习率 / 从健康 checkpoint 恢复(一次只改一个变量);
4. 训练前跑 pilot run + 分档监控防再犯。
验证证据
- 本机实测(2026-08-30,Python 3.14 + numpy 2.5.2,venv+清华镜像):2 层 MLP 回归 y=sin(x) 机制复现——lr=0.01 收敛(loss 0.065→0.026);lr=1.0 发散(25 步 loss 5.4e51,98 步 inf,不恢复);lr=1.0+clip=1.0 全程有限(gradnorm 裁剪后=1.0);注入单步尖峰(loss 0.048→0.224)后从健康 checkpoint 降 lr 恢复收敛(0.028)。证据:实测复现日志(2026-08-30)。
- 原文:石头开会《模型训练稳定性:从训练链路到排障手册》(2026-08-28,博客园)。
- 未实测:完整 LLM 训练框架(PyTorch/LLaMA-Factory)上的实况复现(环境重,标注"机制已复现、环境未复现",SM-076)。
来源与证据
素材来源:https://www.cnblogs.com/GlenTt/p/22742530
验证证据:Evidence details kept locally (2026-08-30)