用語集

モデルの量子化

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

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

さらに詳しく

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

モデル量子化の仕組み

モデルの量子化とは、高精度のテンソル(FP32のウェイトやアクティベーションなど)に含まれる値の範囲を、低精度のデータ型(INT8など)で表現可能な小さな範囲にマッピングすることである。GPUや TPUのような特殊なアクセラレータのような最新のハードウェアでは、低精度数(特に整数)に対する演算の方が高速でエネルギー効率が高いことが多いため、この変換によってモデルの保存に必要なメモリと推論に必要な計算能力が大幅に削減されます。

モデル量子化の利点

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

  • モデルサイズの縮小:精度が低いと、パラメータあたりのビット数が少なくなるため、モデルのストレージ・フットプリントが大幅に減少します。これは、Over-the-Airアップデートやストレージが限られているデバイスにとって有益です。
  • 推論速度の向上:低精度数、特に整数演算を使った計算は、一般的に互換性のあるハードウェア上で高速になり、推論の待ち時間が短くなります。
  • 低消費電力:メモリ・アクセスを減らし、計算を単純化することで、バッテリー駆動のエッジ・デバイスにとって極めて重要なエネルギー使用量を削減します。
  • 展開性の向上:以下のような大規模で複雑なモデルのデプロイを可能にします。 Ultralytics YOLOような大規模で複雑なモデルを、マイクロコントローラーやエッジTPUのような計算リソースが限られたハードウェア上に展開できます。

量子化テクニック

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

  1. ポストトレーニング量子化(PTQ):この方法では、標準的な浮動小数点精度を使用して、すでに学習済みのモデルを量子化します。再トレーニングの必要がないため実装は簡単ですが、モデルの精度が顕著に低下することがあります。この精度の低下を最小限に抑えるために、代表的なデータセットによるキャリブレーションがよく用いられます。
  2. 量子化を考慮したトレーニング(QAT)QATは、トレーニングプロセスそのものにおいて量子化の影響をシミュレートする。モデルは低い精度に適応するように学習し、通常PTQと比較して精度が向上しますが、元の学習パイプラインとデータにアクセスする必要があります。

実世界での応用

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

  1. モバイル・コンピューティング:クラウド計算に大きく依存することなく、スマートフォン上で直接、カメラフィルターのリアルタイム物体検出画像分類、自然言語処理などの高度なAI機能を実現する。TensorFlow Liteのようなフレームワークは量子化を多用している。
  2. 自律走行車量子化モデルは、自動運転システムにおけるリアルタイムの意思決定に重要な、歩行者検出、車線維持、交通標識認識などのタスクのためのセンサーデータ(カメラ、LiDAR)の高速処理を可能にします。Ultralytics 、このようなアプリケーションに適した様々なモデル展開オプションを提供します。

考察と関連概念

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

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

  • モデルの刈り込みモデルの複雑さを軽減するために、重要度の低い重みまたは接続を削除する。
  • 混合精度トレーニングや推論時にFP16とFP32を組み合わせて使用し、スピード/メモリと精度のバランスをとる。
  • 知識の蒸留より大きな、事前に訓練された「教師」モデルの出力を模倣するために、より小さな「生徒」モデルを訓練する。

Ultralytics 、量子化を容易にする様々なフォーマットへのモデルのエクスポートをサポートしています。 ONNX, OpenVINO, TensorRT, CoreMLおよびTFLiteに対応しており、多様なハードウェアプラットフォームへの効率的なデプロイが可能です。Ultralytics HUBのようなツールを使用して、量子化されたバージョンを含むモデルを管理およびデプロイできます。

すべて読む