定義
勾配チェックポイントとは、モデル学習時に中間活性化を保存せず必要時に再計算することでGPUメモリ使用量を削減する手法のこと。
勾配チェックポイント (Gradient Checkpointing)とは(詳しく解説)
勾配チェックポイントは、ディープラーニングの学習でGPUメモリ不足を回避するための標準的な最適化手法とされる。通常の誤差逆伝播では各層の中間活性化をすべてメモリに保持するが、この手法では一部の層の出力のみを保存し、逆伝播時に必要な活性化を再計算することでメモリ使用量を大幅に削減できる。PyTorchやTensorFlowなど主要フレームワークに標準機能として組み込まれており、大規模言語モデルのファインチューニングで広く採用されている。2026年時点の実運用では、メモリ削減と引き換えに再計算分の計算時間が20〜30%程度増える点がコスト面での落とし穴として知られ、現場ではバッチサイズを大きくして学習効率を上げるか、学習時間を優先してこの手法を使わないかのトレードオフ判断が必要になるとされる。GPUクラウドのレンタル費用が高止まりする中、メモリ容量の小さいGPUでも大規模モデルを扱える点が選定理由として重視される傾向にある。
勾配チェックポイント (Gradient Checkpointing)の使用例
- PyTorchでtorch.utils.checkpointを使い、Transformerの各層をラップしてメモリ使用量を削減する実装パターン。
- 24GB VRAMのGPU1枚で70億パラメータモデルを学習する際、勾配チェックポイントと併用してバッチサイズを維持する構成。