Closed xukefaker closed 2 months ago
已经解决了。在main.py的78行我加了一行代码:torch.set_float32_matmul_precision('high'),设置了一下AMP的精度,并且在Seq2SeqTrainingArguments里面设置bf16=True,成功解决了grad_norm为nan、loss为0.0的问题。个人猜测可能是huggingface trainer在反向传播的哪里默认启动了pytorch的AMP,而模型参数默认是fp32。在计算的时候将fp32强制转换为tf32、bf16等精度的数据可能造成INF、nan的问题。提前开启torch.set_float32_matmul_precision('high')似乎可以解决这个问题。
你好,我按照readme.md里给定的参数复现auto-gui,但是发现从第二个step开始grad_norm就变成了nan,然后loss变成了0。请问这个问题大概是由什么造成的?