HPCシステムズではエンジニアを募集しています。詳しくはこちらをご覧ください。
HPCシステムズのエンジニア達による技術ブログ

Tech Blog

DGX-1を手に入れた!

DGX-1@AI・人工知能EXPO

 弊社にてDGX-2を取り扱うことになりました。それに伴い、弊社でDGX-1を購入しました。AI・人工知能EXPOでも展示してました(動作させるのに200V環境が必要なので、もちろん静態展示です)。弊社のブースでは、DGX-1の他に、OpenPoseなどを展示していました。

人の関節と目、耳の場所を推論するOpenPose、DGX-1より目を留める人が多かった

 弊社のブース来て下さった方々、本当にありがとうございました。

MLPerf

 せっかくDGX-1を手に入れたので、MLPerfというベンチマークを行うことにしました。

 MLPerfとは、既定のモデルを、既定の性能まで、既定の方法で学習して、その時間を競うベンチマークです。機械学習の中でも、分散学習は、計算機の規模を大きくするとともに、バッチサイズを上げなければ、処理速度が上がらないのですが、バッチサイズを上げると、学習が不安定になる傾向があり、肝心のモデルの性能向上に結び付きません。そういった背景もあり、機械学習における計算性能に関して、単なる計算機の処理速度のみを誇示するのは、いかがなものかと、ということで、MLPerfは創られました。

 MLPerfは、現在、v0.5.0(1回目)が終了しています。いつも計算規模の指標となる画像認識については、2017年にFacebookが出した論文を元にルールが作られているように見えます。この論文は、大きいバッチサイズにおいて、学習が安定するためには、バッチサイズを大きくした分、学習率も大きくすること、また、学習の始めは学習率を少しずつ上げていく、Warm-upを、5 epochs ほど導入することが、効果があるとしています。また、この方法で8kまでのバッチサイズで学習が安定したと報告されています。最近では、Preferred Networksが、学習中にOptimizerを変更することで、バッチサイズ32kまで学習を安定させたという発表がありました。

MLPerf v0.5.0 の画像認識におけるルールは、ざっくり言うと下記のような感じです。

  • 画像データは、Imagenetのデータ
  • モデルは、Resnet-50 v1.5
  • 目標性能は、正答率74.9% (画像認識でよく使用するTop-5 正答率ではなく、Top-1正答率)
  • ベンチマーク結果は5回試行し、最高値と最低値を除いた平均値を採用
  • Optimizerは、SGD
  • 学習率は、0.1または0.128 ただし、整数倍すること、Warm-up期間を設けること、段階的に下げることを許す。
  • その他、損失関数を学習中に変えないなど、細かいルールがあります。

学習させてみた

 MLPerfには、NVIDIAがベンチマークした環境が公開されているので、それを使用して試すことができます。MLPerfの説明が長くなりましたが、DGX-1を使って学習してみました。下はその時の様子です。

 処理速度10,000 samples/sec という、Resnet-50では見たことない数値です。Imagenetのデータ(約120万の画像データ)を60 epochs (120万 × 60回)学習するのに2時間ちょっとでした(データのダウンロードの方が長かった。。。)

あとがき

 4月から、持ち回りで書くことになり、私は1回目の投稿です。こんな粗末な文章を読んでいただき、有難うございます。ついでっぽくなりましたが、DGX-2 も、よろしくお願いします。

今度、弊社で取り扱うことになったDGX-2。NVIDIA® V100 が16個になり、NVLinkスイッチが実装されています。