[論文レビュー] TensorFlow: A system for large-scale machine learning
TensorFlow は、可変状態、分散実行、および研究と実装用途の拡張性を備えた、大規模機械学習のためのデータフローグラフベースのシステムを提示します。
TensorFlow is a machine learning system that operates at large scale and in heterogeneous environments. TensorFlow uses dataflow graphs to represent computation, shared state, and the operations that mutate that state. It maps the nodes of a dataflow graph across many machines in a cluster, and within a machine across multiple computational devices, including multicore CPUs, general-purpose GPUs, and custom designed ASICs known as Tensor Processing Units (TPUs). This architecture gives flexibility to the application developer: whereas in previous "parameter server" designs the management of shared state is built into the system, TensorFlow enables developers to experiment with novel optimizations and training algorithms. TensorFlow supports a variety of applications, with particularly strong support for training and inference on deep neural networks. Several Google services use TensorFlow in production, we have released it as an open-source project, and it has become widely used for machine learning research. In this paper, we describe the TensorFlow dataflow model in contrast to existing systems, and demonstrate the compelling performance that TensorFlow achieves for several real-world applications.
研究の動機と目的
- 大規模なデータセットとモデルの訓練が可能な、スケーラブルなMLシステムの必要性を動機づける。
- 計算と可変状態を捉える統合データフローグラフモデルを導入する。
- CPU、GPU、TPUにまたがる分散実行とデバイス配置を実証する。
- 組み込みの微分、巨大モデルのサポート、フォールトトレランスを通じて研究向けの拡張性を示す。
提案手法
- 計算と可変状態を表す単一のデータフローグラフを定義する。
- グラフ内の状態と同時実行間の調整を可能にするために、変数とキューを使用する。
- デバイスごとのサブグラフとデバイス間の Send/Recv 通信を用いた分散実行を実装する。
- Switch と Merge による動的制御フローを提供し、非厳密評価をサポートする。
- 微分、最適化アルゴリズム、及び大規模な疎結合埋め込みのためのユーザーレベルの拡張性を許可する。
- グラフ内チェックポイント作成と柔軟な同期方式を通じてフォールトトレランスを組み込む。
実験結果
リサーチクエスチョン
- RQ1単一のデータフローグラフモデルは、訓練と推論を大規模に同時にサポートするにはどうすればよいか?
- RQ2異種アーキテクチャにまたがる効率的な分散訓練とデバイス配置を可能にする仕組みは何か?
- RQ3可変状態と調整を研究者が利用可能にして、新しい最適化手法とモデルアーキテクチャを可能にするにはどうすればよいか?
- RQ4訓練のスループットと頑健性を改善する戦略(例:同期更新と非同期更新、バックアップワーカー)は何か?
主な発見
- TensorFlow は大規模クラスター間でデータ並列訓練を可能にし、ステップ時間が大規模学習に適している(Subsection 6.3 に示される通り)。
- 本システムは非同期と同期のレプリカ調整の両方をサポートし、バックアップワーカーによりスループットが最大で15%向上する。
- 動的制御フローとグラフ内状態により、ランタイムを変更せずに新しいモデルと最適化アルゴリズムの柔軟な実験が可能になる。
- 計算をパラメータと同じ場所に配置することとシャードベースの戦略により、疎結合埋め込みと大規模モデルの扱いを促進する。
- チェックポイント作成とフォールトトレランスはグラフレベルで実装され、柔軟なポリシー選択と転移学習ワークフローを可能にする。
- データフローモデルはCPU、GPU、TPUを含むデバイス間および生産/モバイル推論を横断する移植性を提供する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。