メモリ効率化とは
Memory Efficiency
限られたGPU・デバイスメモリでより大きなモデルやバッチを学習・推論できるようにする技術群の総称
概要
メモリ効率化は、モデルの学習・推論時に消費するメモリ量を削減し、限られたハードウェアリソースでより大きなモデルやバッチサイズ、より長いコンテキストを扱えるようにする技術の総称。 学習時には、中間活性化を保持せず逆伝播時に再計算する勾配チェックポインティングが使われる。また、パラメータ・勾配・オプティマイザ状態をデバイス間で分割して保持するZeRO(Zero Redundancy Optimizer)や、低精度(FP16/BF16など)で計算するMixed Precision Trainingも用いられる。推論時には、KVキャッシュの圧縮や量子化によってメモリ使用量を抑える手法が使われる。 いずれもモデルの精度低下と引き換えにメモリを節約する、あるいは計算時間の増加と引き換えにメモリを節約する、というトレードオフを伴うことが多い。
利点
- 限られたGPUメモリでより大きなモデル・バッチサイズ・コンテキスト長を扱えるようになる
- 既存モデルの構造を大きく変えずに適用できる手法が多い
欠点
- 再計算や通信の増加により、学習・推論にかかる時間が増えることもある
- 量子化など一部の手法は精度低下とのトレードオフを伴う