Maintenu par Arm ML Tooling
Ce document fournit un aperçu des API expérimentales permettant de combiner diverses techniques afin d'optimiser les modèles d'apprentissage automatique pour le déploiement.
Aperçu
L'optimisation collaborative est un processus global qui englobe diverses techniques pour produire un modèle qui, lors du déploiement, présente le meilleur équilibre entre les caractéristiques cibles telles que la vitesse d'inférence, la taille du modèle et la précision.
L'idée des optimisations collaboratives est de s'appuyer sur des techniques individuelles en les appliquant les unes après les autres pour obtenir l'effet d'optimisation accumulé. Différentes combinaisons des optimisations suivantes sont possibles :
- Taille au poids
- Regroupement de poids
Quantification
Le problème qui se pose lorsqu’on tente d’enchaîner ces techniques est que l’application de l’une d’entre elles détruit généralement les résultats de la technique précédente, gâchant ainsi l’avantage global de leur application simultanée ; par exemple, le clustering ne préserve pas la parcimonie introduite par l'API d'élagage. Pour résoudre ce problème, nous introduisons les techniques expérimentales d’optimisation collaborative suivantes :
- Clustering préservant la parcimonie
- Formation consciente de la quantification préservant la parcimonie (PQAT)
- Formation sensible à la quantification préservant les clusters (CQAT)
- Formation sensible à la quantification préservant la parcimonie et les clusters
Ceux-ci fournissent plusieurs chemins de déploiement qui pourraient être utilisés pour compresser un modèle d’apprentissage automatique et tirer parti de l’accélération matérielle au moment de l’inférence. Le diagramme ci-dessous montre plusieurs chemins de déploiement qui peuvent être explorés à la recherche du modèle présentant les caractéristiques de déploiement souhaitées, où les nœuds feuilles sont des modèles prêts au déploiement, ce qui signifie qu'ils sont partiellement ou entièrement quantifiés et au format tflite. Le remplissage vert indique les étapes pour lesquelles un recyclage/un réglage fin est nécessaire et une bordure rouge en pointillés met en évidence les étapes d'optimisation collaborative. La technique utilisée pour obtenir un modèle en un nœud donné est indiquée dans l'étiquette correspondante.
Le chemin de déploiement direct, uniquement quantifié (post-formation ou QAT), est omis dans la figure ci-dessus.
L'idée est d'atteindre le modèle entièrement optimisé au troisième niveau de l'arborescence de déploiement ci-dessus ; cependant, n’importe lequel des autres niveaux d’optimisation pourrait s’avérer satisfaisant et atteindre le compromis requis entre latence d’inférence et précision, auquel cas aucune optimisation supplémentaire n’est nécessaire. Le processus de formation recommandé consisterait à parcourir de manière itérative les niveaux de l'arborescence de déploiement applicables au scénario de déploiement cible et à voir si le modèle répond aux exigences de latence d'inférence et, sinon, à utiliser la technique d'optimisation collaborative correspondante pour compresser davantage le modèle et répéter. jusqu'à ce que le modèle soit entièrement optimisé (élagué, regroupé et quantifié), si nécessaire.
La figure ci-dessous montre les tracés de densité du noyau de poids d'échantillon passant par le pipeline d'optimisation collaborative.
Le résultat est un modèle de déploiement quantifié avec un nombre réduit de valeurs uniques ainsi qu'un nombre important de poids clairsemés, en fonction de la parcimonie cible spécifiée au moment de la formation. Outre les avantages significatifs de la compression des modèles, une prise en charge matérielle spécifique peut tirer parti de ces modèles en cluster clairsemés pour réduire considérablement la latence d'inférence.
Résultats
Vous trouverez ci-dessous quelques résultats de précision et de compression que nous avons obtenus lors de l'expérimentation des chemins d'optimisation collaborative PQAT et CQAT.
Formation sensible à la quantification préservant la rareté (PQAT)
Modèle | Articles | Référence | Modèle élagué (50 % de parcimonie) | Modèle QAT | Modèle PQAT |
---|---|---|---|---|---|
DS-CNN-L | Précision Top1 du FP32 | 95,23% | 94,80% | (Faux INT8) 94,721% | (Faux INT8) 94,128% |
Quantification entière complète INT8 | 94,48% | 93,80% | 94,72% | 94,13% | |
Compression | 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 | Précision FP32 Top 1 | 70,99% | 70,11% | (Faux INT8) 70,67% | (Faux INT8) 70,29% |
Quantification entière complète INT8 | 69,37% | 67,82% | 70,67% | 70,29% | |
Compression | 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%) |
Formation sensible à la quantification préservant les clusters (CQAT)
Modèle | Articles | Référence | Modèle clusterisé | Modèle QAT | Modèle CQAT |
---|---|---|---|---|---|
Mobilenet_v1 sur CIFAR-10 | Précision Top1 du FP32 | 94,88% | 94,48% | (Faux INT8) 94,80% | (Faux INT8) 94,60% |
Quantification entière complète INT8 | 94,65% | 94,41% | 94,77% | 94,52% | |
Taille | 3,00 Mo | 2,00 Mo | 2,84 Mo | 1,94 Mo | |
Mobilenet_v1 sur ImageNet | Précision FP32 Top 1 | 71,07% | 65,30% | (Faux INT8) 70,39% | (Faux INT8) 65,35% |
Quantification entière complète INT8 | 69,34% | 60,60% | 70,35% | 65,42% | |
Compression | 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%) |
Résultats CQAT et PCQAT pour les modèles regroupés par canal
Les résultats ci-dessous sont obtenus avec la technique du clustering par canal . Ils illustrent que si les couches convolutives du modèle sont regroupées par canal, la précision du modèle est alors plus élevée. Si votre modèle comporte de nombreuses couches convolutives, nous vous recommandons de regrouper par canal. Le taux de compression reste le même, mais la précision du modèle sera plus élevée. Le pipeline d'optimisation du modèle est « clusterisé -> cluster préservant QAT -> quantification post-formation, int8 » dans nos expériences. Modèle Clusterisé -> CQAT, int8 quantifié Clusterisé par canal -> CQAT, int8 quantifié DS-CNN-L 95,949% 96,44% MobileNet-V2 71,538% 72,638% MobileNet-V2 (élagué) 71,45% 71,901%
Exemples
Pour obtenir des exemples de bout en bout des techniques d'optimisation collaborative décrites ici, veuillez vous référer aux exemples de blocs-notes CQAT , PQAT , sparsity-preserving clustering et PCQAT .