人気の ImageNet データセットを使用してニューラル ネットワークをトレーニングする最短時間が、これまでの記録である 4 分からわずか 1 分半にさらに短縮されたと発表されました。
ディープラーニングにおいて、トレーニングはおそらく最も重要かつ退屈な部分です。ニューラルネットワークに物事を識別させたり、将来の入力から判断を下したりするための少量のデータがソフトウェアに投入され、多層にわたる高度な行列計算を通してフィルタリングされ、トレーニングされます。開発者は、システムを展開する前に、モデルを最適なパフォーマンスに調整し、テストするために、数時間または数日かかるのではなく、数分単位の迅速な結果処理を切望しています。
再教育セッションが短くなるということは、顔認識、音声認識、および類似のシステムを迅速に更新、調整、または即時に改善できることも意味します。
トレーニング時間を短縮するための様々なテクニックがあります。よくある戦術としては、バッチサイズを大きくしてデータセットを高速に処理し、モデルが反復ごとにより多くのサンプルを処理できるようにすることです。ただし、全体的な精度は低下するため、バランスを取る必要があります。
もう一つの戦略は、半精度浮動小数点(FP16)と単精度浮動小数点(FP32)を併用することです。これにより、GPUなどのハードウェアで機械学習の演算処理を高速化するために使用しているチップのメモリ帯域幅の圧迫が軽減されますが、精度が多少低下する可能性があります。
香港に拠点を置き、評価額が10億ドルを超えるコンピュータービジョンの新興企業センスタイムとシンガポールの南洋理工大学の研究者らは、これらの技術を使用して、画像認識畳み込みニューラルネットワークであるアレックスネットをイメージネット上でわずか1.5分でトレーニングし、精度は58.2パーセントに達したと述べている。
この時間内にImageNet-1Kデータセットの120万枚以上の画像を処理するには、56Gbpsネットワークで接続された2つの物理クラスターに、NVIDIAの2017年型Tesla Volta V100アクセラレータを512個搭載する必要がありました。チップ1個あたり約1万ドルかかるため、可能であればクラウドプロバイダーからレンタルする方が良いでしょう。
また、順方向・逆方向計算フェーズでは16ビットのFP16パラメータと勾配を使用し、モデル更新フェーズでは32ビットのFP32値を使用することで、帯域幅と精度のバランスをとっています。トレーニング実行は90秒間で95エポックを完了し、AlexNetではGPUあたりのバッチサイズは128、512GPU構成では65,536でした。
4分間の警告です: 科学者がImageNetベースのAI分類器をわずか240秒で学習
続きを読む
研究チームは、今月初めにarXivで公開された論文で説明されているように、GPUでの学習時間を大幅に短縮するために「GradientFlow」と呼ばれるソフトウェアツールキットを考案しました。各GPUはImageNetから取得したデータのバッチを保存し、勾配降下法を用いてピクセル単位で処理を行います。その後、勾配の値はサーバーノードに渡され、「allreduce」と呼ばれる並列処理アルゴリズムを用いてモデル全体のパラメータを更新します。
これらの値、つまりテンソルを数百のGPUから一度に取り込もうとすると、ボトルネックが発生します。GradientFlowは、最終的な値がモデルに送信される前にGPU間でローカル通信を行い、勾配を交換できるようにすることで、コードの効率を向上させるとされています。
「生成された勾配をallreduceですぐに送信する代わりに、GradientFlowは複数の連続した通信操作を1つに融合し、ネットワーク経由で膨大な数の小さなテンソルを送信することを回避します」と研究者らは書いている。
ネットワークトラフィックを削減するため、粗粒度のスパース通信を設計しました。GradientFlowは、すべての勾配をすべての反復処理で送信するのではなく、チャンクレベルでallreduceに重要な勾配のみを送信します(たとえば、チャンクは32Kの勾配で構成される場合があります)。
これは、中国のテクノロジー大手テンセントと香港バプティスト大学の研究者が開発した、これまで知られている最速モデル(4分かかっていた)の約2.6倍の速さだ。®