WebAssembly版のTensorFlow.jsが登場、Webブラウザでの推論処理を10倍以上高速に実行

2019年12月24日

Googleがオープンソースで公開している機械学習ライブラリTensorFlowの1つとして、Webブラウザ上で機械学習のモデルの構築、学習、学習済みモデルによる推論の実行などが可能になるJavaScriptライブラリ「TensorFlow.js」があります。

TensorFlow開発チームは、このTensorFlow.jsの内部で行われている処理をWebAssemblyで実装した「WebAssembly backend for TensorFlow.js」のアルファ版を発表しました。

WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で実行されるバイナリフォーマット。すでにChromeやFirefoxなど主要なWebブラウザでサポートされています。

ベンチマークを見ると、WebAssemblyによる実装の効果は劇的ともいえます。上記ツイートに含まれる画像は、学習済みモデルを用いた顔認識の推論処理にかかる時間を示したもの。

黄色いマーカーが示すJavaScriptの実行時間に対して、青いマーカーが示すWebAssembly版の実行時間はほとんどのケースで10分の1以下に収まっています。

赤いマーカーが示すWebGLを用いた推論処理と比較すると、モバイルデバイスではWebAssembly版の方が遅い結果にはなっていますが、PCやMacではWebAssembly版の方が高速になっています。それぞれの速度差はそれほど大きくなく、一方で必ずしもWebGLが使えるデバイスばかりではないことを考えると、幅広いデバイスで利用可能なWebAssembly版の高速な実行結果は大いに意味があるといえるでしょう。

GitHubのドキュメントに記されたFAQでも、WebAssembly版はJavaScript版と比べてすべてのデバイスでの実行においてあらゆるモデルで高速であり、しかもWebGL版と比較して安定した数値計算の実現と幅広いデバイスをサポートするため、あらゆる場面でWebAssembly版の実行を優先するべきだろうと説明しています。

現時点で開発チームは学習処理の実装よりも推論処理の高速化にフォーカスしているとのこと。Webブラウザでの推論処理が高速になっていくのであれば、今後はWebアプリケーションにおいても機械学習を用いた推論処理が広まっていくのかもしれません。

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




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本