HTML5 Webook
118/194

ように書き換えると高速に学習できるかは、対象のニューラルネットや計算機環境、各種の設定によって異なる。そのため、たとえ高度な知識を持つ専門家であっても、最終的に効率的な計算を行える分割や割り当てを決定するまでには、多くの試行錯誤が必要となる。また、Megatron-LM等の著名な既存ソフトウェアは、GPT-3やBERT など、Transformer [6]と呼ばれる特定のニューラルネットの種類にしか適用できないという制限がある。著者らが開発した自動並列化深層学習ミドルウェアRaNNC (Rapid Neural Network Connector)は、ニューラルネットの分割や、GPUへの計算の割り当てをほぼ自動化することで、大規模ニューラルネットの学習を劇的に簡単化するものである。RaNNCは、深層学習ソフトウェアのデファクトスタンダードであるPyTorch [7]を用いて記述されたニューラルネット定義を受け取り、そこに定義された計算の種類、GPUの処理速度、利用可能なメモリ量などを考慮して、自動的に試行錯誤を繰り返しながら、学習パラメータや計算処理を分割し、複数のGPUへの割り当てを決定する。また、上述の既存ソフトウェアと異なり、適用できるニューラルネットの種類に、基本的に制限がない。本章では、RaNNC開発の背景となった、大規模ニューラルネット学習の課題について概観した後、RaNNCの特徴や内部の機構について説明する。また、学習できるニューラルネットの規模や計算速度について、既存ソフトウェアとの比較実験の結果を示す。大規模ニューラルネット学習の課題前述のように、大規模ニューラルネットの学習には膨大な計算が必要となるため、多数のGPUを使った並列処理が行われる。こうした並列化には、一般的にデータ並列とモデル並列の2種類がある(図1)。PyTorchを含む多くの深層学習ソフトウェアは、学習データを分割して、複数のGPUに割り当てるデータ並列のみをサポートしている。データ並列では、各々のGPUのメモリに、ニューラルネットの学習パラメータ全体をコピーし、それぞれのGPUでは異なる入力(訓練例)を与えて計算したあと、その結果を集約する。データ並列の利点は、ニューラルネットの種類を問わずに適用可能であることである。一方で、極めて多くの学習パラメータを持つニューラルネットは、全ての学習パラメータが1台のGPUのメモリに格納できないため、学習できない。モデル並列では、ニューラルネットを分割し、分割で得られたより小さなニューラルネット(部分ニューラルネットと呼ぶ)を各々のGPUに割り当てる。各GPUは、分割された部分ニューラルネットに関係する学習パラメータのみをメモリに記憶すれば良いため、学習パラメータの多い巨大ニューラルネットの学習も可能になる。その反面、モデル並列では、ニューラルネットの構造や、計算機の特性を考慮して、個別にチューニングが必要となる。具体的には、モデル並列のために決定するべき要素として、以下が挙げられる。(S1)ニューラルネットをどのように複数の部分ニューラルネットに分割するか(S2)得られた部分ニューラルネットを、何台のGPUにコピーするか(データ並列の併用)(S3)各部分ニューラルネット(コピーを含む)をどのGPUに配置するかこれらの決定は相互に依存しており、一見すると各GPUの分担が不均等で、低い処理速度しか得られなさ2データ並列モデル並列(数値計算の流れと学習パラメータを定義)学習データメリット:ニューラルネットの構造を問わず適用可能デメリット:非常に学習パラメータが多い場合、GPUのメモリに収まらず適用不可能メリット:非常に学習パラメータの多いニューラルネットにも適用可能デメリット:ニューラルネットの構造や実行環境に応じて最適な分割を決定する必要各GPUにニューラルネット全体をコピーニューラルネットを分割し、各GPUには一部のみ配置学習データGPUGPUGPUGPUGPUGPUGPUGPUニューラルネット図1 深層学習の並列化方式112   情報通信研究機構研究報告 Vol.68 No.2 (2022)3 社会知コミュニケーション技術

元のページ  ../index.html#118

このブックを見る