[論文レビュー] TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems
TensorFlow は、モバイル機器から大規模分散システムまで実行できる機械学習アルゴリズムを表現するためのインターフェースおよび実装であり、データフローグラフを用いて学習と推論をサポートします。 Apache 2.0 の下でオープンソースとして提供されています。
TensorFlow is an interface for expressing machine learning algorithms, and an implementation for executing such algorithms. A computation expressed using TensorFlow can be executed with little or no change on a wide variety of heterogeneous systems, ranging from mobile devices such as phones and tablets up to large-scale distributed systems of hundreds of machines and thousands of computational devices such as GPU cards. The system is flexible and can be used to express a wide variety of algorithms, including training and inference algorithms for deep neural network models, and it has been used for conducting research and for deploying machine learning systems into production across more than a dozen areas of computer science and other fields, including speech recognition, computer vision, robotics, information retrieval, natural language processing, geographic information extraction, and computational drug discovery. This paper describes the TensorFlow interface and an implementation of that interface that we have built at Google. The TensorFlow API and a reference implementation were released as an open-source package under the Apache 2.0 license in November, 2015 and are available at www.tensorflow.org.
研究の動機と目的
- モバイルからクラスターにまたがる ML モデルのデプロイを統合的に扱うシステムの必要性を動機づける。
- TensorFlow のプログラミングモデル、実装、およびシステムアーキテクチャを説明する。
- TensorFlow が多様なハードウェア上でのスケーラブルな訓練と推論をどのように実現するかを示す。
- パフォーマンスと柔軟性を向上させる拡張と最適化を実証する。
- 研究および実運用環境での実践的なデプロイと使用例を強調する。
提案手法
- 状態を持つノードと制御依存関係を備えたデータフロー型計算グラフモデルを導入する。
- 単一マシンと分散実行アーキテクチャを説明し、デバイス配置と Send/Receive ノードによるデバイス間通信を含む。
- 自動勾配計算と計算グラフへの組み込みを説明する。
- 部分実行、デバイス制約、制御フロー、入力操作、キュー、コンテナなどの拡張を提示する。
- 共通部分式の削除、メモリと通信を意識したスケジューリング、非同期カーネルなどの最適化を詳述する。
- 分散設定での耐障害性、チェックポイント作成、回復を論じる。
実験結果
リサーチクエスチョン
- RQ1単一のフレームワークで、異種のハードウェア上で多様な機械学習アルゴリズムをどのように表現・実行できるか?
- RQ2データフローグラフ表現はどのようにしてスケーラブルな分散訓練と推論を可能にするか?
- RQ3パフォーマンスとスケーラビリティを最大化するために、デバイス配置、デバイス間通信、およびメモリ管理はどのように扱うべきか?
- RQ4拡張機能(制御フロー、入力処理、キュー、コンテナ)はMLワークロードの使いやすさと効率をどのように向上させるか?
- RQ5大規模 ML システムに有効な最適化と耐障害メカニズムは何か?
主な発見
- TensorFlow はデータフローグラフを CPU、GPU、その他のデバイスにマッピングする柔軟なプログラミングモデルを提供し、研究実験と実運用のデプロイを可能にする。
- 本システムは、単一マシンおよび分散実行をサポートし、スケーラブルなノード配置、Send/Receiveノードによるデバイス間通信、変数の耐障害性チェックポイント作成を提供する。
- 自動勾配計算がグラフに組み込まれており、勾配降下法などの一般的な ML 最適化手法を可能にする。
- 部分実行、制御フロー、入力パイプライン、キュー、コンテナなどのさまざまな拡張は、ML ワークロードの使いやすさとパフォーマンスを向上させる。
- 最適化には共通部分式の除去、メモリと通信のオーバーヘッドを削減する ASAP/ALAP スケジューリング、非同期カーネルサポートが含まれる。
- TensorFlow は 2015年11月に Apache 2.0 の下でオープンソース化され、多数のドメインで研究と生産に使用されており、数百の機械で数百億のパラメータを持つ大規模ディープネットにも適用されている。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。