Re Reference AI

技術

モデル並列(Model Parallelism)とは

Model Parallelism

モデル自体を複数デバイスに分割して配置し、単一デバイスのメモリに収まらない大規模モデルを学習・推論させる分散学習手法

並列計算学習

概要

モデル並列は、モデルのパラメータ自体を複数のGPUやデバイスに分割して配置する分散学習手法。データ並列がモデルの複製を各デバイスに配置しバッチを分割するのに対し、モデル並列はモデル自体を分割するため、1つのデバイスのメモリに収まらないほど大規模なモデルの学習・推論に用いられる。 分割方法には、層単位でモデルを縦に分割するパイプライン並列と、各層内の行列演算そのものを複数デバイスに分割するテンソル並列(層内並列)がある。テンソル並列はMegatron-LMで採用され、Transformer注意機構やMLP層の行列積を分割して複数GPUで並列計算する。 LLMの学習・推論では、モデル並列とデータ並列パイプライン並列を組み合わせたハイブリッドな並列化が標準的に用いられる。

利点

  • 単一デバイスのメモリに収まらない超大規模モデルを学習・推論できる
  • データ並列と組み合わせることでさらに大規模な分散学習が可能になる

欠点

  • デバイス間でモデルの中間出力をやり取りする通信が頻繁に発生し、通信オーバーヘッドが大きい
  • 実装がデータ並列より複雑で、モデルの構造に応じた分割設計が必要

関連用語

データ並列パイプライン並列分散学習GPUテンソル並列

よくある質問

データ並列との違いは何ですか?

データ並列はモデルの複製を各デバイスに配置しバッチを分割するのに対し、モデル並列はモデル自体を複数デバイスに分割して配置する点が異なる。両者は組み合わせて使われることも多い。

参考文献