二か月前にFacebookのAI研究所FAIRが、大規模な分散ビジュアル認識モデルの、かなり感動的な(==短い、はやい)訓練時間を発表した。今日(米国時間8/7)はIBMが反撃に出て、独自の数字を発表した。IBMの研究グループによると、1000のクラスに対応する画像分類モデルResNet-50を、256のGPUを使用するシステムで50分で訓練できた。つまり、Facebookのモデルよりもはやい、と言いたいのだ。FacebookがCaffe2を使った結果では、同じResNet-50を、8kのミニバッチ方式で、256のGPU上で1時間で訓練できた。
しかしそもそも、それのどこが重要なのか? 分散処理はAIの研究でも重要な関連分野だが、でもそれは、科学的というより、あまりにも技術的なテーマだ。しかもディープラーニングのような大きなジョブは、ジョブを分割し、複数のCPU(ここではGPU)に分担させて同時並行的にやるのが、大規模高速コンピューティングの昔からの定石だ。
しかしディープラーニングのモデルの訓練では、GPUの台数と処理速度が単純に比例しない。1台のGPUで2分かかる訓練が、2台のGPUだと1分で済むか、というとそうは行かない。タスクの分割と結果の再結合という面倒な処理が、かなりの時間を食う。
IBMが約束しているのは、大きなディープラーニングの問題を数百の小さな問題に分割して効率的に行う、分散ディープラーニングライブラリだ。それらは単一のコンピューティングジョブが目的ではなくて、IBMやFacebookが毎日のようにやっているのは、何百万もの顧客のためのモデルの訓練だ。大手のテクノロジー企業はどこもそんな課題を抱えているが、企業により問題により変数の数や性質が異なるため、それらを単純に横並びで比較することはできない。
しかし、分散処理の漸進的な改良にもそろそろ限界があるのではないか。IBM Researchでシステムのスピードとメモリを担当しているディレクターHillery Hunteによると、今やどこも最適解に近づいている、という。
“今やシステムの能力の限界まで来ているから、最適解に近いと言える。今後の改良の大きさがどの程度になるのか、そもそも学習時間にこれ以上の改良は可能なのか、そろそろ問うてみる必要がある”。
IBMは今後ResNet-50だけでなくResNet-101も分散訓練を試してみる予定だ。101は50よりもずっと大きくて複雑なビジュアル認識のモデルだ。チームによると、GPU 256基の分散システムの上で、データセットとしてImageNet-22kを使って行ったResNet-101の訓練では7時間を要した。それは、かなり良好な結果だそうだ。
“この分散訓練は小さなシステムにもメリットはある”、とHunterは言う。“しかもGPUが256とか、システムが64までは(小さなシステムでは)要らないからね”。
このディープラーニングライブラリは、TensorFlowやCaffe、Torchなど、主なオープンソースのディープラーニングフレームワークで利用できる。自分で試してみたい方は、PowerAIから入手できる。