メディア

ディープラーニングを大幅短時間化「MN-1」って何?5分で分かる最新キーワード解説(2/5 ページ)

» 2018年01月24日 10時00分 公開
[土肥正弘ドキュメント工房]

「ChainerMN」は何が他のフレームワークと違うのか?

 PFNが開発、提供しているChainerは、Pythonベースのディープラーニング向けオープンソースフレームワークであり、上記の他フレームワークと並び、複雑なニューラルネットワーク設計を行うフレームワークとして世界的に利用されているものだ。

 Chainerでは、TensorFlowなどが使う「Define and Run」と呼ばれる、ネットワークを作ってから学習する手法ではない。データを順方向に流して初めてネットワークができ、その逆向きの方向で「誤差逆伝搬」と呼ばれる計算を自動で行ってパラメータを更新して学習する「Define by Run」と呼ばれる方法をとる。この方法は「コードの最適化が難しい」といわれるものの、データごとにニューラルネットを作る用途では柔軟性が高いのがメリットになるとされている。

 このChainerの技術を利用して、現在入手できるGPUクラスタをうまく利用するために拡張したのが「ChainerMN」であり、ChainerMNを大規模に実行するために構築されたのが「MN-1」だ。ChainerMNの処理は図4のようなイメージである。

 「All-Reduce」処理により、各GPUを流れてきたデータが、一度集計されてその結果がそれぞれの流れに配られる仕組みをとる。All-Reduceには、NVIDIAのマルチGPU集合通信ライブラリであるNCCL(NVIDIA Collective Collection Library)を利用し、NCCLと相性がよい高速物理インタフェースであるInfiniBandが選ばれた。

「Chainer MN」の分散学習の流れ 図4 「Chainer MN」の分散学習の流れ(出典:PFN)

 つまり「Chainer」が持つ柔軟性に加え、大規模なGPU分散処理環境に適合する高速通信インタフェースと、分散学習を効率的に実現する仕組みを組み合わせたことで、大幅な学習の時間短縮ができたというわけだ。

Copyright © ITmedia, Inc. All Rights Reserved.

会員登録(無料)

製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。