Microsoftの研究チームは、リアルタイムAIの実現に向けたディープラーニングアクセラレーションプラットフォーム「Project Brainwave」(開発コード名)を発表。Intelの新FPGAを採用した。
Microsoftの研究チーム Microsoft Researchは2017年8月22日(米国時間)、米国カリフォルニア州クパチーノで開催されたカンファレンス「Hot Chips 2017」で、「リアルタイムAI(Artificial Intelligence:人工知能)」の実現に向けた新しいディープラーニングアクセラレーションプラットフォーム「Project Brainwave(開発コード名)」を発表した。
Project Brainwaveは、「リクエストを受け取ると直ちに処理し、レイテンシが極めて低いリアルタイムAIシステム」として設計されている。これによって、クラウド上で稼働するディープラーニングモデル構築のためのパフォーマンスと柔軟性を飛躍的に高められると同社は述べる。クラウドインフラが検索クエリ、動画、センサーストリーム、ユーザーとのやりとりなど、幅広いライブデータストリームを処理するようになりつつある背景から、急増するリアルタイムAIの需要に向けて開発したとしている。
Project Brainwaveシステムには、「高パフォーマンスの分散システムアーキテクチャ」「FPGA(Field-Programmable Gate Array)に統合されるハードウェアDNN(ディープニューラルネットワーク)エンジン」「訓練済みモデルをスムーズにデプロイできるコンパイラとランタイム」という3つの主要なレイヤーがある。マイクロソフトはそれぞれについて以下のように説明している。
Project Brainwaveは、Microsoftがここ数年デプロイしてきた大規模FPGAインフラを利用している。高パフォーマンスのFPGAをMicrosoftのデータセンターネットワークに直接接続することで、DNNの機能をハードウェアマイクロサービスとして提供できるようになった。これによってDNNは、リモートFPGAのプールにマッピングが可能になる。つまり、サーバからソフトウェアなしで呼び出すことが可能になる。
このシステムアーキテクチャでは、FPGAが処理を担うことから、CPUが受信リクエストを処理する必要がなく、レイテンシの大きな低減が期待できる。またFPGAが、「ネットワークからリクエストがストリーム送信されてくる速度」と同じ速度でリクエストを処理するので、非常に高いスループットを実現できる。
Project Brainwaveは、市販されるFPGAに統合できる、強力で“ソフトな”DNN処理ユニット(DPU)を採用した。ハードコード型DPUを構築するような他の企業とは異なるアプローチだ。このアプローチによって、幅広いデータ型にわたってスケーリングできる設計環境を提供し、また、望ましいデータ型の決定は統合時に行う仕組みを構築できる。具体的には、FPGA上のASIC(Application Specific Integrated Circuit:特定用途向け集積回路)用デジタル信号処理ブロックと統合可能なロジックを組み合わせて、最適な多数の機能ユニットを提供する。
このアプローチでは、FPGAが持つ柔軟性のメリットを2つの軸で活用している。
1つ目は、高度にカスタマイズされた狭い精度のデータ型を定義すること。このデータ型は、モデルの精度を損なわずにパフォーマンスを高めることができる。2つ目は、研究のイノベーションをハードウェアプラットフォームへ迅速に(通常、数週間程度で)取り入れられること。そのおかげで、ハードコード型DPUの多くに匹敵する、またはそれ以上のパフォーマンスを実現できるようになる。しかもそれは、2017年8月現在で保証しているサービスパフォーマンスの水準に既に達している。
Project Brainwaveは、開発者人気の高いさまざまなディープラーニングフレームワークに対応するソフトウェアスタックを統合できるように設計されている。Microsoftのディープラーニングフレームワーク「Microsoft Cognitive Toolkit」と、Googleのオープンソース機械学習ソフトウェアライブラリ「Tensorflow」は既にサポート済み。この他にも多数のソフトウェアスタックをサポートする計画がある。
グラフベースの中間表現も定義を済ませた。人気のフレームワークで訓練されたモデルをこの表現に変換した上で、高パフォーマンスのインフラにコンパイルできる。
Microsoftは、主要3レイヤーに関するこれらの説明に続いて、何よりこのProject Brainwaveは、幅広い複雑なモデルにわたって、バッチ処理なしで高いパフォーマンスを提供できるように設計してあると強調している。
DNNの高速化のために、畳み込みニューラルネットワーク(CNN)やバッチ処理を採用する例は多い。しかしCNNを使って高いパフォーマンスが発揮されるのは「モデルが単純な場合」であり、また、バッチ処理はリアルタイムAIの提供には効果的ではないと同社は説明している。
イベントでは、Intelの新FPGA「Stratix 10」を実装したProject Brainwaveシステムでデモが行われた。Stratix 10を実装したProject Brainwaveシステムは、大規模GRU(Gated Recurrent Unit)モデル(Resnet-50の5倍)をバッチ処理なしで実行できるパフォーマンスを実現するという。
デモは、さまざまなモデルで、精度が損なわれないMicrosoftのカスタム8ビット浮動小数点フォーマット「ms-fp8」が使われた。Stratix 10は、この大規模GRUで39.5TFLOPS(テラフロップス)を維持し、各リクエストは1ms未満で実行。10サイクル当たり1マクロ命令が発行され、Brainwaveアーキテクチャはサイクル当たり13万回のコンピュート演算を維持した。
Microsoftは今後、Project BrainwaveをMicrosoft Azureで提供することを計画。近いうちに、Project Brainwaveの強力なリアルタイムAIシステムの恩恵をユーザーが直接受けられるようにするという。
Copyright © ITmedia, Inc. All Rights Reserved.