モデル学習時に使えそうなテクニック
勉強中なので、間違っていたらすみません
勾配蓄積(Gradient Accumulation): 勾配を数ステップ貯めた後にパラメータ更新
バッチサイズを大きくしたいがメモリ的に無理なときに使える
たとえば、バッチサイズ256にしたいがメモリ的に64までしか無理な場合、勾配計算を4ステップ終わるまで待ち、4ステップ分の勾配を平均化してパラメータ更新をおこなう。これにより、疑似的にバッチサイズが64×4=256のときと同じになる。
勾配クリッピング(Gradient Clipping): 勾配のノルムを制限して勾配爆発を抑える
pytorchの「torch.nn.utils.clip_grad_norm_」などを使えばできる
逆伝播後に勾配をクリッピングすることで、勾配爆発を防ぐ