Sonyが画像認識ニューラルネットワークの学習を224秒で完了:2016年の提案時29時間かかっていたモデルを産総研のスーパーコンピュータABCIで高速化

課題

深層学習技術では、大規模なニューラルネットワークを大規模な学習データにより結合荷重などのパラメータを最適化して目的となる機能を実現します。しかし、大量のデータを用いが学習には時間がかかるため、複数のCPU(中央演算装置)、GPGPU(グラフィック用演算装置による汎用演算)やTPU(グーグルの開発したテンソル演算装置)などを利用してニューラルネットワーク内部の演算を並列化して高速化することがよく行われます。

さらに、ニューラルネットワークの学習における高速化を達成するため、GPUなどを搭載した複数の計算機ノードを高速の通信回線で結合したスーパーコンピュータにおいて、学習アルゴリズムの性質を利用した分散型の学習が研究され、応用が進んでいます。

分散学習における課題として、モデルのパラメータを修正するまとまりとなる「ミニバッチ」のデータ数と計算機ノード間の通信・演算速度の向上が挙げられます。

分散学習の成果としては、2017年11月、東京に本社をおくPreferred NetworkはImageNetデータセット(1,400万枚を超える画像に物体の名称のラベル(詳細には2万種類以上)が割り当てられている)をResNet-50(画像を1000クラスに分類するニューラルネットワークに学習させて、15分で学習を完了する成果を発表していました。このResNet-50とImageNetを用いたベンチマークは画像認識学習速度計測のための標準的な組み合わせとなっており、2018年7月、中国深圳に本拠を置くテンセント社のチームが6.6分という記録を達成していました。

2018年11月13日、Sonyは産業技術総合研究所(産総研)の人工知能向けスーパーコンピュータであるABCI(AI橋渡しクラウド)において、PFNと同じネットワークと学習データセットを利用して、224秒(3分44秒)で学習を完了させ、従来と遜色のない認識精度となる結果を公表しました。

解決方法

ニューラルネットワークを分散的に学習する場合、一枚の画像データに対する正しい出力を得るための結合荷重の修正量は各計算機ノード独立に計算することができ、この総和を取ることによってミニバッチ一回分の結合荷重の修正量とすることができます。このため並列化のために都合が良いものの、このミニバッチのデータサイズを大きくしすぎると学習性能が低下することが知られていました。また、以前の研究により、このミニバッチのデータサイズは学習の段階に応じて適切なサイズが増加することも明らかとなっていました(※1)。そこで、ミニバッチのサイズを適切に調整するアルゴリズムを導入します。

もう1つの問題は通信でした。産総研に設置されたABCIは、一台の計算機ノードあたりNVIDIA製 Tesla V100 アクセラレーター4基、およびインテル製Xeon Gold 6148プロセッサを2基、376 GBのメモリを搭載しており、このノード1088台をInfiniband EDRにより接続したスーパーコンピュータで人工知能の研究開発を想定した構成になっています。

Infiniband EDRにはトーラス結合と呼ばれる通信構造が採用されており、2次元トーラス構造(ドーナツ型)もその1つです。この二次元トーラスを活かしたアルゴリズムの開発がABCIでの人工知能高速化には重要でしたが、今回、SonyではNVIDIA Collective Communications Library (NCCL)とOpenMPI(並列計算の際のノード間通信のためのライブラリと環境)を用いて、2D-Torus all-reduceと呼ばれる演算と通信を組み合わせたアルゴリズムを新しく実装しました。

ニューラルネットワークを構築したライブラリはSonyが独自開発し公開しているNeural Network Library(NNL)で、今回の並列化プログラムと組み合わせました。

どうなったか

今回のSonyのシステムでは224秒(3分44秒)で学習を完了し、75.03%の精度という結果となりました。2017年11月のPreferred Networkが15分で74.9%の精度、2018年7月のテンセントが6.6分で75.8%の精度だったため数年で国際的な競争が進んだと言えます。

最短時間の結果を得た構成ではTesla V100を2176個用い、ミニバッチは34000データから68000データへ変化させています。

また、計算の精度を16ビット浮動小数点数(半精度)や32ビット浮動小数点数(単精度)に目的に応じて使い分けるなど、複数の工夫が盛り込まれています。

まとめ

ResNet-50が提案された2016年の段階で29時間かかっていた学習時間が、この成果により3分44秒で完了するまでに短縮されました。

今後はさらに複雑なネットワークや巨大なデータセット、機械翻訳など異なる領域でのスーパーコンピュータの活用が進むと考えられます。

産総研のスーパーコンピュータABCIは利用申請をして認められれば、利用料金を支払うことで使用することが可能です。

機械学習におけるネットワークの学習速度をあげることにより試行錯誤のサイクルを早く回すことができれば、様々なサービスのアイディアを試すことができるため、研究開発の量だけでなく質の向上にも貢献することが期待されます。

スーパーコンピュータのプログラミングは難易度の高い技術として知られていますが、今回の成果が様々な企業や研究グループに還元されれば、機械学習の領域にもスーパーコンピュータの利用が進み、あっと驚くような応用への道が開かれるかもしれません。

参考情報

ImageNetを224秒で学習し世界最速を達成!

SONY Breaks ResNet-50 Training Record with NVIDIA V100 Tensor Core GPUs [NVIDIA Developer News Center]

Akiba et al. Extremely Large Minibatch SGD: Training ResNet-50 on ImageNet in 15 Minutes, 2017 [arxiv]

Tencent ML Team Trains ImageNet In Record Four Minutes [mediam.com]

ABCI(AI橋渡しクラウド)公式HP

TOP500 list November 2018 [top500.org]

TOP500 2018年11月版発表 ABCIは5位から7位に [HPCwire Japan]

※1 バッチ学習は全てのデータを用いて勾配を計算(総和)し、一気にパラメータを修正するのに対して、確率的勾配降下法(SGD: Stochastic Gradient Decent)としての学習はデータの入力順をランダマイズした上で、データを1つ入れるたびに結合荷重を修正する。バッチ学習ではデータの順序は問題にならないが、確率的勾配法ではデータ順により結果が異なり、これは学習にある種のノイズを加えていることと等価になる。ミニバッチはその中間であり、全データをミニバッチに分割して、ミニバッチごとにパラメータの修正量を計算する。このためミニバッチのデータサイズが大きいとノイズの量が少なくなると考えられる。学習初期は局所最適を避けるためランダムなノイズが有用だったが、学習が進むにつれて、最適なパラメータ付近を探索するのに大きなノイズが邪魔になるため、ミニバッチのサイズを大きくして、ノイズを小さくして最適解に到達しやすくしていると考えることができる。

 

(森裕紀)