協調的最適化

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

ArmMLToolingによって維持されます

このドキュメントでは、さまざまな手法を組み合わせて機械学習モデルを最適化してデプロイするための実験的なAPIの概要を説明します。

概要

協調的最適化は、展開時に、推論速度、モデルサイズ、精度などのターゲット特性の最適なバランスを示すモデルを作成するためのさまざまな手法を含む包括的なプロセスです。

協調的最適化の考え方は、累積された最適化効果を達成するために、それらを次々に適用することによって個々の技術に基づいて構築することです。次の最適化のさまざまな組み合わせが可能です。

これらの手法を連鎖させようとするときに発生する問題は、通常、1つを適用すると前の手法の結果が破壊され、すべてを同時に適用することの全体的な利点が損なわれることです。たとえば、クラスタリングでは、プルーニングAPIによって導入されたスパース性は保持されません。この問題を解決するために、次の実験的な協調最適化手法を紹介します。

これらは、機械学習モデルを圧縮し、推論時にハードウェアアクセラレーションを利用するために使用できるいくつかの展開パスを提供します。次の図は、目的のデプロイメント特性を持つモデルを検索するために探索できるいくつかのデプロイメントパスを示しています。ここで、リーフノードはデプロイメント対応モデルです。つまり、部分的または完全に量子化され、tflite形式です。緑の塗りつぶしは、再トレーニング/微調整が必​​要なステップを示し、赤い破線の境界線は、協調的な最適化ステップを強調しています。特定のノードでモデルを取得するために使用される手法は、対応するラベルに示されています。

collaborative optimization

上の図では、直接的な量子化のみ(トレーニング後またはQAT)の展開パスが省略されています。

アイデアは、上記のデプロイメントツリーの第3レベルで完全に最適化されたモデルに到達することです。ただし、他のレベルの最適化はどれも満足のいくものであり、必要な推論の待ち時間と精度のトレードオフを達成できます。その場合、それ以上の最適化は必要ありません。推奨されるトレーニングプロセスは、ターゲット展開シナリオに適用可能な展開ツリーのレベルを繰り返し調べ、モデルが推論レイテンシ要件を満たしているかどうかを確認し、満たさない場合は、対応する協調的最適化手法を使用してモデルをさらに圧縮し、繰り返すことです。必要に応じて、モデルが完全に最適化(プルーニング、クラスター化、および量子化)されるまで。

次の図は、協調的最適化パイプラインを通過するサンプルウェイトカーネルの密度プロットを示しています。

collaborative optimization density plot

その結果、トレーニング時に指定されたターゲットのスパース性に応じて、一意の値の数が減り、スパースウェイトの数が大幅に増える量子化された展開モデルが得られます。モデル圧縮の重要な利点に加えて、特定のハードウェアサポートは、これらのスパースなクラスター化されたモデルを利用して、推論の待ち時間を大幅に短縮できます。

結果

以下は、PQATとCQATの協調的最適化パスを実験したときに得られた精度と圧縮の結果です。

スパース性を維持する量子化認識トレーニング(PQAT)

モデルアイテムベースライン剪定モデル(50%のスパース性) QATモデルPQATモデル
DS-CNN-L FP32Top1の精度95.23% 94.80% (偽のINT8)94.721% (偽のINT8)94.128%
INT8完全整数量子化94.48% 93.80% 94.72% 94.13%
圧縮528,128→434,879(17.66%) 528,128→334,154(36.73%) 512,224→403,261(21.27%) 512,032→303,997(40.63%)
Mobilenet_v1-224 FP32トップ1の精度70.99% 70.11% (偽のINT8)70.67% (偽のINT8)70.29%
INT8完全整数量子化69.37% 67.82% 70.67% 70.29%
圧縮4,665,520→3,880,331(16.83%) 4,665,520→2,939,734(37.00%) 4,569,416→3,808,781(16.65%) 4,569,416→2,869,600(37.20%)

クラスター保存量子化認識トレーニング(CQAT)

モデルアイテムベースラインクラスター化モデルQATモデルCQATモデル
CIFAR-10のMobilenet_v1 FP32Top1の精度94.88% 94.48% (偽のINT8)94.80% (偽のINT8)94.60%
INT8完全整数量子化94.65% 94.41% 94.77% 94.52%
サイズ3.00 MB 2.00 MB 2.84 MB 1.94 MB
ImageNetのMobilenet_v1 FP32トップ1の精度71.07% 65.30% (偽のINT8)70.39% (偽のINT8)65.35%
INT8完全整数量子化69.34% 60.60% 70.35% 65.42%
圧縮4,665,568→3,886,277(16.7%) 4,665,568→3,035,752(34.9%) 4,569,416→3,804,871(16.7%) 4,569,472→2,912,655(36.25%)

チャネルごとにクラスター化されたモデルのCQATおよびPCQATの結果

以下の結果は、チャネルごとの手法クラスタリングで得られたものです。モデルの畳み込み層がチャネルごとにクラスター化されている場合、モデルの精度が高くなることを示しています。モデルに多くの畳み込み層がある場合は、チャネルごとにクラスター化することをお勧めします。圧縮率は同じままですが、モデルの精度は高くなります。モデル最適化パイプラインは、実験では「クラスター化->クラスター保存QAT->トレーニング後の量子化、int8」です。

モデルクラスター化->CQAT、int8量子化チャネルごとにクラスター化->CQAT、int8量子化
DS-CNN-L 95.949% 96.44%
MobileNet-V2 71.538% 72.638%
MobileNet-V2(剪定) 71.45% 71.901%

ここで説明するコラボレーション最適化手法のエンドツーエンドの例については、 CQATPQATスパース性を維持するクラスタリング、およびPCQATのサンプルノートブックを参照してください。