BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース YahooがTensorFlowOnSparkをオープンソースに

YahooがTensorFlowOnSparkをオープンソースに

原文(投稿日:2017/03/20)へのリンク

YahooがTensorFlowOnSparkをオープンソース化した。データサイエンティストやエンジニアは、SparkHadoopを動かしているCPU/GPUアーキテクチャ上で、分散トレーニングとモデル提供を行うことができる。彼らの報告によると、このライブラリを使うことで、既存のTensorFlowプログラムを新しいAPIにポーティングすることができ、トレーニングとモデル提供のパフォーマンスが改善されるという。

Yahooはその発表で、TensorFlowOnSparkを開発した動機について、ディープニューラルネットワークをトレーニングするためにSparkデータパイプラインの外部に追加のクラスターを管理することの運用オーバーヘッド、トレーニングクラスター内外のネットワークI/Oバウンドなデータセット転送、望ましくないシステムの複雑さ、全体的なエンドツーエンドの学習レイテンシなどを挙げた。TensorFlowOnSparkの取り組みは、それに先立ってYahooがはじめたCaffeOnSparkの取り組みと似ている。TensorFlowとSparkのインテグレーションという課題に対して、DataBricksのTensorFrameやAmp LabSparkNetといった取り組みがある。Yahooによると、これらは正しい方向に進んでいるが、TensorFlowプロセスが相互に直接コミュニケーションするには不十分だという。Yahooの目標のひとつは、Spark処理パイプライン内に統合できるという点で、SparkSQLMLib、その他コアSparkライブラリと同様に機能するよう、TensorFlowOnSparkを完全にSpark互換のAPIにすることだ。

このアーキテクチャでは、与えられたTensorFlowアルゴリズムとTensorFlowコアをSpark Executor内に配置し、TensorFlowのFile ReaderQueueRunner経由でHDFSデータに直接アクセスできるTensorFlowジョブを提供し、ネットワークI/Oの削減と「計算をデータにする」アプローチを実現している。TensorFlowOnSparkは、executorのポート予約/リスニングのためのセマンティックス、データおよび制御関数のメッセージポーリング、TensorFlowのメインファンクション起動、データ取り込み、HDFSから直接読み込むためのReaderとQueueRunnerの仕組み、feed_dictによるTensorFlowへのSpark RDDフィード、シャットダウンをサポートする。

TensorFlowOnSparkに加えて、Yahooは独自のforkでコアのTensorFlow C++エンジンを拡張しInfiniband上でRDMAを実現している。これはメインのTensorFlowプロジェクトで要求され、議論を生んでいる機能だ。YahooのAndy Feng氏は、gRPCベースのプロセス間通信上でRDMAを使うことで、様々なネットワークにおけるトレーニング速度が10から200%改善されたと述べている。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT