当发现训练异常状态时,除了最常用的clip_grad之外,业界实践中还会用到跳过Grad Norm异常增大的step、回滚到正常状态的checkpoint重新拉起训练,以及重新训练时清空优化器状态并从头warmup。
另外,PaLM论文提出,在发生崩溃时可以从之前的一个中间节点开始继续训练,并且跳过之前那段导致崩溃的训练数据。重新训练的checkpoint需要选择监控指标都正常的,以免最终得到的模型在下游评测任务表现不佳。为了准确判断训练是否处于健康状态,一般来说,我们应尽可能采集详细的梯度和激活值信息。