Kollaborative Optimierung

Verwaltet von Arm ML Tooling

Dieses Dokument bietet eine Übersicht über experimentelle APIs zum Kombinieren verschiedener Techniken zur Optimierung von Modellen für maschinelles Lernen für die Bereitstellung.

Überblick

Die kollaborative Optimierung ist ein übergreifender Prozess, der verschiedene Techniken umfasst, um ein Modell zu erstellen, das bei der Bereitstellung die beste Balance zwischen Zielmerkmalen wie Inferenzgeschwindigkeit, Modellgröße und Genauigkeit aufweist.

Die Idee der kollaborativen Optimierung besteht darin, auf einzelnen Techniken aufzubauen, indem sie nacheinander angewendet werden, um den akkumulierten Optimierungseffekt zu erzielen. Verschiedene Kombinationen der folgenden Optimierungen sind möglich:

Das Problem, das beim Versuch, diese Techniken miteinander zu verketten, auftaucht, besteht darin, dass die Anwendung einer Methode normalerweise die Ergebnisse der vorherigen Technik zerstört und den Gesamtnutzen der gleichzeitigen Anwendung aller Techniken verdirbt. Clustering bewahrt beispielsweise nicht die durch die Bereinigungs-API eingeführte Sparsity. Um dieses Problem zu lösen, führen wir die folgenden experimentellen kollaborativen Optimierungstechniken ein:

Diese bieten mehrere Bereitstellungspfade, die verwendet werden können, um ein Modell für maschinelles Lernen zu komprimieren und die Hardwarebeschleunigung zum Zeitpunkt der Inferenz zu nutzen. Das folgende Diagramm zeigt mehrere Bereitstellungspfade, die bei der Suche nach dem Modell mit den gewünschten Bereitstellungsmerkmalen untersucht werden können, wobei die Blattknoten Bereitstellungsbereite Modelle sind, d. h., sie sind teilweise oder vollständig quantisiert und im Tflite-Format. Die grüne Füllung zeigt Schritte an, bei denen eine Umschulung/Feinabstimmung erforderlich ist, und eine gestrichelte rote Umrandung hebt die kollaborativen Optimierungsschritte hervor. Die Technik, die verwendet wird, um ein Modell an einem gegebenen Knoten zu erhalten, ist in dem entsprechenden Etikett angegeben.

collaborative optimization

Der direkte Bereitstellungspfad nur für die Quantisierung (nach dem Training oder QAT) wurde in der obigen Abbildung weggelassen.

Die Idee ist, das vollständig optimierte Modell auf der dritten Ebene des obigen Bereitstellungsbaums zu erreichen; jedoch könnte sich jedes der anderen Optimierungsniveaus als zufriedenstellend erweisen und den erforderlichen Kompromiss zwischen Inferenz-Latenz/Genauigkeit erreichen, in welchem ​​Fall keine weitere Optimierung erforderlich ist. Der empfohlene Trainingsprozess besteht darin, iterativ die Ebenen des Bereitstellungsbaums zu durchlaufen, die für das Zielbereitstellungsszenario anwendbar sind, und zu sehen, ob das Modell die Anforderungen an die Inferenzlatenz erfüllt, und wenn nicht, die entsprechende kollaborative Optimierungstechnik zu verwenden, um das Modell weiter zu komprimieren und zu wiederholen bis das Modell vollständig optimiert (beschnitten, geclustert und quantisiert) ist, falls erforderlich.

Die folgende Abbildung zeigt die Dichtediagramme des Stichprobengewichtungskernels, die die kollaborative Optimierungspipeline durchlaufen.

collaborative optimization density plot

Das Ergebnis ist ein quantisiertes Bereitstellungsmodell mit einer reduzierten Anzahl eindeutiger Werte sowie einer signifikanten Anzahl von Sparse-Gewichtungen, abhängig von der zum Trainingszeitpunkt festgelegten Zielsparsity. Abgesehen von den erheblichen Vorteilen der Modellkomprimierung kann die spezifische Hardwareunterstützung diese spärlichen, geclusterten Modelle nutzen, um die Inferenzlatenz erheblich zu reduzieren.

Ergebnisse

Im Folgenden sind einige Genauigkeits- und Komprimierungsergebnisse aufgeführt, die wir beim Experimentieren mit kollaborativen Optimierungspfaden von PQAT und CQAT erhalten haben.

Sparsity-erhaltendes Quantisierungsbewusstes Training (PQAT)

Modell Produkte Basislinie Beschnittenes Modell (50% Sparsity) QAT-Modell PQAT-Modell
DS-CNN-L FP32 Top1 Genauigkeit 95,23% 94,80% (Fake INT8) 94,721% (Fake INT8) 94,128%
INT8 ganzzahlige Quantisierung 94,48 % 93,80% 94,72 % 94,13%
Kompression 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 Top 1 Genauigkeit 70,99% 70,11 % (Fake INT8) 70,67% (Fake INT8) 70,29 %
INT8 ganzzahlige Quantisierung 69,37% 67,82 % 70,67% 70,29 %
Kompression 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 %)

Clustererhaltendes Quantisierungsbewusstes Training (CQAT)

Modell Produkte Basislinie Cluster-Modell QAT-Modell CQAT-Modell
Mobilenet_v1 auf CIFAR-10 FP32 Top1 Genauigkeit 94,88% 94,48 % (Fake INT8) 94,80% (Fake INT8) 94,60%
INT8 ganzzahlige Quantisierung 94,65 % 94,41 % 94,77 % 94,52 %
Größe 3.00 MB 2,00 MB 2,84 MB 1,94 MB
Mobilenet_v1 auf ImageNet FP32 Top 1 Genauigkeit 71,07% 65,30% (Fake INT8) 70,39 % (Fake INT8) 65,35%
INT8 ganzzahlige Quantisierung 69,34 % 60,60% 70,35% 65,42 %
Kompression 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%)

Beispiele

Für End-to-End - Beispiele für die kollaborativen Optimierungstechniken hier beschrieben ist , entnehmen Sie bitte den CQAT , PQAT , sparsity erhalt Clustering und PCQAT Beispiel Notebooks.