Skip to main content
QUICK REVIEW

[論文レビュー] FP8 Formats for Deep Learning

Paulius Micikevicius, Dušan Stošić|arXiv (Cornell University)|Sep 12, 2022
Advanced Neural Network Applications被引用数 49
ひとこと要約

論文は深層学習のための FP8 バイナリ交換フォーマット(E4M3 と E5M2)を提案し、FP8 の訓練と推論が 16-bit 精度と同等であることを、CNN、Transformers、175B パラメータまでの大規模言語モデルで示し、同じハイパーパラメータを使用。

ABSTRACT

FP8 is a natural progression for accelerating deep learning training inference beyond the 16-bit formats common in modern processors. In this paper we propose an 8-bit floating point (FP8) binary interchange format consisting of two encodings - E4M3 (4-bit exponent and 3-bit mantissa) and E5M2 (5-bit exponent and 2-bit mantissa). While E5M2 follows IEEE 754 conventions for representatio of special values, E4M3's dynamic range is extended by not representing infinities and having only one mantissa bit-pattern for NaNs. We demonstrate the efficacy of the FP8 format on a variety of image and language tasks, effectively matching the result quality achieved by 16-bit training sessions. Our study covers the main modern neural network architectures - CNNs, RNNs, and Transformer-based models, leaving all the hyperparameters unchanged from the 16-bit baseline training sessions. Our training experiments include large, up to 175B parameter, language models. We also examine FP8 post-training-quantization of language models trained using 16-bit formats that resisted fixed point int8 quantization.

研究の動機と目的

  • DL の訓練と推論を高速化するためのコンパクトな 8-bit 浮動小数点フォーマットの提案。
  • テンソルごとのスケーリングを含む設計選択の例として、2つの FP8 エンコーディング(E4M3 と E5M2)を提案し、ダイナミックレンジやダイナミックレンジ、テンソルごとのスケーリングなどの設計選択について論じる。
  • CNN、RNN、Transformer モデルを含む FP8 訓練と FP8 ベースの推論を、非常に大規模な言語モデル(最大 175B パラメータ)まで示す。
  • FP16/bfloat16 で訓練されたモデルを FP8 にポスト訓練量子化して評価し、int8 量子化と比較する。
  • 実用的な DL パイプラインにおけるスケーリング、オーバーフロー処理、特殊値表現など FP8 の使用に関するガイダンスを提供する。

提案手法

  • FP8 バイナリ交換フォーマット E4M3(4ビット指数部、3ビット仮数部)および E5M2(5ビット指数部、2ビット仮数部)を定義する。
  • テンソルごとのスケーリング係数と、IEEE に近い指数バイアスを維持する理由を説明する(E4M3 は 7、E5M2 は 15)。
  • 訓練中にテンソル値を FP8 表現可能な範囲にクリップして FP8 を模擬し、演算はより広い精度で行い、必要に応じてストレージとして FP8 へキャストする。
  • FP8 入力で幅広いモデル(CNN、RNN、Transformers)を訓練し、ベースラインの 16-bit ハイパーパラメータを固定したまま、最大 175B パラメータの非常に大規模な言語モデルも含む。
  • 高精度で訓練されたモデルの FP8 推論と FP8 ポスト訓練量子化(PTQ)を評価し、int8 および 16-bit ベースラインと比較する。
  • いくつかのネットワークにおいてテンソルごとのスケーリングが必要かどうかと、精度への影響について論じる。

実験結果

リサーチクエスチョン

  • RQ1FP8(E4M3 および E5M2)による訓練は、CNN、RNN、Transformers などの多様なアーキテクチャで、ハイパーパラメータを変更せずに 16-bit 訓練と同等の精度を達成できるだろうか?
  • RQ2FP8 のダイナミックレンジと特殊値表現が訓練の安定性と精度に与える影響は何か?
  • RQ3精度を維持するために FP8 推論においてテンソルごとのスケーリングは必要か、また FP8 PTQ は int8 量子化とどう比較されるか?
  • RQ4175B パラメータまでの超大規模言語モデルの訓練や、デプロイのためのポスト訓練量子化に FP8 がどのような影響を与えるか?

主な発見

  • 同じモデル、最適化アルゴリズム、ハイパーパラメータを使用した場合、FP8 訓練はさまざまなタスクとアーキテクチャで FP16 または bfloat16 訓練結果と一致する。
  • ImageNet の画像モデルは、複数のアーキテクチャ(例:ResNet 系、DenseNet、Xception、DeiT)において、FP8 の精度が FP16/bfloat16 のベースラインの実行間のばらつき内に収まる。
  • Transformer 系や GNMT アーキテクチャを含む言語モデルは、FP8 訓練済みの BLEU や perplexity が 16-bit ベースラインの実行間ばらつき内に収まり、最大 175B パラメータまで達する。
  • FP16/bfloat16 訓練モデルの FP8(E4M3)へのポスト訓練量子化は、いくつかの NLP タスク(例:BERT、GPT-3 スケール)で int8 PTQ より精度を保つ。テンソルごとのスケーリングが結果を改善する。
  • WIkiText-103 の perplexity 実験が示すように、FP8 に格納されるテンソルが増えると精度を維持するためにテンソルごとのスケーリングが時には必要になる。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。