モデルの量子化でAIのパフォーマンスを最適化。サイズを縮小し、速度を向上させ、エネルギー効率を改善することで、実世界での展開を実現します。
モデルの量子化は、ニューラルネットワーク(NN)の重みと活性度を高精度の浮動小数点数(32ビット浮動小数点またはFP32など)から8ビット整数(INT8)などの低精度のデータ型に変換することで、メモリフットプリントと計算コストを削減する強力なモデル最適化手法です。この処理により、モデルの大幅な小型化と高速化が実現し、携帯電話や組み込みシステムのようなリソースに制約のあるハードウェアへの展開が可能になります。主な目標は、モデルの予測精度への影響を最小限に抑えながら、パフォーマンス、特に推論レイテンシを向上させることである。
量子化プロセスでは、学習済みモデル内の連続的な浮動小数点値の範囲を、より小さな離散的な整数値のセットにマッピングします。この変換により、各パラメータの格納に必要なビット数が削減され、モデル全体のサイズが縮小されます。さらに、低精度の整数を使用した計算は、多くの最新のCPUや、整数演算専用の命令を持つGPUや TPUなどの特殊なAIアクセラレータではるかに高速になります。
量子化には主に2つの方法がある:
量子化は、実世界のシナリオ、特にエッジAIデバイス上で高度なコンピュータビジョンモデルを実行するために不可欠である。
モデル量子化は、他の最適化手法と並行して用いられることが多いが、そのアプローチは独特である。
量子化は非常に有益ですが、モデルの精度に影響を与える可能性があります。パフォーマンスのトレードオフが許容範囲内であることを確認するために、量子化後に関連するパフォーマンス・メトリクスを用いて徹底的な評価を行うことが不可欠です。
Ultralyticsは、量子化に適したフォーマットへのエクスポートをサポートすることで、量子化モデルの展開を容易にします。これらのフォーマットには、幅広い互換性のためのONNX、Intelハードウェア上での最適化のためのOpenVINO、NVIDIA GPU上での高いパフォーマンスのためのTensorRTが含まれます。Ultralytics HUBのようなプラットフォームは、トレーニングから最適化されたモデルのデプロイまで、ライフサイクル全体の管理を支援します。Neural Magicのようなツールとの統合は、量子化とプルーニングを活用して、CPU上でGPUクラスのパフォーマンスを達成することもできます。