モデルの量子化でAIのパフォーマンスを最適化。サイズを縮小し、速度を向上させ、エネルギー効率を改善することで、実世界での展開を実現します。
モデルの量子化は、ディープラーニング(DL)においてモデルの計算コストとメモリコストを削減するために使用される重要なモデル最適化手法である。これは、モデルのパラメータ(重みと活性度)の数値精度を、高精度表現、典型的には32ビット浮動小数点数(FP32)から、16ビット浮動小数点数(FP16)、8ビット整数(INT8)、あるいはそれ以下のビット表現などの低精度フォーマットに変換することで実現される。このプロセスにより、機械学習モデルの小型化、高速化、エネルギー効率の向上が実現され、モバイル・デバイスやエッジAIシステムのようなリソースに制約のある環境で複雑なモデルを展開する際に特に重要となる。
モデルの量子化とは、高精度のテンソル(FP32のウェイトやアクティベーションなど)に含まれる値の範囲を、低精度のデータ型(INT8など)で表現可能な小さな範囲にマッピングすることである。この変換により、モデルの保存に必要なメモリと推論に必要な計算リソースが大幅に削減されます。低精度数(特に整数)に対する演算は、GPUや CPU、TPUや NPUのような特殊なアクセラレータのような最新のハードウェアにおいて、より高速でエネルギー効率に優れていることが多いからです。目標は、モデルの予測性能への影響を最小限に抑えながら、これらの効率向上を達成することです。
ディープラーニングモデルに量子化を適用することで、いくつかの重要な利点が得られる:
モデルの量子化には、主に2つのアプローチがある:
モデル量子化は様々な領域で広く使われている:
非常に有益ではあるが、量子化はモデルの精度に影響を与える可能性がある。量子化後は、関連する性能指標を用いて慎重に評価することが不可欠である。量子化されたYOLOv8 モデルの展開で説明したように、量子化に適したモデル・アーキテクチャ(例えば、YOLO見られるように、特定の活性化関数を置き換える)を使用するなどのテクニックは、精度の低下を軽減するのに役立ちます。
モデルの量子化は、いくつかあるモデル最適化手法のひとつである。他には以下のようなものがある:
Ultralytics 、量子化と展開を容易にする様々なフォーマットへのモデルのエクスポートをサポートしています。 ONNX, OpenVINOIntel ハードウェアに最適化)、 TensorRT(NVIDIA GPU用)、 CoreML(Appleデバイス用)、およびTFLiteがあり、多様なハードウェアプラットフォームへの効率的なモデル展開が可能です。Ultralytics HUBのようなツールを使用して、量子化されたバージョンを含むモデルを管理およびデプロイできます。以下のような統合 Neural Magicのような統合も、CPU 最適化のために量子化を活用します。