Suivez nous sur

EfficientViT : transformateur de vision à mémoire efficace pour la vision par ordinateur haute résolution

Intelligence Artificielle

EfficientViT : transformateur de vision à mémoire efficace pour la vision par ordinateur haute résolution

mm

En raison de leur capacité de modèle élevée, les modèles Vision Transformer ont connu un grand succès ces derniers temps. Malgré leurs performances, les modèles de transformateurs de vision présentent un défaut majeur : leurs prouesses de calcul remarquables s'accompagnent de coûts de calcul élevés, et c'est la raison pour laquelle les transformateurs de vision ne sont pas le premier choix pour les applications en temps réel. Pour résoudre ce problème, un groupe de développeurs a lancé EfficientViT, une famille de transformateurs de vision à grande vitesse. 

En travaillant sur EfficientViT, les développeurs ont observé que la vitesse des modèles de transformateurs actuels est souvent limitée par des opérations de mémoire inefficaces, en particulier les fonctions par éléments et le remodelage du tenseur dans le réseau MHSA ou Multi-Head Self Attention. Pour lutter contre ces opérations de mémoire inefficaces, les développeurs d'EfficientViT ont travaillé sur un nouveau bloc de construction utilisant une disposition en sandwich, c'est-à-dire que le modèle EfficientViT utilise un seul réseau d'auto-attention multi-têtes lié à la mémoire entre des couches FFN efficaces qui contribuent à améliorer l'efficacité de la mémoire, et améliorant également la communication globale du canal. En outre, le modèle découvre également que les cartes d'attention présentent souvent de grandes similitudes entre les têtes, ce qui conduit à une redondance informatique. Pour résoudre le problème de redondance, le modèle EfficientViT présente un module d'attention de groupe en cascade qui alimente les têtes d'attention avec différentes divisions de la fonctionnalité complète. La méthode permet non seulement de réduire les coûts de calcul, mais améliore également la diversité de l'attention du modèle. 

Des expériences approfondies réalisées sur le modèle EfficientViT dans différents scénarios indiquent que l'EfficientViT surpasse les modèles efficaces existants pour vision par ordinateur tout en trouvant un bon compromis entre précision et vitesse. Allons donc plus loin et explorons le modèle EfficientViT un peu plus en profondeur. 

Une introduction aux transformateurs de vision et à EfficientViT

Les Vision Transformers restent l'un des frameworks les plus populaires dans le secteur de la vision par ordinateur car ils offrent des performances supérieures et des capacités de calcul élevées. Cependant, avec l'amélioration constante de la précision et des performances des modèles de transformateur de vision, les coûts opérationnels et les frais de calcul augmentent également. Par exemple, les modèles actuels connus pour fournir des performances de pointe sur les ensembles de données ImageNet tels que SwinV2 et V-MoE utilisent respectivement les paramètres 3B et 14.7B. La taille même de ces modèles, associée aux coûts et exigences de calcul, les rend pratiquement inadaptés aux appareils et applications en temps réel. 

Le modèle EfficientNet vise à explorer comment améliorer les performances des modèles de transformateur de vision, et trouver les principes impliqués dans la conception d'architectures de cadre efficaces et basées sur des transformateurs. Le modèle EfficientViT est basé sur des cadres de transformation de vision existants tels que Swim et DeiT, et analyse trois facteurs essentiels qui affectent les vitesses d'interférence des modèles, notamment la redondance des calculs, l'accès à la mémoire et l'utilisation des paramètres. En outre, le modèle observe que la vitesse des modèles de transformateur de vision est liée à la mémoire, ce qui signifie que la pleine utilisation de la puissance de calcul dans les CPU/GPU est interdite ou limitée par le délai d'accès à la mémoire, ce qui a un impact négatif sur la vitesse d'exécution des transformateurs. . Les fonctions par éléments et le remodelage du tenseur dans le réseau MHSA ou Multi-Head Self Attention sont les opérations les plus inefficaces en mémoire. Le modèle observe en outre qu'un ajustement optimal du rapport entre FFN (feed forward network) et MHSA peut aider à réduire considérablement le temps d'accès à la mémoire sans affecter les performances. Cependant, le modèle observe également une certaine redondance dans les cartes d'attention en raison de la tendance de la tête d'attention à apprendre des projections linéaires similaires. 

