Problem entry · machine-readable · 大模型本地部署

训练时 loss 突然尖峰(spike)/ 数值发散(NaN、inf)怎么办

本页嵌入 #trove-entity JSON(本条目全量结构化数据);全库数据见 /agent/trove.json。

元数据

idllm-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)