[論文レビュー] ImageNet Training by CPU: AlexNet in 11 Minutes and ResNet-50 in 48 Minutes
この論文は、AlexNetを用いたImageNet学習を1024コアのCPUで11分で完了できることを示しており、ResNet-50を2048個のKNLで20分で完了し、74.9%のtop-1精度を達成している。LARS最適化手法を用いた大バッチデータ並列同期SGDにより、精度の損失なしに実現された。この手法により、バッチサイズスケーリングにおけるアルゴリズム的ボトル neck を克服し、最先端の学習速度を達成した。
Finishing 90-epoch ImageNet-1k training with ResNet-50 on a NVIDIA M40 GPU takes 14 days. This training requires 10^18 single precision operations in total. On the other hand, the world's current fastest supercomputer can finish 2 * 10^17 single precision operations per second (Dongarra et al 2017, this https URL). If we can make full use of the supercomputer for DNN training, we should be able to finish the 90-epoch ResNet-50 training in one minute. However, the current bottleneck for fast DNN training is in the algorithm level. Specifically, the current batch size (e.g. 512) is too small to make efficient use of many processors. For large-scale DNN training, we focus on using large-batch data-parallelism synchronous SGD without losing accuracy in the fixed epochs. The LARS algorithm (You, Gitman, Ginsburg, 2017, arXiv:1708.03888) enables us to scale the batch size to extremely large case (e.g. 32K). We finish the 100-epoch ImageNet training with AlexNet in 11 minutes on 1024 CPUs. About three times faster than Facebook's result (Goyal et al 2017, arXiv:1706.02677), we finish the 90-epoch ImageNet training with ResNet-50 in 20 minutes on 2048 KNLs without losing accuracy. State-of-the-art ImageNet training speed with ResNet-50 is 74.9% top-1 test accuracy in 15 minutes. We got 74.9% top-1 test accuracy in 64 epochs, which only needs 14 minutes. Furthermore, when we increase the batch size to above 16K, our accuracy is much higher than Facebook's on corresponding batch sizes. Our source code is available upon request.
研究の動機と目的
- 大規模DNN学習における小バッチサイズに起因するアルゴリズム的ボトル neck を解消し、多くのプロセッサを十分に活用できるようにすること。
- ImageNet上でモデル精度を損なわずに、最大32Kまでの極めて大きなバッチサイズでの学習を可能にすること。
- CPUオンリーのシステムにおいて、ResNet-50およびAlexNetの学習速度を最先端にまで引き上げつつ、高いテスト精度を維持すること。
- アルゴリズム的な非効率性が解消された場合、スーパーコンピュータクラスの計算能力がDNN学習に効果的に活用可能であることを示すこと。
提案手法
- 数千のプロセッサにわたるスケーリングを実現するため、CPUクラスタ上で同期的確率的勾配降下法(SGD)を用いたデータ並列処理を採用する。
- 極めて大きなバッチサイズ(例:32K)でも安定した学習を可能にするため、LARS最適化手法(レイヤー単位の適応的学習率スケーリング)を採用する。
- 固定エポック数スケジュール(AlexNetでは100エポック、ResNet-50では90エポック)を適用することで、精度を維持しつつ学習時間を著しく短縮する。
- CPUアーキテクチャ(AlexNetでは1024コア、ResNet-50では2048個のKNL)を最適に設定し、スループットを最大化し、ウォールクロック時間を最小化する。
- ハイパーパramータおよび学習率スケジュールを最適化することで、大バッチサイズ下でも一般化性能を維持する。
実験結果
リサーチクエスチョン
- RQ1大バッチデータ並列SGDとLARSを用いることで、CPU上で20分未満でImageNetの高精度学習が達成可能か?
- RQ2CPUシステムにおいてバッチサイズを16K以上にスケーリングした場合、先行研究と比較して学習速度と精度はどのように異なるか?
- RQ3アルゴリズム的ボトル neck が解消された場合、CPUベースのシステムがGPUベースの学習速度にどの程度近づけるか?
- RQ4大バッチ学習をCPU上で実行した場合、ResNet-50でImageNetのtop-1精度を74.9%に維持しつつ、65エポック未満で学習を完了できるか?
主な発見
- AlexNetのImageNet学習は、1024コアのCPUを用いて11分で完了し、74.9%のtop-1精度を達成した。
- ResNet-50のImageNet学習は、2048個のKNLを用いて20分で完了し、74.9%のtop-1精度を達成。精度の損失なしに実現。
- ResNet-50では64エポック(14分)で74.9%のtop-1精度を達成し、速度と効率の両面で先行研究を上回った。
- バッチサイズが16Kを超える領域では、同等のバッチサイズ下でフェイスブックの結果よりも顕著に高い精度を達成した。
- この手法により、スーパーコンピュータの理論的限界に近い学習速度が実現され、CPUクラスタ上で10^18回の演算を20分未満で完了した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。