[論文レビュー] Quantizing Convolutional Neural Networks for Low-Power High-Throughput Inference Engines
本稿では、再訓練を必要とせず1回の推論バッチによるキャリブレーションで、32ビット演算を8ビット以下に置き換えることで、高精度かつ低消費電力な推論を実現する動的浮動小数点量子化方式を提案する。FPGA上で、ハードウェアコストとエネルギー消費を4倍以上削減しつつ、完全精度モデルと同等のエンドツーエンドの量子化後精度を達成する。
Deep learning as a means to inferencing has proliferated thanks to its versatility and ability to approach or exceed human-level accuracy. These computational models have seemingly insatiable appetites for computational resources not only while training, but also when deployed at scales ranging from data centers all the way down to embedded devices. As such, increasing consideration is being made to maximize the computational efficiency given limited hardware and energy resources and, as a result, inferencing with reduced precision has emerged as a viable alternative to the IEEE 754 Standard for Floating-Point Arithmetic. We propose a quantization scheme that allows inferencing to be carried out using arithmetic that is fundamentally more efficient when compared to even half-precision floating-point. Our quantization procedure is significant in that we determine our quantization scheme parameters by calibrating against its reference floating-point model using a single inference batch rather than (re)training and achieve end-to-end post quantization accuracies comparable to the reference model.
研究の動機と目的
- リソース制約のあるデバイスに深層学習モデルをデプロイするにあたり、増大する計算およびエネルギー要件に対処すること。
- 32ビット演算を低精度代替に置き換えることで、CNN推論におけるハードウェアコストとエネルギー消費を低減すること。
- 再訓練を必要とせず、1回のキャリブレーションバッチのみを用いても高い推論精度を維持する量子化手法を開発すること。
- ネットワーク固有の最適量子化パラメータに適合するカスタム回路構成を可能にすることで、FPGAベースの効率的デプロイを実現すること。
- 動的浮動小数点量子化が固定小数点および標準的な低精度浮動小数点に比べ、精度と効率の両面で優れていることを示すこと。
提案手法
- α × 2^exponent × 符号付き整数として定義される動的浮動小数点形式を導入し、ここでαは実数であり、仮数部はnビットで表現され、pビットの仮数部ビットを有する。
- 仮数部に符号マグニチュードまたは2の補数表現を採用し、特別な指数部符号化により下位数値をサポートする。
- 最適なスケールおよび指数パラメータを決定するために、1回の推論バッチを用いたキャリブレーションベースの量子化手順を採用する。
- 指数部と仮数部ビットの間で柔軟なビット幅割り当てを可能にし、動的範囲と精度のトレードオフを実現する。
- ネットワーク固有の最適量子化パラメータに適合するカスタムnおよびp構成を可能にし、FPGAの再構成を可能にする。
- 再訓練を回避するため、最小限のデータ(8枚の画像程度)で十分なキャリブレーションが可能なポスト量子化キャリブレーションを採用し、高速かつオフラインでのネットワーク圧縮を実現する。
実験結果
リサーチクエスチョン
- RQ11回のキャリブレーションバッチのみを用いて再訓練を必要とせず、近似精度の推論精度を達成できる量子化方式は存在するか?
- RQ2動的浮動小数点量子化は、固定小数点および標準的な低精度浮動小数点に比べ、精度と効率の両面で優れているか?
- RQ3GoogLeNet、ResNet、MobileNetなどの異なるCNNアーキテクチャにおいて、指数部と仮数部へのビット割り当ての最適値は何か?
- RQ4推論における精度損失が顕著に増大しない範囲で、ビット幅を5ビットや6ビットにまで削減できるか?
- RQ5下位数値およびInfs/NaNsを量子化スキームから安全に除外しても、性能が劣化しないか?
主な発見
- fp8およびfp6量子化において、p=4またはp=3でGoogLeNetの正規化top-1精度が100%に達し、fp8では過去の研究で報告された約60%よりも顕著に優れている。
- fp8では、p=4またはp=3で最高の精度が達成され、ゼロ近傍の精度が性能に大きく寄与することが示された。
- GoogLeNetおよびResNetの重みは5ビットにまで削減可能であり、精度損失は最小限に抑えられるが、MobileNetでは少なくとも7ビットが必要である。
- 指数部ビット数が3ビットを超えると利得が次第に小さくなり、4ビットの指数部は3ビットと比べて顕著な改善を示さない。これは、fp32を短縮したものがfp16より優れているという一般的な認識に反する。
- 動的浮動小数点方式は、ゼロ近傍の精度が向上し範囲が広いため、動的固定小数点の類似手法に比べ優れた性能を示す。
- 最小限のキャリブレーションデータ(8枚の画像程度)でさえも、32ビット演算を8ビット以下に置き換えることで、エネルギーおよびハードウェアコストを4倍以上削減可能である。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。