用語集

モデルの量子化

モデルの量子化でAIのパフォーマンスを最適化。サイズを縮小し、速度を向上させ、エネルギー効率を改善することで、実世界での展開を実現します。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

モデルの量子化は、ディープラーニング(DL)においてモデルの計算コストとメモリコストを削減するために使用される重要なモデル最適化手法である。これは、モデルのパラメータ(重みと活性度)の数値精度を、高精度表現、典型的には32ビット浮動小数点数(FP32)から、16ビット浮動小数点数(FP16)、8ビット整数(INT8)、あるいはそれ以下のビット表現などの低精度フォーマットに変換することで実現される。このプロセスにより、機械学習モデルの小型化、高速化、エネルギー効率の向上が実現され、モバイル・デバイスやエッジAIシステムのようなリソースに制約のある環境で複雑なモデルを展開する際に特に重要となる。

モデル量子化の仕組み

モデルの量子化とは、高精度のテンソル(FP32のウェイトやアクティベーションなど)に含まれる値の範囲を、低精度のデータ型(INT8など)で表現可能な小さな範囲にマッピングすることである。この変換により、モデルの保存に必要なメモリと推論に必要な計算リソースが大幅に削減されます。低精度数(特に整数)に対する演算は、GPUや CPUTPUや NPUのような特殊なアクセラレータのような最新のハードウェアにおいて、より高速でエネルギー効率に優れていることが多いからです。目標は、モデルの予測性能への影響を最小限に抑えながら、これらの効率向上を達成することです。

モデル量子化の利点

ディープラーニングモデルに量子化を適用することで、いくつかの重要な利点が得られる:

  • モデルサイズの縮小:より精度の低いデータ型は、より少ないストレージスペースしか必要としないため、モデルの保存と配布が容易になり、特にデバイス上での展開が容易になります。
  • より速い推論速度:低精度数(特に整数)を使った計算が互換性のあるハードウェア上でより速く実行され、推論の待ち時間が短縮される。これはリアルタイム・アプリケーションにとって非常に重要です。
  • エネルギー効率の向上:計算の高速化とメモリ・アクセスの削減により消費電力を低減し、モバイル・デバイスやエッジ・デバイスのバッテリー寿命を延ばします。
  • ハードウェア互換性の強化:多くの専用ハードウェア・アクセラレータ(Edge TPUARMプロセッサのNPU)は、低精度整数演算に最適化されているため、量子化モデルのパフォーマンスが大幅に向上します。

量子化テクニック

モデルの量子化には、主に2つのアプローチがある:

  • ポストトレーニング量子化(PTQ):この方法では、標準的な浮動小数点精度を使用して、すでに学習済みのモデルを量子化します。再学習や元の学習データへのアクセスが不要なため、実装が簡単です。しかし、モデルの精度が著しく低下することがある。TensorFlow Model Optimization Toolkitのようなツールは、PTQ機能を提供します。
  • 量子化を考慮したトレーニング(QAT)この手法は、モデルの学習過程で量子化の影響をシミュレートします。特に量子化に敏感なモデルの場合、QATはPTQよりも精度を向上させることができますが、学習ワークフローを変更したり、学習データにアクセスしたりする必要があります。PyTorch QATをサポートしています

実世界での応用

モデル量子化は様々な領域で広く使われている:

考察と関連概念

非常に有益ではあるが、量子化はモデルの精度に影響を与える可能性がある。量子化後は、関連する性能指標を用いて慎重に評価することが不可欠である。量子化されたYOLOv8 モデルの展開で説明したように、量子化に適したモデル・アーキテクチャ(例えば、YOLO見られるように、特定の活性化関数を置き換える)を使用するなどのテクニックは、精度の低下を軽減するのに役立ちます。

モデルの量子化は、いくつかあるモデル最適化手法のひとつである。他には以下のようなものがある:

  • モデルの刈り込みニューラルネットワーク内の冗長または重要でない接続(重み)を削除する。
  • 混合精度学習や推論の際に、異なる数値精度(FP16やFP32など)を組み合わせて使用すること。
  • 知識の蒸留事前に訓練された大きな「教師」モデルの動作を模倣するように、小さな「生徒」モデルを訓練する。

Ultralytics 、量子化と展開を容易にする様々なフォーマットへのモデルのエクスポートをサポートしています。 ONNX, OpenVINOIntel ハードウェアに最適化)、 TensorRT(NVIDIA GPU用)、 CoreML(Appleデバイス用)、およびTFLiteがあり、多様なハードウェアプラットフォームへの効率的なモデル展開が可能です。Ultralytics HUBのようなツールを使用して、量子化されたバージョンを含むモデルを管理およびデプロイできます。以下のような統合 Neural Magicのような統合も、CPU 最適化のために量子化を活用します。

すべて読む