训练调试与稳定性¶
训练调试要避免只盯最终指标。更有效的方式是从数据、前向、反向、优化器和系统资源逐层定位。
监控指标¶
- loss:训练 loss、验证 loss、分任务 loss。
- 梯度:范数、异常值、是否为 NaN/Inf。
- 学习率:warmup、峰值、衰减曲线。
- 吞吐:samples/s、tokens/s、step time。
- 显存:峰值、碎片、OOM 位置。
- 数据:样本长度、空样本、标签分布。
排查顺序¶
- 用很小数据集确认模型能过拟合。
- 固定随机种子,减少不可复现因素。
- 检查输入、label、mask 的 shape 和语义。
- 检查混合精度和梯度缩放。
- 检查优化器参数组和 weight decay 设置。
- 扩大到真实数据和多卡环境。
常见症状¶
- loss 为 NaN:学习率过大、数据异常、精度溢出。
- loss 不动:标签错位、mask 错误、参数未更新。
- 训练慢:数据加载慢、通信慢、算子不融合。
- 多卡不一致:随机种子、dropout、同步点或数据切分问题。