Yahoo!がSpark/Hadoop環境で使える「TensorFlowOnSpark」をリリースComputer Weekly

Yahoo!の機械学習チームが、分散ディープラーニングに対応したTensorFlowである「TensorFlowOnSpark」を公開した。TensorFlowOnSparkが必要な背景を解説する。

» 2017年04月05日 10時00分 公開
[Adrian BridgwaterComputer Weekly]
Computer Weekly

 リー・ヤン氏、ジュン・シー氏、ボビー・チャーン氏、アンディ・フォン氏から成るYahoo!のBig ML(機械学習)チームは、「TensorFlowOnSpark」をコミュニティーに提供していることを認めた。TensorFlowOnSparkとは、分散ディープラーニング向けの最新オープンソースフレームワークだ。

Computer Weekly日本語版 4月5日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 4月5日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

 同チームによれば、大量のデータから洞察を得るには「分散」ディープラーニングを導入する必要があることが分かったという。だが、既存のディープラーニングフレームワークの多くは、ディープラーニング用に独立したクラスタを用意する必要がある。そのため機械学習パイプライン用に複数のプログラムを作成しなければならない。TensorFlowOnSparkという新しいリリースが必要になる理由がここにある。

 独立したクラスタを用意するには、クラスタ間で大量のデータセットを移動する必要がある。その結果、システムに不要な複雑性が持ち込まれ、エンドツーエンドのラーニングに遅延が発生する。

 「2016年、当チームはオープソースフレームワーク『CaffeOnSpark』を開発、公開することでスケールアウトの問題に対処した。このフレームワークは、『Spark』と『Hadoop』の同一のクラスタで分散ディープラーニングとビッグデータ処理を可能にする」とチームは話している。

 同チームによれば、CaffeOnSparkを使用してNSFW画像検出を強化し、ライブストリーミング動画からeSportsゲームの注目場面を自動識別できるという。

 コミュニティーからのフィードバックや改善提案により、CaffeOnSparkがアップグレードされ、LSTMサポート、新しいデータ層、トレーニングとテストインターリービング、Python API、Dockerコンテナでの導入などが実現されている。

 「Caffeユーザーには優れたアップグレードとなっている。だが、こうしたアップグレードは『TensorFlow』を使用するユーザーにも必要だ。そこで独自の戦略を立て、TensorFlowにもCaffeと同様の対策を講じた」とチームは語る。

 Googleは2016年4月に、分散ディープラーニング機能を導入して強化したTensorFlowをリリースした。2016年10月には、TensorFlowにHDFSサポートを導入した。だが、Googleクラウド以外を使用するユーザーは、依然としてTensorFlowアプリケーションに専用のクラスタが必要だった。TensorFlowは既存のビッグデータクラスタには導入できない。そのため、このテクノロジーを大規模利用する場合はコストと遅延が増大することになる。

 「この制限に対処するため、複数のプロジェクトがTensorFlowを複数のSparkクラスタで連携させた。この『SparkNet』は、Spark上で実行するプログラムでTensorFlowネットワークを起動できるようにする。Databricksは『TensorFrames』によって、TensorFlowでSparkのDataFrameを操作することを提案した。このようなアプローチは正しい方向への一歩だった。だが、コードの検証後、TensorFlowプロセスによる相互直接通信や分散ラーニングの非同期実装を実現できず、既存のTensorFlowプログラムの移行に多くの作業が必要になることが分かった」(同チーム)

 TensorFlowOnSparkは、SparkとHadoopのクラスタ上でTensorFlowを分散実行できるようにする。あらゆる種類のTensorFlowプログラムをサポートするため、トレーニングや推論を同期でも非同期でも実行できる。モデルの並列処理やデータの並列処理、Sparkクラスタ上のTensorBoardなどのTensorFlowツールもサポートする。

 同チームによれば、全てのTensorFlowプログラムは、TensorFlowOnSparkで機能するように簡単に変更できるという。通常、変更に必要なのは10行にも満たないPythonコードだけだ。Yahoo!の社内開発者はTensorFlowを使用しているが、その多くがTensorFlowプログラムを簡単に移行して、TensorFlowOnSparkで実行している。

別冊Computer Weekly ストレージパフォーマンス改善法(転載フリー版)も公開中!

ストレージのパフォーマンスが低下したと感じたら? 新しいビジネス要件が生じたときにパフォーマンス不足を感じたら? ストレージのパフォーマンス問題に取り組む企業に役立つ記事をまとめた。

※本PDFは、TechTargetジャパン会員でなくても無料でダウンロードできます。


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