Le modèle est une culture finale des résultats obtenus lors des travaux de recherche pour l'EfficientViT. Le modèle présente un nouveau noir avec une disposition en sandwich qui applique une seule couche MHSA liée à la mémoire entre les couches Feed Forward Network ou FFN. L'approche réduit non seulement le temps nécessaire à l'exécution des opérations liées à la mémoire dans MHSA, mais elle rend également l'ensemble du processus plus efficace en termes de mémoire en permettant à davantage de couches FFN de faciliter la communication entre les différents canaux. Le modèle utilise également un nouveau module CGA ou Cascaded Group Attention qui vise à rendre les calculs plus efficaces en réduisant la redondance de calcul non seulement dans les têtes d'attention, mais augmente également la profondeur du réseau, ce qui entraîne une capacité de modèle élevée. Enfin, le modèle élargit la largeur de canal des composants de réseau essentiels, y compris les projections de valeur, tout en réduisant les composants de réseau à faible valeur, comme les dimensions cachées dans les réseaux de rétroaction, afin de redistribuer les paramètres dans le cadre. 

Comme le montre l'image ci-dessus, le framework EfficientViT fonctionne mieux que les modèles CNN et ViT de pointe actuels en termes de précision et de vitesse. Mais comment le framework EfficientViT a-t-il réussi à surpasser certains des frameworks de pointe actuels ? Découvrons cela. 

EfficientViT : améliorer l'efficacité des transformateurs de vision

Le modèle EfficientViT vise à améliorer l'efficacité des modèles de transformateur de vision existants en utilisant trois perspectives,

  1. Redondance informatique. 
  2. Accès à la mémoire. 
  3. Utilisation des paramètres. 

Le modèle vise à découvrir comment les paramètres ci-dessus affectent l'efficacité des modèles de transformateur de vision et comment les résoudre pour obtenir de meilleurs résultats avec une meilleure efficacité. Parlons-en un peu plus en profondeur. 

Accès à la mémoire et efficacité

L'un des facteurs essentiels affectant la vitesse d'un modèle est la surcharge d'accès à la mémoire ou MAO. Comme le montre l'image ci-dessous, plusieurs opérateurs dans Transformer, notamment l'addition par élément, la normalisation et le remodelage fréquent, sont des opérations inefficaces en termes de mémoire, car elles nécessitent l'accès à différentes unités de mémoire, ce qui prend du temps. 

Bien qu'il existe certaines méthodes existantes qui peuvent simplifier les calculs standard d'auto-attention softmax, comme l'approximation de bas rang et l'attention clairsemée, elles offrent souvent une accélération limitée et dégradent la précision. 

D'autre part, le framework EfficientViT vise à réduire le coût d'accès à la mémoire en réduisant le nombre de couches inefficaces en mémoire dans le framework. Le modèle réduit DeiT-T et Swin-T à de petits sous-réseaux avec un débit d'interférence plus élevé de 1.25X et 1.5X, et compare les performances de ces sous-réseaux avec les proportions des couches MHSA. Comme le montre l'image ci-dessous, une fois mise en œuvre, l'approche augmente la précision des couches MHSA d'environ 20 à 40 %. 

Efficacité de calcul

Les couches MHSA ont tendance à intégrer la séquence d'entrée dans plusieurs sous-espaces ou têtes et calculent les cartes d'attention individuellement, une approche connue pour améliorer les performances. Cependant, les cartes d'attention ne sont pas bon marché en termes de calcul, et pour explorer les coûts de calcul, le modèle EfficientViT explore comment réduire l'attention redondante dans des modèles ViT plus petits. Le modèle mesure la similarité cosinusoïdale maximale de chaque tête et des têtes restantes dans chaque bloc en entraînant les modèles DeiT-T et Swim-T à largeur réduite avec une accélération d'inférence de 1.25 ×. Comme on peut l'observer dans l'image ci-dessous, il existe un grand nombre de similitudes entre les têtes d'attention, ce qui suggère que le modèle entraîne une redondance de calcul car de nombreuses têtes ont tendance à apprendre des projections similaires de la fonctionnalité complète exacte. 

Pour encourager les têtes à apprendre différents modèles, le modèle applique explicitement une solution intuitive dans laquelle chaque tête ne reçoit qu'une partie de la fonctionnalité complète, une technique qui ressemble à l'idée de convolution de groupe. Le modèle entraîne différents aspects des modèles réduits qui comportent des couches MHSA modifiées. 

Paramètre Efficacité

Les modèles ViT moyens héritent de leurs stratégies de conception telles que l'utilisation d'une largeur équivalente pour les projections, la définition du taux d'expansion à 4 en FFN et l'augmentation de la hauteur sous plafond des transformateurs NLP. Les configurations de ces composants doivent être soigneusement repensées pour les modules légers. Le modèle EfficientViT déploie l'élagage structuré de Taylor pour trouver automatiquement les composants essentiels dans les couches Swim-T et DeiT-T, et explore plus en détail les principes sous-jacents d'allocation des paramètres. Sous certaines contraintes de ressources, les méthodes d'élagage suppriment les canaux sans importance et conservent les canaux critiques pour garantir la plus grande précision possible. La figure ci-dessous compare le rapport entre les canaux et les intégrations d'entrée avant et après l'élagage sur le framework Swin-T. Il a été observé que : Précision de base : 79.1 % ; précision d'élagage : 76.5 %.

