Model Quantization
モデル量子化(model quantization)がどのようにエッジ AI 用に Ultralytics YOLO26 を最適化するかを学びます。メモリを削減しレイテンシを下げ、高速な推論のために INT8 モデルをエクスポートする方法を発見してください。
モデル量子化は、ディープラーニングモデルの実行における計算コストとメモリコストを削減するために使用される高度なモデル最適化テクニックです。標準的なトレーニングワークフローでは、ニューラルネットワークは通常、パラメータ(重みとバイアス)および活性化マップを32ビット浮動小数点数(FP32)を使用して保存します。この高精度はトレーニング中の正確な計算を保証しますが、推論においては多くの場合不要です。量子化は、これらの値を16ビット浮動小数点(FP16)や8ビット整数(INT8)などの低精度フォーマットに変換し、精度を大幅に損なうことなく、モデルサイズの効果的な縮小と実行速度の高速化を実現します。
量子化が重要な理由#
量子化の主な推進力は、リソースが制限されたハードウェア上で強力なAIを展開する必要性です。YOLO26のようなコンピュータビジョンモデルが複雑化するにつれて、その計算要求も増加します。量子化は、以下の3つの重要なボトルネックに対処します。
- メモリフットプリント: 重みのビット幅を(例えば32ビットから8ビットへ)削減することで、モデルのストレージ要件が最大4倍削減されます。これは、アプリケーションサイズが制限されるモバイルアプリにとって不可欠です。
- 推論レイテンシ: 低精度演算は計算コストが低くなります。最新のプロセッサ、特に特殊なニューラルプロセッシングユニット (NPU)を備えたプロセッサは、INT8演算をFP32よりもはるかに高速に実行でき、推論レイテンシを大幅に削減します。
- 消費電力: メモリを通過するデータ量を減らし、より単純な算術演算を実行することでエネルギー消費が抑えられ、ポータブルデバイスや自動運転車のバッテリー寿命が延びます。
関連概念との比較#
量子化と他の最適化手法を区別することは重要です。これらはそれぞれ異なる方法でモデルを修正するためです。
- 量子化とプルーニング: 量子化がパラメータのビット幅を縮小してファイルサイズを削減するのに対し、モデルプルーニングは不要な接続(重み)を完全に削除してスパースネットワークを作成します。プルーニングがモデルの構造を変更するのに対し、量子化はデータ表現を変更します。
- 量子化と知識蒸留: 知識蒸留は、小型の「生徒」モデルが大型の「教師」モデルの模倣を学習するトレーニング手法です。量子化は、エッジAIのパフォーマンスをさらに向上させるために、蒸留後に生徒モデルによく適用されます。
実社会での応用#
量子化により、効率性が最優先されるさまざまな業界においてコンピュータビジョンとAIの活用が可能になります。
-
自律システム: 自動車業界では、自動運転車がカメラやLiDARからの視覚データをリアルタイムで処理する必要があります。NVIDIA TensorRTエンジンにデプロイされた量子化モデルにより、これらの車両はミリ秒単位のレイテンシで歩行者や障害物を検出し、乗客の安全を確保できます。
-
スマート農業: マルチスペクトラルカメラを搭載したドローンは、量子化されたオブジェクト検出モデルを使用して、作物病害の特定や生育ステージのモニタリングを行います。これらのモデルをドローンの組み込みシステム上でローカルに実行することで、通信環境の悪い遠隔地での不安定なセルラー接続が不要になります。
Ultralyticsを使用した量子化の実装#
Ultralyticsライブラリはエクスポートプロセスを簡素化し、最先端のYOLO26などのモデルを量子化フォーマットに変換できるようにします。また、Ultralytics Platformは、これらのデプロイメントをシームレスに管理するためのツールを提供します。
次の例は、INT8量子化を有効にしてモデルをTFLiteにエクスポートする方法を示しています。このプロセスには、モデルがサンプルデータを観察して量子化された値の最適なダイナミックレンジを決定するキャリブレーションステップが含まれます。
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")最適化されたモデルは、ONNXのような相互運用可能な標準や、OpenVINOなどの高性能な推論エンジンを使用して頻繁にデプロイされ、多様なハードウェアエコシステム全体での幅広い互換性を確保します。






