最近在跑一个 7B 左右的模型做指令微调,用 PyTorch 2.1 + AMP 混合精度,单机 8 卡 A100。训练到 300 多 step 的时候 loss 突然变成 NaN,前面都挺正常的。我试过调小学习率、加 gradient clipping,但还是会偶发。看有人说是 fp16 溢出,建议换 bf16,也有人说要检查 loss scaling 那块。我现在有点懵,不知道该从哪排查,有没有遇到过类似情况的老哥指点一下?框架层面到底该怎么定位这种问题?