L'image ci-dessus indique que les deux premières étapes du cadre préservent plus de dimensions, tandis que les deux dernières étapes préservent beaucoup moins de dimensions. Cela pourrait signifier qu'une configuration de canal typique qui double le canal après chaque étape ou utilise des canaux équivalents pour tous les blocs, peut entraîner une redondance substantielle dans les derniers blocs. 

Transformateur de vision efficace : Architecture

Sur la base des enseignements obtenus lors de l'analyse ci-dessus, les développeurs ont travaillé à la création d'un nouveau modèle hiérarchique offrant des vitesses d'interférence rapides, le EfficaceViT modèle. Examinons en détail la structure du framework EfficientViT. La figure ci-dessous vous donne une idée générique du framework EfficientViT. 

Éléments constitutifs du cadre EfficientViT

L'élément constitutif d'un réseau de transformateurs de vision plus efficace est illustré dans la figure ci-dessous. 

Le cadre se compose d'un module d'attention de groupe en cascade, d'une disposition sandwich économe en mémoire et d'une stratégie de réallocation des paramètres qui se concentrent sur l'amélioration de l'efficacité du modèle en termes de calcul, de mémoire et de paramètres, respectivement. Parlons-en plus en détail. 

Disposition des sandwichs

Le modèle utilise une nouvelle disposition sandwich pour créer un bloc de mémoire plus efficace et efficient pour le framework. La disposition sandwich utilise moins de couches d'auto-attention liées à la mémoire et utilise des réseaux de rétroaction plus efficaces en mémoire pour la communication par canal. Pour être plus précis, le modèle applique une seule couche d'auto-attention pour le mélange spatial, prise en sandwich entre les couches FFN. La conception contribue non seulement à réduire la consommation de temps de mémoire grâce aux couches d'auto-attention, mais permet également une communication efficace entre les différents canaux du réseau grâce à l'utilisation de couches FFN. Le modèle applique également une couche de jetons d'interaction supplémentaire avant chaque couche de réseau de rétroaction à l'aide d'une DWConv ou d'une convolution trompeuse, et améliore la capacité du modèle en introduisant un biais inductif des informations structurelles locales. 

Attention de groupe en cascade

L’un des problèmes majeurs des couches MHSA est la redondance des têtes d’attention, ce qui rend les calculs plus inefficaces. Pour résoudre le problème, le modèle propose CGA ou Cascaded Group Attention pour les transformateurs de vision, un nouveau module d'attention qui s'inspire des convolutions de groupe dans les CNN efficaces. Dans cette approche, le modèle alimente les têtes individuelles avec des divisions de toutes les caractéristiques et décompose donc explicitement le calcul de l'attention entre les têtes. Diviser les fonctionnalités au lieu de fournir des fonctionnalités complètes à chaque tête économise le calcul et rend le processus plus efficace, et le modèle continue de travailler à améliorer encore plus la précision et sa capacité en encourageant les couches à apprendre des projections sur des fonctionnalités qui contiennent des informations plus riches. 

Réaffectation des paramètres

Pour améliorer l'efficacité des paramètres, le modèle réaffecte les paramètres dans le réseau en élargissant la largeur du canal des modules critiques tout en réduisant la largeur du canal des modules moins importants. Sur la base de l'analyse de Taylor, le modèle définit soit de petites dimensions de canal pour les projections dans chaque tête à chaque étape, soit le modèle permet aux projections d'avoir la même dimension que l'entrée. Le taux d'expansion du réseau de rétroaction est également ramené de 2 à 4 pour faciliter la redondance de ses paramètres. La stratégie de réallocation proposée par le framework EfficientViT attribue plus de canaux aux modules importants pour leur permettre de mieux apprendre les représentations dans un espace de grande dimension, ce qui minimise la perte d'informations sur les fonctionnalités. De plus, pour accélérer le processus d'interférence et améliorer encore davantage l'efficacité du modèle, le modèle supprime automatiquement les paramètres redondants dans les modules sans importance. 

L'aperçu du framework EfficientViT peut être expliqué dans l'image ci-dessus où les parties,

  1. Architecture d'EfficientViT,
  2. Bloc de mise en page sandwich,
  3. Attention de groupe en cascade.

 

EfficientViT : Architectures Réseaux

