株式会社富士通研究所は、スーパーコンピュータのソフトウェア並列化技術を応用し、複数のGPUを使ってDeep Learningの学習速度を高速化するソフトウェア技術を開発した。
近年Deep Learningと呼ばれるAI手法の研究が進み、画像認識や文字認識、音声認識においては、人間を超える認識率が達成されている。Deep Learningは従来技術と比べ大幅に認識の精度を向上させる技術だが、そのために大量のデータを何度も学習する必要がある。このため、CPUよりも、高速な演算に適しているGPUが広く利用されている。ただしDeep Learningでは大量のデータから学習する際に膨大な時間がかかるため、複数のGPUを並列に動作させるDeep Learningソフトウェアが開発されてきている。
1台のコンピュータでは搭載できるGPU数に上限があるため、多数のGPUを利用するには高速なネットワークで複数のコンピュータを相互接続し、データを共有しながら学習処理を進める必要がある。しかし、Deep Learningの並列処理では、共有が必要となる処理単位において、共有が必要なデータ量と演算時間にばらつきがあり、加えて前の演算結果を利用しながら順に演算をすることから、並列処理におけるデータ共有が複雑になる。そのため、コンピュータ間の通信時間が余分にかかり、コンピュータの台数を増やしても、高速化の効果が得にくいという課題があった。
今回、通信と演算を同時並列に実行するというスーパーコンピュータの技術に加え、Deep Learningの処理の順序と共有するデータサイズの特徴に合わせて処理方法を変える次の2つの技術が開発され、適用されることで、大小様々な共有データサイズが含まれる場合においても、処理と処理の間の待ち時間の増加を抑えて学習処理の高速化を実現したという。
- データ共有のスケジューリング技術
連続的に続く複数の演算で、次の学習処理の開始に必要となるデータが先にそれぞれのコンピュータで共有されるように転送の優先順序を自動的に制御。従来技術では、次の学習処理の最初に必要となる1層のデータ共有処理が最後に行われるため、データ共有処理による遅延が長くなっている。今回の開発技術では、2層目のデータ共有処理途中に1層目のデータ共有処理を行うことで、次の学習処理の開始までの待ち時間を短縮する動作を実現した。 - データサイズに応じた演算最適化処理技術
演算結果を全コンピュータで共有する処理において、元となるデータ量が少ない時は各コンピュータでデータを共有して同じ演算を実行し、結果を転送する時間を削減する。データ量が多い時は処理を分割し、他のコンピュータと算出した結果を共有して、後の演算で利用。データの量に応じて最適な演算方法を行うよう自動で振り分けることにより、全体の演算時間を最小にする。
今回開発された技術を、Deep Learningフレームワーク「Caffe」に実装し、GPUをそれぞれ搭載した64台のコンピュータを使用した「AlexNet」における学習時間を計測したところGPUを1台だけ使用した場合に比べ27倍の速度を達成した。同技術適用前と比較すると、GPU16台で46%、64台で71%の学習速度の向上を実現したという。(同社比)
同技術を利用することにより、ロボット・自動車などの自動制御や、医療・金融などの分野において病変分類や株価予測に独自のニューラルネットモデルを開発する場合など、Deep Learningの研究開発時間を短縮することができ、より高品質なモデルの開発が可能となる。
富士通研究所では、今回開発した技術を富士通株式会社のAI技術「Human Centric AI Zinrai(ジンライ)」の一つとして、2016年度中の実用化を目指す。また、学習速度のさらなる向上をめざし、技術の改善をおこなっていくという。
【関連リンク】
・富士通研究所(FUJITSU LABORATORIES)
・富士通(FUJITSU)
無料メルマガ会員に登録しませんか?

IoTに関する様々な情報を取材し、皆様にお届けいたします。