Quantization-Aware Training (QAT)
Quantization-Aware Training(QAT)がエッジデプロイメントのためにUltralytics YOLO26モデルをどのように最適化するかを学びます。INT8精度で高い精度を維持する方法を発見しましょう。
量子化対応トレーニング (QAT) は、機械学習モデルのトレーニング段階で使用される特殊な手法で、低精度環境に向けてモデルを準備するために用いられます。標準的な ディープラーニング ワークフローでは、モデルは通常、高精度の32ビット浮動小数点数 (FP32) を使用して動作します。この精度は優れた正確性を提供しますが、特にエッジデバイスでは計算コストやメモリ消費が大きくなる可能性があります。QATは、モデルのトレーニング中に、8ビット整数 (INT8) などの形式へ精度を落とす量子化の影響をシミュレートします。学習プロセスにこれらの量子化誤差を導入することで、モデルは重みを適応させ、トレーニング後の変換で失われる可能性のある精度を効果的に回復する方法を学習します。
Link to this sectionエッジ展開においてQATが重要である理由#
リソースが制限されたデバイスに コンピュータビジョンモデル を展開する場合、多くの場合、速度とパフォーマンスのバランスが求められます。トレーニング後量子化 (PTQ) として知られる標準的な量子化手法は、モデルが完全にトレーニングされた後にのみ精度低減を適用します。PTQは高速ですが、ニューラルネットワーク の重みが調整の機会なしに大幅に変更されるため、センシティブなモデルの精度を低下させることがあります。
QATは、モデルに量子化の「練習」をさせることでこの問題を解決します。トレーニングのフォワードパス中に、重みと活性化値は低精度値としてシミュレートされます。これにより、勾配降下法 プロセスは、量子化された状態に対して損失を最小化するようにモデルパラメータを更新できます。その結果、マイクロコントローラ やモバイルプロセッサなどのハードウェアに展開した場合でも、高い精度を維持する堅牢なモデルが作成されます。
Link to this sectionQATとトレーニング後量子化 (PTQ) の違い#
QATを モデル量子化、特にトレーニング後量子化 (PTQ) と区別することは有益です:
- トレーニング後量子化 (PTQ): モデルはFP32で通常通りトレーニングされます。トレーニング完了後、重みがINT8に変換されます。これは高速で再トレーニングを必要としませんが、複雑なアーキテクチャでは精度の低下が大きくなる可能性があります。
- 量子化対応トレーニング (QAT): 量子化プロセスはファインチューニング段階でエミュレートされます。モデルは低精度によって導入されるノイズに対応するために内部パラメータを調整し、通常はPTQよりも優れた 精度 を発揮します。
Link to this section実社会での応用#
QATは、エッジハードウェアでのリアルタイム推論が不可欠な業界にとって極めて重要です。
- 自律型ドローン: AIドローン運用 においては、バッテリー寿命とオンボード処理能力が厳しく制限されます。QATで最適化されたモデルを使用するドローンは、INT8アクセラレータを使用しながら障害物検知や物体追跡を高精度で行うことができ、FP32モデルと比較して飛行時間を大幅に延長できます。
- スマートリテールカメラ: スーパーマーケットでは、棚の在庫監視やレジの行列管理に 小売向けコンピュータビジョン を活用しています。これらのシステムは、多くの場合、低電力のエッジゲートウェイで実行されます。QATは、これらのデバイスで実行される 物体検知 モデルが、高価なクラウド接続を必要とせずに、類似した製品を識別するために必要な精度を維持することを可能にします。
Link to this sectionUltralyticsでのQATの実装#
Ultralytics Platform と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)Link to this sectionエッジエコシステムとの統合#
量子化手法によって最適化されたモデルは、特殊な推論エンジン上で実行されるように設計されています。QATトレーニング済みモデルは、クロスプラットフォーム互換性を確保するために ONNX Runtime を使用したり、Intelハードウェアでの最適化のために OpenVINO を使用して展開されることがよくあります。これにより、ターゲットが Raspberry Pi であろうと、専用の Edge TPU であろうと、モデルは可能な限り最高の効率と速度で動作します。
Link to this sectionQATに関連する主要な概念#
QATを完全に理解するには、以下のいくつかの関連する機械学習の概念に精通しておくと役立ちます:
- 精度 (Precision): 数値を表現するために使用される詳細レベルを指します。半精度 (FP16) およびINT8は、量子化の一般的なターゲットです。
- キャリブレーション: 浮動小数点数を整数に効果的にマッピングするために、動的な活性化値の範囲 (最小値/最大値) を決定するプロセスです。これは 量子化されたYOLOモデルの展開 における重要なステップです。
- 推論レイテンシ: QATの主な利点の1つは 推論レイテンシ を短縮し、リアルタイムシステムでの意思決定を高速化できることです。
- ファインチューニング: QATは、ゼロからトレーニングするのではなく、トレーニング済みモデルに対する ファインチューニング ステップとして実行されることが多く、計算リソースを節約します。
量子化対応トレーニングを MLOps パイプラインに統合することで、開発者は高精度の研究用モデルと、非常に効率的で本番環境対応のエッジAIアプリケーションとのギャップを埋めることができます。






