microsoft / CodeBERT

CodeBERT
MIT License
2.19k stars 450 forks source link

关于训练时模型的突然失效问题(training loss暴涨,training ppl暴涨) #306

Open mxx1219 opened 9 months ago

mxx1219 commented 9 months ago

您好,我在用unixcoder-base模型在一个代码到代码转换任务finetune的时候,发现模型会在训练时的某个epoch突然不知原因的失效,training loss和training ppl都会暴涨(请见图一),在dev数据集上的测试效果bleu-4和xMatch直接跌到几乎为0,打印了一下模型在dev上的输出,发现输出全部为横线(请见图三),没有一点实际意义。但是在失效了两个epoch之后,发现模型自己又扭转回来了,效果也重新回来了(请见图二,dev输出请见图四)。我想知道这个现象是怎么形成的?我的learning-rate设置的5e-5,您感觉会是学习率依然过高导致的训练震荡(但是感觉这个震荡幅度也太大了),还是说可能是其他原因导致的?希望能够得到您的解答,非常感谢!

图一_失效场景 图二_重新变得有效 图三_失效dev输出 图四_重新有效之后的dev输出