Quantization-Aware Training (QAT)
Quantization-Aware Training(QAT)がエッジデプロイメントのためにUltralytics YOLO26モデルをどのように最適化するかを学びます。INT8精度で高い精度を維持する方法を発見しましょう。
Quantization-Aware Training (QAT) は、機械学習モデルのトレーニングフェーズで使用される特殊な技術であり、低精度環境に向けてモデルを準備します。標準的な deep learning ワークフローでは、モデルは通常、高精度な 32 ビット浮動小数点数 (FP32) を使用して動作します。この精度は優れた精度を提供しますが、特にエッジデバイスでは計算コストが高く、メモリ集約型になる可能性があります。QAT は、モデルのトレーニング中に量子化の効果(8 ビット整数 (INT8) などのフォーマットへの精度の低下)をシミュレートします。学習プロセス中にこれらの量子化誤差を導入することで、モデルはその重みを適応させ、ポストトレーニング変換で失われる可能性のある精度を効果的に回復する方法を学習します。
エッジ展開においてQATが重要である理由#
computer vision models をリソース制限のあるデバイスにデプロイするには、多くの場合、速度とパフォーマンスのバランスが必要です。ポストトレーニング量子化 (PTQ) として知られる標準的な量子化手法は、モデルが完全にトレーニングされた後にのみ精度低減を適用します。neural network の重みが調整の機会なしに大幅に変更されるため、PTQ は高速ですが、敏感なモデルの精度を低下させることがあります。
QAT は、モデルに量子化の「練習」をさせることでこれを解決します。トレーニングのフォワードパス中、重みと活性化は低精度値としてシミュレートされます。これにより、gradient descent プロセスは、量子化された状態に特化して損失を最小限に抑える方法でモデルパラメータを更新できます。その結果、microcontrollers やモバイルプロセッサなどのハードウェアにデプロイされた場合でも、高い精度を維持する頑健なモデルが生成されます。
QATとトレーニング後量子化 (PTQ) の違い#
QAT を model quantization、特にポストトレーニング量子化 (PTQ) と区別すると便利です。
- トレーニング後量子化 (PTQ): モデルはFP32で通常通りトレーニングされます。トレーニング完了後、重みがINT8に変換されます。これは高速で再トレーニングを必要としませんが、複雑なアーキテクチャでは精度の低下が大きくなる可能性があります。
- Quantization-Aware Training (QAT): ファインチューニング段階で量子化プロセスがエミュレートされます。モデルは、低精度によって導入されるノイズに対応するために内部パラメータを調整し、通常は PTQ よりも優れた accuracy をもたらします。
実社会での応用#
QATは、エッジハードウェアでのリアルタイム推論が不可欠な業界にとって極めて重要です。
- Autonomous Drones: AI drone operations では、バッテリー寿命とオンボードの処理能力が厳しく制限されます。QAT によって最適化されたモデルを使用するドローンは、INT8 アクセラレータを使用しながら高精度で障害物を検出したりオブジェクトを追跡したりできるため、FP32 モデルと比較して飛行時間が大幅に延長されます。
- Smart Retail Cameras: スーパーマーケットでは、computer vision in retail を使用して棚の在庫を監視したり、レジ待ちの列を管理したりしています。これらのシステムは、多くの場合、低電力のエッジゲートウェイで実行されます。QAT により、これらのデバイスで実行されている object detection モデルは、高価なクラウド接続を必要とせずに、類似した製品を区別するために必要な精度を維持できます。
Ultralyticsでの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)エッジエコシステムとの統合#
量子化技術によって最適化されたモデルは、特殊な推論エンジン上で実行するように設計されています。QAT でトレーニングされたモデルは、クロスプラットフォームの互換性のために ONNX Runtime を使用して、または Intel ハードウェアでの最適化のために OpenVINO を使用して頻繁にデプロイされます。これにより、ターゲットが Raspberry Pi であるか専用の Edge TPU であるかに関係なく、モデルが可能な限り高い効率と速度で動作することが保証されます。
QATに関連する主要な概念#
QATを完全に理解するには、以下のいくつかの関連する機械学習の概念に精通しておくと役立ちます:
- Precision: 数値を表すために使用される詳細のレベルを指します。Half-precision (FP16) と INT8 は、量子化の一般的なターゲットです。
- Calibration: 浮動小数点数を整数に効果的にマップするために、動的な活性化値の範囲 (最小/最大) を決定するプロセス。これは、deploying quantized YOLO models における重要なステップです。
- Inference Latency: QAT の主な利点の 1 つは、inference latency を削減することであり、リアルタイムシステムでのより迅速な意思決定を可能にします。
- Fine-Tuning: QAT は、ゼロからトレーニングするのではなく、事前トレーニングされたモデルに対する fine-tuning ステップとして実行されることが多く、計算リソースを節約します。
Quantization-Aware Training を MLOps パイプラインに統合することで、開発者は高精度のリサーチモデルと、非常に効率的な本番環境対応のエッジ AI アプリケーションとの間のギャップを埋めることができます。






