SonySemiconductorSolutions/mct-model-optimization
Model Compression Toolkit (MCT) is an open source project for neural network model optimization under efficient, constrained hardware. This project provides researchers, developers, and engineers advanced quantization and compression tools for deploying state-of-the-art neural networks.
解決する課題
MCT (Model Compression Toolkit) は、学習済みAIモデルを圧縮し、スマートフォン、カメラ、組み込みハードウェアなどのエッジデバイス上で高速かつ低メモリで動作させるためのツールです。大規模なニューラルネットワークを、精度を損なうことなく小型で量子化されたバージョンに変換することで、計算リソースやストレージが制限されたデバイスへのデプロイという課題を解決します。
仕組み
まず、学習済みの浮動小数点モデル(PyTorchまたはKeras)を用意します。MCTは、複雑さと品質のトレードオフが異なる3つの主要な量子化フローを提供します。
- Post-Training Quantization (PTQ):低複雑度、CPUで約1〜10分、再学習不要。
- Gradient-based Post-Training Quantization (GPTQ):中複雑度、勾配を使用してパラメータを微調整、GPUで約1〜3時間。
- Quantization-Aware Training (QAT):高複雑度、精度を維持するためにGPUで12〜36時間かけてモデルを再学習。
MCTには、各レイヤーに最適なビット幅を選択する混合精度探索、グラフ最適化、量子化閾値調整(MSE、no-clipping、MAE)、およびshift-negative correction、outlier filtering、clusteringなどの高度なアルゴリズムが含まれています。ハードウェアを認識しており、TPC (Target Platform Capabilities) 機能を使用して特定のハードウェアの制約を記述できます。代表的なデータセットがない場合、MCTはbatch-normalization層に保存された統計情報から合成画像を生成できます。モデルサイズ削減のために、冗長なチャネルを削除する構造的剪定も提供します。デバッグと可視化は、ネットワークエディタ、TensorBoardレポート、およびレイヤーごとの誤差を表示して修正を提案するXQuant説明可能量子化ツールによってサポートされています。
対象ユーザー
リソースが制限されたデバイス上で学習済みニューラルネットワークをデプロイする必要がある、エッジAIアプリケーションに取り組むエンジニアや研究者。また、PyTorchやKeras環境で作業し、精度を高く保ちながらモデルサイズやレイテンシを削減したいすべての方に適しています。
主な特徴
- 3つの量子化ワークフローをサポート:PTQ、GPTQ、QAT。
- Target Platform Capabilities (TPC) によるハードウェア認識最適化。
- レイヤーごとに最適なビット幅を割り当てる混合精度探索。
- batch-norm統計情報からの合成データ生成によるデータフリー量子化。
- モデルサイズを縮小するための冗長チャネルを削除する構造的剪定。
- デバッグツール:ネットワークエディタ、TensorBoard可視化、XQuant説明可能レポート。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト