YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

モデル量子化

モデル量子化がエッジAIのためにUltralytics YOLO26をどのように最適化するかを学びましょう。メモリを削減し、レイテンシを低減し、より高速な推論のためにINT8モデルをエクスポートする方法を発見してください。

モデル量子化は、深層学習モデルの実行における計算コストとメモリコストを削減するために使用される、高度な モデル最適化手法です。標準的なトレーニングワークフローでは、ニューラルネットワークは通常、パラメータ(重みとバイアス)および活性化マップを32ビット浮動小数点数(FP32)を使用して保存します。この高精度はトレーニング中の正確な計算を保証しますが、推論にはしばしば不要です。量子化はこれらの値を、16ビット浮動小数点(FP16)や8ビット整数(INT8)などの低精度フォーマットに変換し、 精度を大幅に損なうことなく、モデルサイズを効果的に縮小し、実行速度を加速させます。

なぜ量子化が重要なのか

量子化の主な推進力は、リソースが限られたハードウェアに強力なAIをデプロイする必要性です。コンピュータービジョンモデル、例えばYOLO26などがより複雑になるにつれて、その計算要件は増加します。量子化は、3つの重要なボトルネックに対処します。

  • メモリフットプリント: 重みのビット幅を削減する(例:32ビットから8ビットへ)ことで、モデルのストレージ要件は最大4倍削減されます。これは、アプリケーションサイズが制限されるモバイルアプリにとって不可欠です。
  • 推論レイテンシ: 低精度演算は計算コストが低いです。現代のプロセッサ、特に特殊なニューラルプロセッシングユニット(NPU)を搭載したものは、INT8演算をFP32よりもはるかに高速に実行でき、推論レイテンシを大幅に削減します。
  • 消費電力: メモリを介して移動するデータ量を減らし、より単純な算術演算を実行することで消費エネルギーが削減され、ポータブルデバイスや自動運転車のバッテリー寿命が延長されます。

関連概念との比較

量子化は他の最適化手法とは区別することが重要である。なぜなら、それらはモデルを異なる方法で変更するからである:

  • 量子化 vs. プルーニング: 量子化がパラメータのビット幅を減らすことでファイルサイズを削減するのに対し、モデルプルーニングは不要な接続(重み)を完全に削除してスパースなネットワークを作成します。プルーニングはモデルの構造を変更し、量子化はデータ表現を変更します。
  • 量子化と知識蒸留の比較: 知識蒸留とは、小さな「生徒」モデルが大きな「教師」モデルを模倣するように学習する トレーニング手法である。量子化は蒸留後に生徒モデルに適用されることが多く、 エッジAIの性能をさらに向上させる。

実際のアプリケーション

量子化は、効率が最重要視される様々な産業において、コンピュータビジョンとAIを可能にします。

  1. 自律システム: 自動車産業では、自動運転車はカメラとLiDARからの視覚データをリアルタイムで処理する必要があります。NVIDIA TensorRTエンジンにデプロイされた量子化モデルにより、これらの車両はミリ秒単位の遅延で歩行者や障害物をdetectでき、乗客の安全を確保します。
  2. スマート農業:マルチスペクトルカメラを搭載したドローンは、量子化された物体検出モデルを用いて作物の病害を特定したり生育段階を監視したりする。これらのモデルをドローンの組み込みシステム上でローカルに実行することで、遠隔地における不安定な携帯電話回線への依存を解消する。

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 OpenVINOなどの高性能推論エンジンを用いてデプロイされ、多様なハードウェアエコシステム間で広範な互換性を確保します。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。