量子化対応トレーニング(QAT)Ultralytics モデルをエッジ展開向けに最適化する方法を学びましょう。INT8精度で高精度を維持する手法を発見してください。
量子化対応トレーニング(QAT)は、機械学習モデルのトレーニング段階で用いられる特殊な技術であり、低精度環境への対応を目的とする。標準的な深層学習ワークフローでは、モデルは通常高精度な32ビット浮動小数点数(FP32)を用いて動作する。この精度は優れた精度を提供する一方で、特にエッジデバイス上では計算コストが高くメモリを大量に消費する可能性がある。 QATは、モデルがまだ学習中の段階で、8ビット整数(INT8)などの形式へ精度を低下させる量子化の影響をシミュレートします。学習プロセス中にこれらの量子化誤差を導入することで、モデルは重みを適応させ、学習後の変換で失われる可能性のある精度を効果的に回復することを学びます。
リソース制約のあるデバイスへの コンピュータビジョンモデルの展開では、 速度と性能のバランスが求められることが多い。 標準的な量子化手法である ポストトレーニング量子化(PTQ)は、 モデルが完全に学習された後にのみ 精度削減を適用する。 PTQは高速である一方、 ニューラルネットワークの重みが 調整の機会なく大幅に変化するため、 感度の高いモデルの精度を 低下させることがある。
QATはこの問題を、モデルが量子化される状態を「練習」できるようにすることで解決します。 トレーニングの順方向伝播において、 重みと活性化関数は低精度値としてシミュレートされる。これにより勾配降下法が、 量子化状態に特化した損失を最小化する形で モデルパラメータを更新できるようになる。結果として得られる堅牢なモデルは、 マイクロコントローラーやモバイルプロセッサといったハードウェアに展開した場合でも 高い精度を維持する。
QATとモデル量子化、特に学習後量子化(PTQ)を区別することが有用である:
QATは、エッジハードウェア上でのリアルタイム推論が重要な産業において不可欠である。
Ultralytics YOLO 、モデルの量子化形式へのエクスポートをサポートしています。QATは複雑なトレーニング手順ですが、最新のフレームワークは量子化推論に向けたモデルの事前処理を容易にします。
以下は、学習済みYOLO26モデルをINT8量子化TFLite にエクスポートする例です。 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 を使用してデプロイされることが多く、あるいは OpenVINO による最適化Intel 。これにより、 ターゲットがRaspberry Piであれ専用 EdgeTPUであれ、モデルが可能な限り最高の 効率と速度で動作することが保証される。
QATを完全に理解するには、いくつかの関連する機械学習の概念に精通していることが役立ちます:
量子化対応トレーニングをMLOpsパイプラインに統合することで、開発者は高精度な研究モデルと、高効率で実運用可能なエッジAIアプリケーションとの間のギャップを埋めることができます。