是否需要提前确认Overflow是哪个原因引起的,或者已经确认FP32的模型没有Overflow问题?

如果有Overflow会skip这个batch,不更新这个梯度。在开发的过程中也考虑到类似问题,但是在实验过程中,可能大部分情况下在FP32进行训练时,一些特定的step会有Overflow的产生,但是这些step一般是因为batch下的数据比较特殊,同时在wait的状态下产生了Overflow,基于这样的混合精度训练的Overflow,这些batch会被skip掉,整体而言model没有进行Overflow就没有被挂掉,他本质上也帮助了model的训练。如果有些model一直Overflow,我们会加以控制,认为这个model已经挂掉了,这时的行为被认为与FP32的行为是一致的,FP32如果Overflow就会退出,混合精度的时候也会识别这个pattern然后退出。

蓝海大脑 京ICP备18017748号-1