TensorFlow 0.8 – 分散コンピューティング・サポート (翻訳/要約)
翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 04/14/2016
* TensorFlow が 0.8 リリースでついに分散コンピューティングをサポートしました。
* 本ページは Google Research Blog の4月13日の投稿を参考のため翻訳/要約したものです:
Announcing TensorFlow 0.8 – now with distributed computing support!
Google はその製品の広い範囲に渡り機械学習を使用しています。モデルを継続的に改良するためには、訓練プロセスができる限り速いことが重要です。これを行なう一つの方法は数百台のマシンに渡って TensorFlow を実行することで、これは幾つかのモデルのための訓練プロセスを数週間から数時間に短くし、そして増大するサイズと複雑さを持つモデルでの実験を可能にします。TensorFlow をオープンソース・プロジェクトとしてリリースしてからずっと、分散訓練サポートが最もリクエストを受けた特徴の一つです。もう待つ必要はありません。
今日、分散コンピューティング・サポートを持つ TensorFlow 0.8 を興奮とともにリリース致しました。これはあなた自身のインフラ上の分散モデルを訓練するに必要な全てを含んでいます。分散 TensorFlow は高性能な gRPC ライブラリにより強化されており、これは数百台のマシン上で並列に訓練することをサポートします。これは Google Cloud Machine Learning の最近のアナウンスを補完するもので、これは Google Cloud Platform のパワーを使用して TensorFlow モデルを訓練してサービスを提供することを可能にします。
TensorFlow 0.8 リリースに合わせて、TensorFlow モデル・レポジトリに Inception 画像分類 (image classification)・ニューラルネットワークを公開しました。分散トレーナーを使って、Inception ネットワークを 100 GPU を使用して 65 時間未満で 78% の精度まで訓練しました。小さなクラスタ — あるいは机の上の2台のマシン — さえも分散 TensorFlow から利益を得られます、何故なら更なる GPU の追加は全体のスループットを改善し、正確な結果をより速く生成するからです。
分散トレーナーはまた Kubernetes のようなクラスタ管理システムを使用して訓練をスケールアウトすることをも可能にします。更に、モデルをひとたび訓練したら、製品用にデプロイして Kubernetes 上の TensorFlow Serving を使用して推論を高速化 できます。
分散 Inception を超えて、0.8 リリースはあなた自身の分散モデルを定義するための 新しいライブラリ を含みます。TensorFlow の分散アーキテクチャはモデル定義において多くの柔軟性を与えます、何故ならクラスタの全てのプロセスは汎用計算 (general-purpose computation) を遂行できるからです。私たちの以前のシステム DistBelief は(追随する多くのシステムのように)共有モデルパラメータを管理するために特別な「パラメータ・サーバ」を使用していました。そこではパラメータ・サーバは共有パラーメータを取得し更新するために単純な read/write インターフェイスを持ちます。TensorFlow では、全ての計算 — パラメータ管理を含む — はデータフロー・グラフで表されます、そしてシステムは利用可能なプロセス群においてグラフを(マルチコア CPU、汎用 GPU、そしてモバイル・プロセッサのような)異種デバイス上にマップします。TensorFlow をより簡単に使用するために、(単一プロセス上で実行されて訓練のために複数レプリカを使用するためにスケールされる)モデルを簡単に書けるようにする Python ライブラリを含めました。
このアーキテクチャは単一プロセス・ジョブをクラスタを使用するためにスケールして、そしてまた分散訓練のための新しいアーキテクチャによって実験することを簡単にします。その例として、TensorFlow で実装された、synchronous SGD with backup workers が画像モデル訓練のために改善された時間-to-精度 (time-to-accuracy) を達成することを、私の同僚は最近示しました。
TensorFlow の分散コンピューティング・サポートの現行バージョンは単なるスタートに過ぎません。私たちは分散訓練のパフォーマンスを改良する方法を研究し続けていきます — 技術とアルゴリズム的な改善の両者を通じて — そしてこれらの改良を GutHub 上 でコミュニティと共有します。
(謝辞省略)
以上