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:
- Potatura ponderata
- Raggruppamento del peso
Quantizzazione
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:
- Cluster che preserva la sparsità
- Addestramento consapevole della quantizzazione con preservazione della scarsità (PQAT)
- Cluster che preserva la formazione consapevole della quantizzazione (CQAT)
- Formazione consapevole della quantizzazione che preserva la sparsità e i cluster
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.
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.
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 .