ソニーのAI開発ツール「Neural Network Console」が最大64GPUも使えるようにした理由

このエントリーをはてなブックマークに追加

ここ最近、「AIを使う」「AIを作る」というハードルは低くなりつつある。要因のひとつにプログラミング不要でAIを開発できるツールの登場が挙げられる。ソニーネットワークコミュニケーションズ株式会社が提供している「Neural Network Console」もこのひとつであり、はじめてDeep Learning(ディープラーニング)に触れる人でも使えるように、プログラミング不要で、マウスによるドラッグ&ドロップのみでAIを開発できる。

そんなNeural Network Consoleのクラウド版は7月30日に、計算ノード数16台(64GPU)による分散学習に対応した。マルチノードによる分散学習に対応したことで、大規模なAI開発が可能になる。そこでLedge.ai編集部では、Neural Network Consoleにおける分散学習についてソニーネットワークコミュニケーションズの担当者に話を聞いた。

カイコの卵を見分ける「養蚕業」でも使われたNeural Network Console

Neural Network Consoleの最大の特徴はプログラミング不要でディープラーニングを実装できる点だ。そして、複雑な演算をするためにはGPUが必要となるのだが、Neural Network Consoleでは学習や評価に使ったぶんだけ利用料金が発生する仕組みなのも特徴的。

AI市場は急拡大しているものの、このAIを開発し使う人材は依然として不足している。そこで、ソニーネットワークコミュニケーションズはNeural Network Consoleを展開することで、さまざまな製品やソリューション、企業が抱える課題をAIで解決しやすくしたのだ。

Neural Network Consoleの活用の幅は広く、直径1.5mmにも満たないカイコの卵を、目視で正常なものとそうでないものとにひとつひとつ仕分ける「養蚕業」でもNeural Network Consoleが使われている。ディープラーニングの認識精度を高めるには大量のデータが必要と言われるが、養蚕業での事例ではおよそ100枚の画像で学習した。結果的に、分析精度も熟練作業者並みと、専用のAI画像認識ソフトに引けを取らない分析結果を出せたそうだ。

手軽にAIを開発し、さまざまな課題の解決の一翼を担うNeural Network Consoleは、7月のアップデートで「分散学習」に対応した。今後はこれまでの裾野を広げる立ち位置は変わらず、より大規模なAIの研究や開発にも使えるのである。

膨大な計算を可能にする分散学習環境をGUIツールで使える

Neural Network Consoleが新機能として実装するのは、マルチノードによる分散学習環境だ。実装されるのはNeural Network Consoleにおけるクラウド版である。

Neural Network Console クラウド版では、これまでひとつの学習処理あたりで利用できる計算ノードは1台までだった。今回、マルチノードによる分散学習環境が提供されることにより、計算ノードは1、4、8、16台から選べるようになる。使えるGPUは従来と変わらずNVIDIAの「TESLA V100」だ。

Neural Network Consoleにおける分散学習機能の実装には、昨今のAI開発が長時間化していることが背景にある。

ディープラーニング技術を使うことで画像認識や音声認識の性能が飛躍的に上昇している。しかし、認識精度を向上させるには、学習データのサイズやモデルのパラメータ数が増加し、計算時間も大きく伸びている課題があった。

そこで、Neural Network Console クラウド版では分散学習を新機能として取り入れることで、AI開発者が抱える「開発の長時間化」という課題の解決を目指す。

同期処理における課題 いかにしてデータ同期の時間を短縮したのか

Neural Network Consoleにおける分散学習では最大16台(64GPU)の利用が可能になる。最大16の計算ノードを利用できるため、演算処理が飛躍的に速くなるのはおわかりいただけるはずだ。

そもそも分散学習とは、1度の学習データ量を増やすことで、複数GPUでの学習とデータ同期を繰り返すことである。

だが、分散学習には越えなければならない問題もある。それは「同期処理」だ。

GPUを増やして処理をする分散学習では、使用するGPU数に比例して学習速度を高速化させるのが根本にある目的だ。しかし、分散して学習させるため、同期するデータ量も必然的に増えてくる。つまりは、データ同期に時間がかかり、速度が劣化してしまう課題が発生するのだ。そのため、分散学習においては、同期時間の削減が大きなカギとなっている。

では、Neural Network Consoleではこの同期処理の課題をどう乗り越えたのだろうか。

ソニーネットワークコミュニケーションズの担当者は、「これまでの分散学習の知見を活かし、マルチノードでの通信帯域を最大限利用できる『Ring型通信』をベースに最適化した」という。

同期処理は、GPU間通信と演算処理で構成されている。そこで、スパコンなどで利用される「MPI(Message Passing Interface)」という並列処理技術を利用したそうだ。MPIによる同期処理を実現するための手段は多数存在しているが、そのなかでもNeural Network ConsoleではRing型通信を採用したとのこと。Ring型通信を採用するにあたっては、“最大64GPUであること”と、“多種多様な学習に対して安定して性能が出せること”を考慮したうえでの選択だったという。


もともとソニーグループでは、分散学習には非常に力を入れていた。2018年11月には、ディープラーニングの分散学習において当時世界最高速の達成を発表している。これは、ソニーが開発したディープラーニングフレームワーク「Neural Network Libraries」と、国立研究開発法人 産業技術総合研究所が構築・運用するAI処理向け計算インフラストラクチャ「ABCI(AI Bridging Cloud Infrastructure/AI橋渡しクラウド)」によってもたらされたことだ。

このような、ソニーグループならではの知見を活かし、Neural Network Consoleでの分散学習における同期時間の削減につなげた。そのため、Neural Network Consoleでは、画像検知や予測などさまざまなディープラーニングによる開発が可能となってはいるが、効率よく分散学習できるようになったのだ。

分散学習は長期化するAI開発の現状を解決するためのもの

先にも書いたとおり、Neural Network Consoleにおいて分散学習を実装した背景には、昨今のAI開発が長期化しているという事情がある。

認識精度を向上させるために、学習データのサイズやモデルのパラメータ数が増加したことで、一度の学習に数週間から数ヵ月かかるケースも少なくない。また、ディープラーニングの開発ではさまざまな試行錯誤を繰り替えるため、学習時間を短縮させることは非常に重要だ。

これまでも、分散学習は研究機関などで使われていた機能だ。だが、GPU数を増やすことは非研究機関などでは難しく、AIが一般化しつつある昨今の状況とは乖離しつつある状況だった。

Neural Network Consoleでの分散学習の実装はある種革命的な話だ。手軽にAI開発が可能なGUIツールであるにもかかわらず、高度なAI開発がより一層進めやすくなったのである。

ソニーネットワークコミュニケーションズの担当者は「Neural Network Consoleでの分散学習は、“本格的なAI開発”をする人に向けた機能。だが、見据えているのは将来性で、今後さらにAIが社会に浸透していけば、分散学習という手法は誰もが利用できるほど一般化すると考えている」という。

Neural Network ConsoleはAI開発における初学者向けのツールだ。今後はさらに幅広いユーザーに使ってもらうことを想定しており、この将来性を見据えて分散学習を導入したのである。

これまで、学習時間で悩みを抱えていたユーザーは、Neural Network Consoleにおける分散学習機能を利用してみてほしい。