米グーグル(Google)がスーパーコンピュータに対応した深層学習(ディープラーニング)フレームワーク「Mesh TensorFlow」の開発を進めている。「スパコンを使うことで、パラメータの数が数十億個に達するような巨大な機械学習モデルの開発が可能になる」。開発メンバーであるノーム・シャイザー(Noam Shazeer)氏はそう説明する。

 Mesh TensorFlowの詳細は、2018年10月11日に米フェイスブック(Facebook)本社で開かれた深層学習の大規模勉強会「BayLearn 2018」のセッション「Deep Learning for Supercomputers」で発表された。Mesh TensorFlowは「TensorFlow 2.0」に含まれ、オープンソースソフトウエア(OSS)として公開される予定だ。

グーグルのノーム・シャイザー氏
[画像のクリックで拡大表示]

 Mesh TensorFlowは、数百以上のノードがメッシュネットワークによって相互接続しているスパコンをターゲットにしていることからMesh(メッシュ)の名が付いた。深層学習のトレーニング(訓練)を数百ノードで分散処理することによって訓練時間を数百分の1に短縮したり、1ノードのメモリーには乗り切らないような巨大な機械学習モデルのトレーニングを実現したりする。

Mesh TensorFlowを開発する動機
[画像のクリックで拡大表示]

 現在のTensorFlowもトレーニングの分散処理に対応している。しかし現在の分散処理の方式は「データ並列」と呼ぶものだ。それに対してMesh TensorFlowは「モデル並列」という分散処理方式を採用する。グーグルのシャイザー氏は「データ並列ではなく、モデル並列の使用で巨大な機械学習モデルのトレーニングが実現できる」とする。

ChainerMNはモデル並列に対応済み

 モデル並列については、分散学習に対応した深層学習フレームワーク「ChainerMN」が2017年9月にリリースした「バージョン1.0.0」で対応済みだ。ChainerMNを開発するPreferred Networks(PFN)の米国法人、PFN Americaの久保田 展行バイスプレジデントは「データ並列に比べてモデル並列は非常に難易度が高い」と指摘する。データ並列とモデル並列の違いはどこにあるのか。詳しく見ていこう。

 機械学習のトレーニングとは、「機械学習モデルのパラメータ(ニューラルネットワークの構造など)をランダムに決め、そのモデルがトレーニングデータを正しく予測できるか検証する」という作業を何度も何度も繰り返すことによって、最適なパラメータを探し出す作業である。

 トレーニングデータが100万個ある場合、パラメータを1度設定すると、検証作業は100万回実行する。別のパラメータを設定したら、また検証作業を100万回実行する。この繰り返しのため、膨大な計算能力が必要となる。

この先は有料会員の登録が必要です。今なら有料会員(月額プラン)が4月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら