モデルのパラメータとそれのデータ量に応じた学習に必要なVRAMの量を教えてください。
質問モデルのパラメータとそれのデータ量に応じた学習に必要なVRAMの量を教えてください。
解答いいですね、ここは多くの人がつまずくポイントです。「パラメータ数とVRAM使用量の関係」を分解して整理します。1. 基本的な単位* パラメータ1個のサイズ* FP32(単精度浮動小数点): 4バイト* FP16 / bfloat16: 2バイト* INT8: 1バイト 2. VRAM消費の内訳学習時は次のものをGPUに保持します:1. モデルの重み(Parameters)* パラメータそのもの
2. 勾配(Gradients)* 重みに対する勾配。重みと同じサイズ
3. オプティマイザの補助データ* 例: Adam → 1次モーメント(m)、2次モーメント(v) → パラメータの2倍* SGDだと不要(小さく済む)
4. アクティベーション(Activations)* 順伝播時の中間出力。層が深い&バッチサイズが大きいと肥大化 3. 学習で必要なVRAMの目安(A) SGD を使う場合* 約 2倍(重み + 勾配 + 少しの補助) (B) Adam を使う場合* 約 4倍(重み + 勾配 + m + v) 4. 実際の数値例(FP32の場合)例1: 1億パラメータ(100M)* 重み: 100M × 4B = 400 MB * SGD: 約 800 MB + アクティベーション* Adam: 約 1.6 GB + アクティベーション 例2: 10億パラメータ(1B)* 重み: 4 GB * S…
