ロススパイク
学習の途中で損失(ロス)が突然跳ね上がる現象。自然に収まることもあれば、モデルが壊れて以前のチェックポイントまで戻すことになる場合もある。
大規模モデルを訓練したことのある人にはおなじみだが、予測が恐ろしく難しい現象である。公開資料で最も参考になるのは、MetaのOPT-175Bのログブックで、数か月の間に何十回もの再起動、ハードウェア障害、手動介入が記録されている。原因は複数あり、互いに絡み合う。アテンションのロジットが制御不能に増大する(クエリとキーの正規化で対処する)、小さな勾配が長く続いたあとAdamの二次モーメントの条件が悪化する、ゴミデータを含むバッチが一つ混ざる、低精度演算でオーバーフローが起きる、などだ。定石は、こまめにチェックポイントを保存してスパイクの損失を数日ではなく数時間に抑えること、そして引き金になったバッチを飛ばせるようにしておくことである。