Ottimizzazione collaborativa

Gestito da Arm ML Tooling

Questo documento fornisce una panoramica delle API sperimentali per combinare varie tecniche per ottimizzare i modelli di machine learning per la distribuzione.

Panoramica

L'ottimizzazione collaborativa è un processo globale che comprende varie tecniche per produrre un modello che, al momento della distribuzione, presenta il miglior equilibrio tra caratteristiche target come velocità di inferenza, dimensioni del modello e accuratezza.

L'idea delle ottimizzazioni collaborative è quella di basarsi su tecniche individuali applicandole una dopo l'altra per ottenere l'effetto di ottimizzazione accumulato. Sono possibili diverse combinazioni delle seguenti ottimizzazioni:

Il problema che sorge quando si tenta di concatenare queste tecniche insieme è che applicandone una in genere si distruggono i risultati della tecnica precedente, rovinando il vantaggio complessivo dell'applicazione simultanea di tutte; ad esempio, il clustering non preserva la scarsità introdotta dall'API di potatura. Per risolvere questo problema, introduciamo le seguenti tecniche sperimentali di ottimizzazione collaborativa:

Questi forniscono diversi percorsi di distribuzione che potrebbero essere utilizzati per comprimere un modello di machine learning e sfruttare l'accelerazione hardware al momento dell'inferenza. Il diagramma seguente mostra diversi percorsi di distribuzione che possono essere esplorati alla ricerca del modello con le caratteristiche di distribuzione desiderate, in cui i nodi foglia sono modelli pronti per la distribuzione, ovvero sono parzialmente o completamente quantizzati e in formato tflite. Il riempimento verde indica i passaggi in cui è necessaria una riqualificazione/ottimizzazione e un bordo rosso tratteggiato evidenzia i passaggi di ottimizzazione collaborativa. La tecnica utilizzata per ottenere un modello in corrispondenza di un dato nodo è indicata nell'etichetta corrispondente.

collaborative optimization

Il percorso di distribuzione diretto, di sola quantizzazione (post-addestramento o QAT) è omesso nella figura precedente.

L'idea è di raggiungere il modello completamente ottimizzato al terzo livello dell'albero di distribuzione di cui sopra; tuttavia, uno qualsiasi degli altri livelli di ottimizzazione potrebbe rivelarsi soddisfacente e raggiungere il compromesso richiesto tra latenza di inferenza e precisione, nel qual caso non è necessaria alcuna ulteriore ottimizzazione. Il processo di formazione consigliato sarebbe quello di passare in modo iterativo attraverso i livelli dell'albero di distribuzione applicabile allo scenario di distribuzione di destinazione e vedere se il modello soddisfa i requisiti di latenza di inferenza e, in caso contrario, utilizzare la corrispondente tecnica di ottimizzazione collaborativa per comprimere ulteriormente il modello e ripetere fino a quando il modello non sarà completamente ottimizzato (potato, raggruppato e quantizzato), se necessario.

La figura seguente mostra i grafici della densità del peso del campione del kernel che passa attraverso la pipeline di ottimizzazione collaborativa.

collaborative optimization density plot

Il risultato è un modello di distribuzione quantizzato con un numero ridotto di valori univoci nonché un numero significativo di pesi sparsi, a seconda della scarsità target specificata al momento dell'addestramento. Oltre ai vantaggi significativi della compressione del modello, il supporto hardware specifico può trarre vantaggio da questi modelli sparsi e raggruppati per ridurre significativamente la latenza di inferenza.

Risultati

Di seguito sono riportati alcuni risultati di precisione e compressione ottenuti durante la sperimentazione dei percorsi di ottimizzazione collaborativa PQAT e CQAT.

Addestramento consapevole della quantizzazione con preservazione della scarsità (PQAT)

Modello Elementi Linea di base Modello ridotto (sparsità del 50%) Modello QAT Modello PQAT
DS-CNN-L Precisione FP32 Top1 95,23% 94,80% (INT8 falso) 94,721% (INT8 falso) 94,128%
INT8 quantizzazione intera intera 94,48% 93,80% 94,72% 94,13%
Compressione 528.128 → 434.879 (17,66%) 528.128 → 334.154 (36,73%) 512.224 → 403.261 (21,27%) 512.032 → 303.997 (40,63%)
Rete mobile_v1-224 FP32 La migliore precisione 70,99% 70,11% (INT8 falso) 70,67% (INT8 falso) 70,29%
INT8 quantizzazione intera intera 69,37% 67,82% 70,67% 70,29%
Compressione 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%)

Formazione consapevole sulla quantizzazione con preservazione del cluster (CQAT)

Modello Elementi Linea di base Modello clusterizzato Modello QAT Modello CQAT
Mobilenet_v1 su CIFAR-10 Precisione FP32 Top1 94,88% 94,48% (INT8 falso) 94,80% (INT8 falso) 94,60%
INT8 quantizzazione intera intera 94,65% 94,41% 94,77% 94,52%
Misurare 3,00MB 2,00MB 2,84 MB 1,94 MB
Mobilenet_v1 su ImageNet FP32 La migliore precisione 71,07% 65,30% (INT8 falso) 70,39% (INT8 falso) 65,35%
INT8 quantizzazione intera intera 69,34% 60,60% 70,35% 65,42%
Compressione 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%)

Risultati CQAT e PCQAT per i modelli raggruppati per canale

I risultati sottostanti sono ottenuti con la tecnica del clustering per canale . Essi illustrano che se gli strati convoluzionali del modello sono raggruppati per canale, la precisione del modello è maggiore. Se il tuo modello ha molti livelli convoluzionali, ti consigliamo di raggruppare per canale. Il rapporto di compressione rimane lo stesso, ma la precisione del modello sarà maggiore. Nei nostri esperimenti la pipeline di ottimizzazione del modello è "clustered -> cluster che preserva QAT -> quantizzazione post-addestramento, int8".

Modello Clustered -> CQAT, int8 quantizzato Clustered per canale -> CQAT, int8 quantizzato
DS-CNN-L 95,949% 96,44%
MobileNet-V2 71,538% 72,638%
MobileNet-V2 (potato) 71,45% 71,901%

Esempi

Per esempi end-to-end delle tecniche di ottimizzazione collaborativa qui descritte, fare riferimento ai notebook di esempio CQAT , PQAT , sparsity-preserving clustering e PCQAT .