連載
» 2017年09月26日 05時00分 公開

「The Next Platform」で読むグローバルITトレンド(13):ディープラーニングと機械学習の技術要件 (3/3)

[Rob Farber, The Next Platform]
前のページへ 1|2|3       

低精度演算と特別なハードウェアの関係

 ベンダーは、ANNの精度を落とすアプローチにも取り組んでいる。半精度(FP16など)演算により、ハードウェアのメモリや計算システムのパフォーマンスを倍増させることができるからだ。同様に、8ビット演算を使用すればパフォーマンスが4倍に向上する。

 だが、残念ながら、低精度の浮動小数点演算性能に基づいて購入決定を行うのは悪いアイデアだ。なぜなら、モデリング時間の短縮に必ずしも直結しないからだ。その理由は、数値最適化を行うには、訓練プロセスが最適解に収束するまで候補パラメータセットを使った演算を繰り返さなければならないことにある。

 キーワードは収束だ。低精度演算は収束を遅らせる。そのために最適解の発見に必要な訓練の繰り返し回数が増えて、低精度演算の導入によるスピードアップが帳消しになることがある。しかも、低精度演算で得られたローカルミニマム(局所最小値)と呼ばれる誤った局所解にとらわれ、訓練プロセスによる最適解の発見に失敗してしまうこともある。

 訓練されるANNの種類についても考えてみよう。例えば、テンソル演算を低精度で実行する専用ハードウェアは、畳み込みニューラルネットワーク(CNN)など、非常に特定の種類の少数のニューラルアーキテクチャにしか恩恵をもたらさない。自分のプロジェクトでこうした特定の種類のニューラルアーキテクチャを使用する必要があるかどうかを理解することが重要だ。

 一般的に、訓練では低精度演算は使用しない方が得策だ(※2)。この演算はメリットよりもデメリットの方が大きくなりがちだからだ。ただし、低精度演算は多くの(全てではない)推論タスクに有効だ。

※2. 現在の研究は、行列が良条件である場合に低精度演算が有効であることを示している。一般的に、ANNは良条件ではない。

モデリング時間を大幅に短縮する勾配計算のカギは、メモリの容量と帯域幅

 L-BFGSや共役勾配法など、最も効果的な最適化アルゴリズムの多くにおいては、ANNのパラメータの勾配を計算する関数を、目的関数に関して評価する必要がある。

 勾配を使用すると、アルゴリズムが高速化しモデリング時間を大幅に、あるいは桁違いに短縮することや、勾配を使用しない方法よりも精度の高い最適解を得ることが可能になる。「Theano」のような人気のソフトウェアパッケージは、自動微分を利用して勾配をシンボリックに計算できるので、ネイティブコードを生成でき、そのために非常に簡単に勾配関数が得られる。

 問題は、ANNモデルのパラメータが増えると、勾配のサイズが急速に非常に大きくなることだ。これは、メモリの容量と帯域幅の制約(とキャッシュ性能、および可能性としては原子命令の性能)が、勾配計算の実行時間を左右することを意味する(※3)。

※3. チャンク計算は、GPUなどメモリが限られたデバイスに合わせて勾配計算を行うのに役立つ。だが、そうすることでPCIeバスなどにより、デバイス間帯域幅の制約を受けることになる。これは、アクセラレーテッドコンピューティングのボトルネックになることがよく知られている。

 ハードウェアの命令メモリの容量が、勾配計算の実行に必要な全ての機械命令を保持するのに十分なサイズかを確認しておくことが重要だ。そこそこの規模のANNモデルでも、勾配計算のためのコードは極めて大きなサイズになる。

 いずれにせよ、勾配計算には仮想メモリが使われ始めたころの格言が当てはまる。それは「実パフォーマンスを決めるのは実メモリ」というものだ。

 勾配計算はメモリに依存しているので、スタックドメモリを使用するハードウェアを探し、ベンチマークを比較するとよい。スタックドメモリは、大容量メモリを搭載するハイエンドのデバイスやシステムに採用されている。高パフォーマンスのハードウェアを選択できれば見返りは大きい。

近い将来、製品では何が期待できるか

 最近の製品発表は、業界がプロセッサとアクセラレータの双方に対し、高速なメモリを提供する必要性を認識していることを示している。一方、カスタムハードウェアの発表(具体的には、GoogleとIntel Nervana)は、カスタムソリューションが一部のANNについては、CPUとGPUいずれのパフォーマンスをも超える可能性があるという認識を高めている。

 一部のIntelプロセッサ製品ではカスタムソリューション(ASICとFPGA)を利用できるように、オンパッケージのプロセッサインタフェースが提供される。これらのインタフェースにより、Intelプロセッサと密接に統合されたカスタムデバイスのパフォーマンス能力が提供されるとともに、Intelプロセッサはカスタムデバイスを市場に届けるためのフロントエンドプロセッサとしての役割を果たす(※4)。

※4. Googleは、カスタムASICハードウェアをGoogle Cloudでのみ提供すると発表している。Nervanaプロセッサの統合に関するIntelの発表は、こちらから参照できる。

 だが、こうした中で、われわれは現時点でパフォーマンスに関して、次のような推測が成り立つと考えている。まず、特別なハードウェアを使用しなくても、Intelの強化されたx86ベクトル命令である「AVX-512」の搭載(とメモリチャネルの拡張)により、Intel Skylakeプロセッサでは並列処理を利用するためにデータセットサイズを拡大することなく、コア当たりの訓練と推論両方のパフォーマンスが2倍以上に向上すると予想される(使用するコアを増やせば、パフォーマンスはさらに向上するだろう)。

 また、Intel Xeon PhiとIntel Xeon(Skylake)が提供するオンパッケージの「Intel Omni-Path」インタフェースは、システムコストとネットワークレイテンシを低減するとともに、ネットワーク帯域を拡大するだろう。これはネットワークを介して、あるいはクラウド内で訓練を行う(または大量の推論を行う)必要がある人々にとって朗報だ。われわれはこれらの点を全て実地に検証したいと考えている。

まとめ

 新しいハードウェアプラットフォームを評価する際は、以下を考慮する。

  • 多くのデータサイエンティストは、特別な推論ハードウェアを必要としていない
  • 計算がメモリやキャッシュの帯域性能に左右される場合、浮動小数点演算の(ピークではなく)実効性能はどのようなものか
  • 自分のデータセットで訓練を行うのにどの程度の並列処理が必要か(例えば、メニーコアによる並列処理か、超並列処理か)
  • 不要であるにもかかわらず、特別なハードウェアに費用をかけようとしていないか
  • 現在のところ、低精度のデータ型を使用する最適化は、ニッチなアプローチにとどまっている。こうした最適化は活発な研究分野だが、訓練の主流にならないままかもしれない

出典:Technology Requirements for Deep and Machine Learning(The Next Platform)

筆者  Rob Farber

Consultant and company co-founder in HPC


前のページへ 1|2|3       

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。