Quantization-Aware Training (QAT)
量子化認識トレーニング(QAT)が、エッジデプロイメント向けにUltralytics YOLO26モデルを最適化する方法を説明します。INT8精度を維持しながら高い精度を保つ方法を紹介します。
量子化認識トレーニング(QAT)は、機械学習モデルのトレーニング段階で使用される専門的な手法で、低精度環境に対応できるようモデルを準備します。標準的なディープラーニングワークフローでは、モデルは通常、高精度の32ビット浮動小数点数(FP32)を使用して動作します。この精度は優れた精度を提供しますが、特にエッジデバイスでは、計算コストとメモリ使用量が大きくなる可能性があります。QATでは、モデルがまだトレーニング中の段階で、8ビット整数(INT8)のような形式に精度を下げる量子化の影響をシミュレーションします。学習プロセス中にこれらの量子化誤差を導入することで、モデルは重みを適応させ、トレーニング後の変換で失われる可能性のある精度を効果的に回復できるようになります。
エッジデプロイメントでQATが重要な理由#
リソースに制約のあるデバイスにコンピュータービジョンモデルをデプロイするには、多くの場合、速度と性能のバランスが必要です。ポストトレーニング量子化(PTQ)として知られる標準的な量子化手法では、モデルのトレーニングが完全に終了した後にのみ精度を下げます。PTQは高速ですが、ニューラルネットワークの重みが調整の機会なく大幅に変更されるため、繊細なモデルでは精度が低下することがあります。
QATは、モデルが量子化された状態を「練習」できるようにすることで、この問題を解決します。トレーニングのフォワードパスでは、重みとアクティベーションが低精度の値としてシミュレーションされます。これにより、勾配降下プロセスは、量子化された状態での損失を最小限に抑える方法でモデルパラメーターを更新できます。その結果、マイクロコントローラーやモバイルプロセッサーなどのハードウェアにデプロイした場合でも、高い精度を維持する堅牢なモデルが得られます。
QATとポストトレーニング量子化(PTQ)の違い#
QATとモデル量子化、特にポストトレーニング量子化(PTQ)の違いを理解しておくと役立ちます。
- ポストトレーニング量子化(PTQ): モデルはFP32で通常どおりトレーニングされます。トレーニング完了後、重みがINT8に変換されます。これは高速で再トレーニングも不要ですが、複雑なアーキテクチャでは精度の低下が大きくなる可能性があります。
- 量子化認識トレーニング(QAT): ファインチューニング段階で量子化プロセスをエミュレーションします。モデルは低精度によって生じるノイズに対応できるよう内部パラメーターを調整するため、通常、PTQよりも高い精度が得られます。
実世界での利用例#
QATは、エッジハードウェア上でのリアルタイム推論が重要な業界に不可欠です。
- 自律型ドローン: AIドローン運用では、バッテリー駆動時間と機上の処理能力が大幅に制限されます。QATによって最適化されたモデルを使用するドローンは、INT8アクセラレーターを使用しながら障害物の検出や物体の追跡を高精度で実行でき、FP32モデルと比較して飛行時間を大幅に延長できます。
- スマートリテールカメラ: スーパーマーケットでは、棚の商品在庫の監視やレジ待ち列の管理に小売業におけるコンピュータービジョンを使用します。これらのシステムは、多くの場合、低消費電力のエッジゲートウェイ上で動作します。QATにより、これらのデバイスで動作する物体検出モデルは、高額なクラウド接続を必要とせず、類似した商品を識別するために必要な精度を維持できます。
UltralyticsでQATを実装する#
UltralyticsプラットフォームとYOLOエコシステムは、モデルを量子化形式にエクスポートする機能をサポートしています。QATは複雑なトレーニング手順ですが、最新のフレームワークによって、量子化推論に向けたモデルの準備が容易になります。
以下は、トレーニング済みのYOLO26モデルをINT8量子化TFLite形式にエクスポートする例です。この形式は、効率的なエッジデプロイメントのために量子化の原理を利用します。
from ultralytics import YOLO
# Load a trained YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format with INT8 quantization
# This prepares the model for efficient execution on edge devices
model.export(format="tflite", int8=True)エッジエコシステムとの統合#
量子化技術によって最適化されたモデルは、専用の推論エンジン上で動作するように設計されています。QATでトレーニングされたモデルは、クロスプラットフォーム互換性のためにONNX Runtimeを使用してデプロイされることが多く、Intelハードウェア上での最適化にはOpenVINOが使用されます。これにより、対象がRaspberry Piであっても専用のEdge TPUであっても、モデルを可能な限り高い効率と速度で動作させることができます。
QATに関連する主要概念#
QATを十分に理解するには、関連するいくつかの機械学習概念に慣れておくと役立ちます。
- 精度: 数値の表現に使用される詳細度を指します。半精度(FP16)とINT8は、量子化の一般的な対象です。
- キャリブレーション: 浮動小数点数を整数に効果的にマッピングするために、動的なアクティベーション値の範囲(最小値/最大値)を決定するプロセスです。これは、量子化されたYOLOモデルのデプロイにおける重要なステップです。
- 推論レイテンシ: QATの主な利点の1つは推論レイテンシを短縮できることであり、リアルタイムシステムでの意思決定を高速化できます。
- ファインチューニング: QATは、ゼロからトレーニングするのではなく、事前トレーニング済みモデルに対するファインチューニングのステップとして実行されることが多く、計算リソースを節約できます。
量子化認識トレーニングをMLOpsパイプラインに統合することで、開発者は高精度な研究モデルと、高効率で本番環境に対応したエッジAIアプリケーションの間のギャップを埋めることができます。









