IBMフェローであり、IBM Researchのアクセラレータアーキテクチャ&機械学習部門担当シニアマネジャーも務めるKailash Gopalakrishnan氏は、米国EE Timesのインタビューに応じ、「当社が、長年にわたり手掛けてきた多彩な研究から学んだのは、『低精度トレーニングは非常に難しい課題だが、適切なビット数のフォーマットであれば、8ビットトレーニングを実現することが可能である』ということだ。重要なのは、適切なビット数のフォーマットを把握して、それを深層学習の適切なテンソルに配置することである」と述べている。
実際にHybrid FP8は、2つの異なるフォーマットを組み合わせたものである。1つのフォーマットは、深層学習のフォワードパスでウェイトおよびアクティベーション用として使われている。推論はフォワードパスのみを使用するが、トレーニングはフォワードとバックワードの両方のフェーズを必要とする。
Gopalakrishnan氏は、「われわれが学んだのは、深層学習のフォワードパスにおけるウェイトおよびアクティベーションの表現に関して、より高い忠実度と精度を実現する必要があるということだ。バックワードフェーズの別の側面として、勾配のダイナミックレンジが非常に高いため、より大きな指数が必要であるという点については認識している。これは、深層学習の一部のテンソルにはもっと高い精度と忠誠度による表現が必要とされる一方、他のテンソルにはより大きなダイナミックレンジが必要であることから、矛盾点が生じることになる。これが、当社が2019年末に発表したHybrid FP8フォーマットの起源となる。Hybrid FP8フォーマットは現在、ハードウェアに実装されている」と語った。
IBM Researchの取り組みによって明らかになったのが、フォワードフェーズに関しては、指数と仮数の間で8ビットを分割する時に最適なのは、1-4-3(符号が1ビット、指数が4ビット、仮数が3ビット)であるという点だ。バックワードフェーズに関しては、ダイナミックレンジ232を実現する、5ビットの指数バージョンが代替となる。Hybrid FP8対応のハードウェアは、これら両方のフォーマットをサポート可能な設計を実現している。
研究グループが「階層アキュムレーション(hierarchical accumulation)」と呼ぶイノベーションの実現により、ウェイトとアクティベーションに合わせて精度を下げるためのアキュムレーションが可能になった。一般的にFP16のトレーニング方法は、32ビット計算でアキュムレートすることによって精度を維持するが、IBM Researchの8ビットトレーニングは、FP16でアキュムレートすることが可能だ。FP32でアキュムレーションを維持したことにより、最初にFP8に移行することで得られるメリットが、制限されていたのだろう。
Gopalakrishnan氏は、「浮動小数点演算では、例えば1万ベクトル長のような大量の数字を、全て同時に追加する場合に、浮動小数点表示そのものが合計値の精度を制限し始めるという状況が発生する。このためわれわれとしては、連続的に追加しないということが最善の方法であるという結論に至ったが、長いアキュムレーションを、『チャンク』と呼ばれるグループに分割してしまう傾向にある。そこで、チャンクを相互に追加することにより、このような種類のエラーが生じる可能性を最小限に抑えている」と述べる。
現在、ほとんどのAI推論はINT8(8ビット整数)を使用している。IBM Researchの研究では、推論精度を大幅に落とさずに低精度にする点では、4ビット整数が最先端であることが示されている。量子化(モデルをより低い精度の数値に変換するプロセス)に続き、Quantization-Aware Training(QAT)が行われる。これは、量子化に起因する誤差を低減するための再トレーニング(最適化)だ。これにより、推論精度の低減を最小限に抑えることができる。IBM Researchの技術では、推論精度の損失を従来に比べて半分に抑えながら、4ビット整数に“容易に”量子化できるとする。
今回発表したテストチップは、コアの数を変えることでスケールアップ/スケールダウンが可能だ。Gopalakrishnan氏によれば、エッジデバイスには1〜2コア、データセンターには32〜64コアが適しているという。さらに、複数のフォーマット(FP16、Hybrid FP8、INT4、INT2など)をサポートするので、幅広いアプリケーションに応用できると同氏は付け加えた。
【翻訳:田中留美、編集:EE Times Japan】
Copyright © ITmedia, Inc. All Rights Reserved.