連載
» 2017年08月29日 17時00分 公開

鈴木淳也の「Windowsフロントライン」:「リアルタイムAI」にGoogleと異なる手法で挑むMicrosoft 「BrainWave」プロジェクトとは? (1/3)

AI時代では手元のデバイスより、クラウドの先にあるAIプラットフォームがますます重要になってくる。Googleと異なる手法でこれに取り組む、Microsoftの「BrainWave」プロジェクトとは何か。

[鈴木淳也(Junya Suzuki),ITmedia]

 コンピュータの世界は日進月歩だが、昨今は「AI(Artificial Intelligence)」と呼ばれる世界での進歩が目覚ましい。

 現在、SoC(System on a chip)やデバイスを提供するメーカーらは「インテリジェントエッジ」を標ぼうしてAI処理の一部を末端のデバイスに肩代わりさせることで、反応速度の向上やネットワーク負荷の軽減に向けた取り組みを行っており、注目の技術としてこの分野での話題が増えている。

 例えば、本連載でも取り上げたAIチップ搭載のコプロセッサ「HPU(Holographic Processing Unit) 2.0」を採用するMicrosoftの「HoloLens」次世代モデルがその典型だ。

 一方で、膨大なデータを処理するクラウド側の技術革新も急速に進んでおり、各社はAI時代に向けたデータセンターの準備を着々と進めている。今回紹介するMicrosoftの新プロジェクトである「Project BrainWave」もその1つだ。

BrainWave IntelのFPGA「Stratix 10」を搭載した「Project BrainWave」のボード

Googleとは異なるAIへのアプローチ

 Project BrainWaveについては、Microsoft Researchのブログで8月22日(米国時間)に紹介されている。もともとは同日に米カリフォルニア州クパチーノで開催された半導体業界の「Hot Chips」カンファレンスでの発表をベースとしており、ここではIntelの14nm製造プロセスを使った「(旧Alteraの)Stratix 10」というFPGA(Field Programmable Gate Array)によるBrainWaveのデモストレーションが披露されている。

BrainWave Intelの14nm製造プロセスを使ったFPGA「(旧Alteraの)Stratix 10」

 まずBrainWave登場の背景をみていこう。現在AIにおけるトレンドとして、機械学習(Machine Learning:ML)の手法の1つである「深層学習(Deep Learning)」に注目が集まっている。反復学習が中心となる一般的な機械学習と比較して、自動的にデータから特徴を抽出していくという点で精度や効率化の面でメリットがある手法だ。

 また、このようにして作成されたパターン認識を基に判断を行う仕組みは、人間の脳神経系になぞらえて「ニューラルネットワーク(Neural Network)」と呼ばれ、これがさらに多層化されて質問に対して的確な答えを導くよう構成された仕組みを「ディープニューラルネットワーク(Deep Neural Network:DNN)」と呼んでいる。

 例えば、与えられた人物画像からそれが誰かを判断する場合など、顔の特徴を要素分解して判断するDNNを介することで、コンピュータによる自動判断が可能になるわけだ。

BrainWave 昨今のAIにおけるトレンドとDNNの勃興

 一方で、このようなDNNの実現には、一般的な機械学習と比較して膨大な計算能力を必要とし、レスポンスや処理能力の面での課題がある。これは主に既存のCPUアーキテクチャやメモリアーキテクチャの制約によるもので、「リアルタイムAI」などと呼ばれる高速レスポンスの仕組みをクラウド上に構築するにあたっては、ハードウェアレベルでの改良が必要だと考えられている。

 HPU 2.0の紹介でも触れたが、この高速化には「GPGPU」と呼ばれるGPUの高速処理だけでは足りず、最近ではハードウェアレベルで最適な処理を行うための仕組みとしてASICを利用したり、あるいはGoogleの「TPU(Tensor Processing Unit)」のように自ら機械学習ライブラリ最適化のためのプロセッサを設計してしまうなどのアプローチも行われている。

 こうした過程でMicrosoftが示したのが、クラウド上のサーバにFPGAを組み込んでしまう手法だ。Googleが提供する「TensorFlow」というライブラリに最適化された専用プロセッサを「Hard DPU(DNN Processing Unit)」とするならば、MicrosoftのFPGAを使った手法は「Soft DPU」であると同社では説明している。

 パフォーマンス面では専用ハードウェアに劣るものの、さまざまな機械学習ライブラリに適用できる汎用(はんよう)性と、性能バランスや運用の経済性をもってそのメリットを享受できるという。

BrainWave 各社で異なるDNNへのハードウェアによるアプローチ

 Project BrainWaveは、「高性能な分散型システムアーキテクチャ」「FPGA上に展開されたハードウェアのDNNエンジン」「学習済みモデルの展開が容易なコンパイラとランタイム」の3つの要素から成り立っている。

 詳細は後述するが、Microsoftが過去数年にわたって研究開発を続けてきたFPGAを利用したデータセンター向け高性能システム「Project Catapult」をベースにBrainWaveは構築されており、「ハードウェアマイクロサービス(Hardware Microservice)」という形でDNNが利用できる。

 ハードウェアマイクロサービスとは、FPGAリソースがプールされた場所にDNNが展開された状態のものであり、その一連の処理にソフトウェアが介在することなく特定のサーバの指令でDNNが実行される。つまり、遅延や無駄なしに高速処理が可能だということだ。

 また、BrainWaveのSoft DPUでは「Microsoft Cognitive Toolkit(CNTK)」だけでなく、GoogleのTensorFlowまで将来的に複数の機械学習ライブラリに対応していく旨を表明している。これは、トレンドの移り変わりの激しい中で最新技術に対応するうえで、ハードウェアでガチガチに組まれた処理体系よりもソフトウェアで柔軟性を持たせた方が都合がいいとの判断で、Microsoftらしいアプローチと言える。

BrainWave Project BrainWaveではFPGAを高速接続してDNNの展開が容易なハードウェアマイクロサービスを構築する
BrainWave Project BrainWaveを構成する要素。一番下のFPGAのアーキテクチャのみ既存のProject Catapultを利用し、この上にSoft DPUの仕組みを構築している
BrainWave FPGA内のSoft DPUのアーキテクチャ。Cライクなプログラミングモデルを採用しており、FPGAで一般的なHDLやRTLの記述手法とは異なる

 またMicrosoftによれば、Soft DPUでは16ビットの浮動小数点(fp16)入出力をサポートしながら、内部では精度をそれほど落とさずに高速演算が可能なよう「fp9」や「fp8」のように最適化が行われているという。

BrainWave Soft DPUを使ったパフォーマンス比較。ピーク時のスループットをまとめたグラフとなる。これだけだと、どの程度のパフォーマンス効果があるのか分かりにくいが、この成果はいずれ一般にも理解しやすいようMicrosoftが紹介することになるだろう
       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう