モデル並列学習とは
モデル並列学習(Model Parallelism)とは、1つの巨大なモデルを複数のGPUに分割して配置し、協調して学習を行う分散学習の手法です。モデルのパラメータ数が単一GPUのメモリに収まらない場合に必須となる技術で、数百億〜数兆パラメータの大規模言語モデルの学習に不可欠です。
テンソル並列(Tensor Parallelism)
テンソル並列は、モデルの各層の重み行列を分割して複数のGPUに配置する手法です。例えば、行列積演算を行の方向や列の方向に分割し、各GPUが部分的な計算を担当します。Megatron-LMが提唱したこの手法は、特にTransformerのAttention層やMLPブロックの並列化に有効です。
データ並列との組み合わせ
実際の大規模学習では、モデル並列とデータ並列を組み合わせて使用します。例えば、8GPU のノード内でテンソル並列を適用し、ノード間ではデータ並列を適用するといった構成です。これにより、GPUメモリの制約を克服しつつ、学習速度も向上させられます。
通信コストへの対処
モデル並列ではフォワードパス・バックワードパスの各ステップでGPU間通信が発生するため、通信オーバーヘッドが大きくなります。NVLinkやNVSwitchなどの高速GPU間通信を活用し、通信量を最小化する分割戦略を設計することが重要です。