BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 大規模ディープラーニングモデルの迅速なトレーニングのためにGoogleがオープンソースとして提供するGPipeライブラリ

大規模ディープラーニングモデルの迅速なトレーニングのためにGoogleがオープンソースとして提供するGPipeライブラリ

原文(投稿日:2019/04/16)へのリンク

Google AIは、大規模なディープラーニングモデルのトレーニングを迅速化するためのTensorFlowライブラリであるGPipeをオープンソース化している

ディープニューラルネットワーク(DNN)は、自然言語処理や視覚オブジェクト検出など、多くのAIタスクを解決するための最適なツールである。視覚オブジェクト検出の新しい方式はImageNetチャレンジの勝者に対してしばしばベンチマークされる。毎年の優勝エントリーは、前回よりも優れている。ただし、それに応じてモデルの複雑さも増している。2014年の受賞者であるGoogLeNetは、400万のモデルパラメータで74.8%のトップ1の精度を達成した。2017年の勝者であるSqueeze-and-Excitation Networksは、1億4,580万個のパラメータで82.7%のトップ1の精度を達成した。

モデルサイズの増加は、ネットワークをトレーニングするときに問題を引き起こす。妥当な時間内にネットワークをトレーニングするために、多くの計算はアクセラレータ、GPUやTPUなどの専用ハードウェアに委譲される。しかし、これらのデバイスはメモリが限られているため、訓練できるモデルのサイズが制限される。アクセラレータのメモリ内のデータをスワップアウトするなど、メモリに対する要求を減らす方法があるが、これらはトレーニングを遅くする可能性がある。別の解決策は、複数のアクセラレータを並行して使用できるようにモデルを分割することである。シーケンシャルDNNで最も明らかになっているパーティションスキームは、モデルをレイヤで分割し、各レイヤに異なるアクセラレータによってトレーニングさせることである。しかし、複数の層をトレーニングするという連続的な性質により、1つのアクセラレータしか動作せず、他のアクセラレータは上位または下位から結果が来るのを待ってアイドル状態になる可能性がある。

GPipeは、トレーニングバッチを「マイクロバッチ」に分割し、それらをレイヤーを介してパイプライン処理することでこの問題を解決している。連続するレイヤのためにアクセラレータは、全バッチが終了するのを待たずに、前の層からのマイクロバッチ結果の処理を開始することができる。

GPipeと8つのTPUv2を使用して、グーグルの研究者たちは18億のパラメータで視覚オブジェクト検出モデルを訓練することができた。それは単一のTPUv2で訓練できたパラメータの5.6倍となる。これらの大規模モデルをトレーニングした結果、ImageNet検証データで84.7%のトップ1の精度が得られ、2017年の勝者のスコアを上回った。

より大きなモデルをサポートすることに加えて、GPipeのモデル分割は、単により多くのアクセラレータを並列に実行することによって、与えられたモデルのより速いトレーニングを可能にする。研究者らは、「4倍のアクセラレータを使用すると3.5倍のスピードアップが達成された」と報告した。

GPipeはTensforFlowでシーケンシャルニューラルネットワークモデルを構築するためのLingvoフレームワークの一部として利用可能である。
 

この記事に星をつける

おすすめ度
スタイル

BT