L'image ci-dessus résume l'architecture réseau du framework EfficientViT. Le modèle introduit une intégration de correctifs superposés [20,80] qui intègre des correctifs 16 × 16 dans des jetons de dimension C1, ce qui améliore la capacité du modèle à mieux fonctionner dans l'apprentissage des représentations visuelles de bas niveau. L'architecture du modèle comprend trois étapes où chaque étape empile les éléments de base proposés du cadre EfficientViT, et le nombre de jetons à chaque couche de sous-échantillonnage (sous-échantillonnage 2 × de la résolution) est réduit de 4X. Pour rendre le sous-échantillonnage plus efficace, le modèle propose un bloc de sous-échantillon qui présente également la disposition sandwich proposée, à l'exception du fait qu'un bloc résiduel inversé remplace la couche d'attention pour réduire la perte d'informations lors de l'échantillonnage. De plus, au lieu du LayerNorm(LN) conventionnel, le modèle utilise BatchNorm(BN) car le BN peut être replié dans les couches linéaires ou convolutives précédentes, ce qui lui confère un avantage d'exécution par rapport au LN. 

 

Famille de modèles EfficientViT

La famille de modèles EfficientViT se compose de 6 modèles avec différentes échelles de profondeur et de largeur, et un nombre défini de têtes est attribué à chaque étage. Les modèles utilisent moins de blocs dans les étapes initiales par rapport aux étapes finales, un processus similaire à celui suivi par le framework MobileNetV3 car le processus de traitement précoce avec des résolutions plus grandes prend du temps. La largeur est augmentée au fil des étapes avec un petit facteur pour réduire la redondance dans les étapes ultérieures. Le tableau ci-dessous fournit les détails architecturaux de la famille de modèles EfficientViT, où C, L et H font référence à la largeur, à la profondeur et au nombre de têtes dans une étape particulière. 

EfficientViT : mise en œuvre du modèle et résultats

Le modèle EfficientViT a une taille totale de lot de 2,048 300, est construit avec Timm & PyTorch, est formé à partir de zéro pendant 8 époques à l'aide de 100 GPU Nvidia V1, utilise un planificateur de taux d'apprentissage cosinus, un optimiseur AdamW et mène son expérience de classification d'images sur ImageNet. -224K. Les images d'entrée sont recadrées et redimensionnées de manière aléatoire dans une résolution de 224 × 300. Pour les expériences qui impliquent la classification d'images en aval, le framework EfficientViT affine le modèle pour 256 époques et utilise l'optimiseur AdamW avec une taille de lot de 12. Le modèle utilise RetineNet pour la détection d'objets sur COCO et procède à la formation des modèles pour XNUMX autres époques. époques avec les paramètres identiques. 

Résultats sur ImageNet

Pour analyser les performances d'EfficientViT, il est comparé aux modèles ViT et CNN actuels sur l'ensemble de données ImageNet. Les résultats de la comparaison sont rapportés dans la figure suivante. Comme on peut le constater, la famille de modèles EfficientViT surpasse les frameworks actuels dans la plupart des cas et parvient à atteindre un compromis idéal entre vitesse et précision. 

Comparaison avec les CNN efficaces et les ViT efficaces

Le modèle compare d'abord ses performances à celles des CNN efficaces comme EfficientNet et des frameworks CNN vanille comme MobileNets. Comme on peut le constater, par rapport aux frameworks MobileNet, les modèles EfficientViT obtiennent un meilleur score de précision top 1, tout en fonctionnant respectivement 3.0 fois et 2.5 fois plus rapidement sur le processeur Intel et le GPU V100.  

La figure ci-dessus compare les performances du modèle EfficientViT avec les modèles ViT de pointe à grande échelle exécutés sur l'ensemble de données ImageNet-1K. 

Classification des images en aval

Le modèle EfficientViT est appliqué à diverses tâches en aval afin d'étudier ses capacités d'apprentissage par transfert. L'image ci-dessous résume les résultats de l'expérience. Comme on peut le constater, le modèle EfficientViT-M5 parvient à obtenir des résultats meilleurs ou similaires sur tous les jeux de données, tout en maintenant un débit bien plus élevé. La seule exception concerne le jeu de données Cars, où le modèle EfficientViT ne parvient pas à fournir une précision optimale. 

Détection d'objet

Pour analyser la capacité d'EfficientViT à détecter des objets, il est comparé à des modèles efficaces sur la tâche de détection d'objets COCO, et l'image ci-dessous résume les résultats de la comparaison. 

Réflexions finales

Dans cet article, nous avons parlé d'EfficientViT, une famille de modèles de transformateurs de vision rapides qui utilisent l'attention de groupe en cascade et fournissent des opérations économes en mémoire. Des expériences approfondies menées pour analyser les performances d'EfficientViT ont montré des résultats prometteurs, car le modèle EfficientViT surpasse les modèles actuels de CNN et de transformateur de vision dans la plupart des cas. Nous avons également essayé de fournir une analyse des facteurs qui jouent un rôle dans la vitesse d'interférence des transformateurs de vision. 

« Ingénieur de profession, écrivain de cœur ». Kunal est un rédacteur technique avec un amour et une compréhension profonds de l'IA et du ML, dédié à la simplification de concepts complexes dans ces domaines grâce à sa documentation engageante et informative.