Google がディープラーニング ライブラリ TensorFlow Fold をリリース、動的計算グラフをサポート

Google がディープラーニング ライブラリ TensorFlow Fold をリリース、動的計算グラフをサポート

ほとんどの機械学習プロセスでは、トレーニングと推論に使用するデータを前処理する必要があります。前処理により、さまざまな入力データ (画像など) が同じサイズに正規化され、バッチで保存されます。このステップにより、TensorFlow などの高性能ディープラーニング ライブラリは、バッチ内のすべての入力を並列に同じ計算グラフで処理できるようになります。バッチ処理では、最新の GPU とマルチコア CPU の SIMD (Single Instruction Multiple Data) パフォーマンスを使用して、計算実行を高速化します。しかし、自然言語理解における解析ツリー、ソースコード内の抽象構文ツリー、Web ページのドキュメントツリー (DOM ツリー) など、入力データのサイズや構造が変化すると、多くの問題が発生します。このような場合、異なる入力データには異なる計算グラフが必要となり、通常はそれらをまとめてバッチ処理することができないため、プロセッサ、メモリ、およびキャッシュの使用率が低下します。

[[182852]]

本日、これらの困難に対処するために TensorFlow Fold をリリースします。 TensorFlow Fold を使用すると、さまざまなサイズや構造のデータを処理するディープラーニング モデルの実装が容易になります。さらに、TensorFlow Fold はこれらのモデルにバッチ処理の利点をもたらし、CPU では 10 倍以上、GPU では 100 倍以上高速に実行します (他の実装と比較して)。この改善は動的バッチ処理技術によるもので、詳細は私たちの論文 (動的計算グラフを使用したディープラーニング) で説明されています。

上記のアニメーションは、動的バッチ処理で実行されるリカレント ニューラル ネットワークを示しています。同じ色の操作はグループ化され、TensorFlow でより高速に実行できるようになります。 Embed 操作は単語をベクトル表現に変換します。完全接続 (FC) 操作は、単語ベクトルを結合して段落ベクトル表現を形成します。ネットワークの出力は完全な文のベクトル表現です。上の図は文の解析ツリーのみを示していますが、このネットワークは任意の形状とサイズのさまざまな解析ツリーに対してバッチ操作を実行し、実装することもできます。

TensorFlow Fold ライブラリは、まず入力ごとに個別の計算グラフを作成します。

個々の入力のサイズや構造は異なる場合があり、計算グラフも異なる可能性があります。動的バッチ処理では、これらのグラフを自動的に結合して、入力内および入力間でのバッチ処理の機会を活用し、バッチ処理された操作間でデータを移動するための追加の命令を挿入します。 (技術的な詳細については論文を参照してください)

さらに詳しく知りたい場合は、github アドレス (https://github.com/tensorflow/fold) もご覧ください。 TensorFlow Fold が、研究者や実務者が TensorFlow で動的に計算されたニューラル ネットワークを展開するのに役立つことを願っています。

論文: 動的計算グラフによるディープラーニング

概要: グラフ構造を計算するニューラル ネットワークは、自然言語処理 (構文解析ツリー) や化学情報科学 (分子グラフ) など、多くの分野の問題を解決するための自然なアプローチです。ただし、各入力の計算グラフは形状とサイズが異なるため、通常、ネットワークを直接バッチトレーニングまたは推論することはできません。また、これらのライブラリは静的なデータフローグラフに基づいているため、一般的なディープラーニングライブラリにデプロイすることも困難です。異なる入力グラフ(異なる形状)間の操作をバッチ処理できるだけでなく、単一の入力グラフ内の異なるノード間の操作もバッチ処理できる、動的バッチ処理と呼ばれる手法を紹介します。このテクノロジーにより、静的グラフを作成したり、一般的なライブラリを使用したり、任意の形状やサイズの動的な計算グラフをシミュレートしたりできるようになります。さらに、動的グラフ モデルの作成プロセスを簡素化するビルディング ブロックの高レベル ライブラリも紹介します。このライブラリを使用して、文献に記載されているさまざまなモデルの簡潔で合理的なバッチ並列実装を示します。

元記事: https://research.googleblog.com/2017/02/announcing-tensorflow-fold-deep.html

[この記事は、51CTOコラムニストのMachine Heart、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  複数の負荷分散アルゴリズムとそのJavaコード実装

>>:  Spark を使用して行列分解推奨アルゴリズムを学習する

ブログ    

推薦する

説明可能なAI: 4つの主要産業

[[267801]] AI システムがどのように意思決定を行うかを人々が理解できるようにする説明可能...

AIはHRにどのように役立つのでしょうか?

全国的に人材不足が進む中、テクノロジーは雇用者が厳しい市場で最高の人材を見つけるのに役立ちますが、人...

...

AIの第一人者ジェフ・ディーン氏がGoogleのAI事業を統括

Googleの人工知能事業のトップレベルで人事異動があった。19年間Googleに在籍してきた人工知...

2024年のAIソフトウェアテストの主なトレンド

AI ソフトウェア テストの分野では、将来的に複数の開発トレンドに直面する可能性があり、そのいくつか...

ロボットアームをAIボーイフレンドに変えた女性プログラマーは何を考えているのか?

AIを搭載した「セックスロボット」については多くの議論がなされている。しかし、多くの人々、特に女性...

企業はどのように AI を活用してビジネスの成長を促進できるのでしょうか?

人工知能 (AI) の導入によって得られる潜在的な利益を考えると、企業は傍観者でいるわけにはいきませ...

人工知能は倫理的なジレンマに直面しており、将来の発展には法の支配が必要である

科学技術倫理とは、科学技術活動において遵守すべき価値観や行動規範であり、科学技術の発展にとって極めて...

AIベースのクラウド管理ツールではコンテキストが重要

AI を活用したクラウド管理ツールはまだ導入の初期段階にありますが、IT 業界の専門家は、このような...

...

マスク氏は、将来は人間よりもロボットの数が多くなると述べ、テスラは自動運転技術を共有する用意があると述べた。

7月6日、本日開幕した世界人工知能会議で、マスク氏は会議に直接出席しなかったものの、インターネット...

AIの奇妙な使い方:マクドナルドはゴミ箱の監視にAIを活用

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...