Table of Contents
大規模なニューラルネットワークのメモリフットプリントを理解することは、展開とトレーニングを最適化するために不可欠です。ハードウェアの要件と効率性を決定するのに役立ちます。この記事では、ニューラルネットワークモデルで使用されるメモリを計算する方法について説明します。
記憶使用法のコンポーネント
メモリの合計フットプリントには、モデルパラメーター、グラデーション、オプティマイザの状態、および計算中の一時的なバッファが含まれます。各コンポーネントは、全体的なメモリ消費に貢献します。
モデル変数 記憶の計算
主要素はモデルのパラメータのサイズです。これを推定するために、各パラメータのサイズでパラメータの数を乗算し、通常は32ビットの浮動小数点数の4バイトです。
例えば、100万パラメータのモデルでは、パラメータを格納するだけ、約400MBのメモリが必要になります。
追加のメモリの考慮事項
トレーニング中、グラデーションとオプティマイザの状態もメモリを消費します。 グラデーションは通常、パラメーターと同じサイズで、メモリ要件を倍増します。 オプティマイザの状態、運動量や適応学習速度変数など、さらにオーバーヘッドを追加できます。
活発化および中間計算のための一時的な緩衝はまた大きいバッチ サイズか複雑な建築と、特に総記憶使用に、貢献します。
トータルメモリ使用量を推定
メモリの合計フットプリントを推定するには、パラメータ、グラデーション、オプティマイザの状態、および一時バッファのメモリを要約します。特定のモデルアーキテクチャとトレーニング設定に基づいて計算を調整します。
- モデルパラメーター
- グラデーション
- オプティマイザの状態
- アクティベーションバッファ
- 中間計算