機械学習におけるモデル並列をどう理解するか?大規模モデルを複数計算資源で扱うための考え方
機械学習モデルが大規模化するにつれて、単一の計算資源だけでは学習や推論を処理しきれない場面が増えてきます。特に深層学習では、層の数が増え、パラメータ数が増え、中間表現も巨大になりやすいため、一枚のGPUや一台の計算機にすべてを収める前提が成立しにくくなることがあります。このとき必要になるのが、計算を複数の資源へどう分散するかという考え方です。その代表的な方法のひとつがモデル並列です。
モデル並列は、単に「たくさんのGPUを使うこと」と同じではありません。何を分散するのか、どの単位で分割するのか、どの計算資源がどの部分を担当するのかという設計そのものを含んだ概念です。分散学習というと、多くの人はまずデータ並列を思い浮かべますが、モデルが大きくなりすぎると、そもそも一つの装置へ丸ごと載らないため、データ並列だけでは対応できないことがあります。そうした場面で、モデルそのものを分割して複数の装置へ配置する発想が重要になります。
EN
JP
KR