大規模なニューラルネットワークのメモリフットプリントを理解することは、展開とトレーニングを最適化するために不可欠です。ハードウェアの要件と効率性を決定するのに役立ちます。この記事では、ニューラルネットワークモデルで使用されるメモリを計算する方法について説明します。

記憶使用法のコンポーネント

メモリの合計フットプリントには、モデルパラメーター、グラデーション、オプティマイザの状態、および計算中の一時的なバッファが含まれます。各コンポーネントは、全体的なメモリ消費に貢献します。

モデル変数 記憶の計算

主要素はモデルのパラメータのサイズです。これを推定するために、各パラメータのサイズでパラメータの数を乗算し、通常は32ビットの浮動小数点数の4バイトです。

例えば、100万パラメータのモデルでは、パラメータを格納するだけ、約400MBのメモリが必要になります。

追加のメモリの考慮事項

トレーニング中、グラデーションとオプティマイザの状態もメモリを消費します。 グラデーションは通常、パラメーターと同じサイズで、メモリ要件を倍増します。 オプティマイザの状態、運動量や適応学習速度変数など、さらにオーバーヘッドを追加できます。

活発化および中間計算のための一時的な緩衝はまた大きいバッチ サイズか複雑な建築と、特に総記憶使用に、貢献します。

トータルメモリ使用量を推定

メモリの合計フットプリントを推定するには、パラメータ、グラデーション、オプティマイザの状態、および一時バッファのメモリを要約します。特定のモデルアーキテクチャとトレーニング設定に基づいて計算を調整します。

  • モデルパラメーター
  • グラデーション
  • オプティマイザの状態
  • アクティベーションバッファ
  • 中間計算