Intelligence artificielle
EfficientViT: Vision Transformer Mémoire Efficient pour la Vision par Ordinateur à Haute Résolution

En raison de leur grande capacité de modèle, les modèles de Vision Transformer ont connu un grand succès ces derniers temps. Malgré leurs performances, les modèles de vision transformer ont un défaut majeur : leur remarquable puissance de calcul se fait au prix de coûts de calcul élevés, et c’est la raison pour laquelle les vision transformers 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 vision transformers à haute vitesse.
Lorsqu’ils travaillaient sur EfficientViT, les développeurs ont observé que la vitesse des modèles de transformer actuels est souvent limitée par des opérations de mémoire inefficaces, en particulier les fonctions élémentaires et le réarrangement de tenseurs dans le réseau d’auto-attention à multi-tête ou MHSA. Pour résoudre 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ête lié à la mémoire entre les couches FFN efficaces qui aide à améliorer l’efficacité de la mémoire, et à améliorer également la communication globale des canaux. De plus, le modèle découvre que les cartes d’attention ont souvent des similarités élevées entre les têtes qui conduisent à une redondance de calcul. 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 parties de la fonction de caractéristiques complète. La méthode non seulement aide à économiser les coûts de calcul, mais améliore également la diversité de l’attention du modèle.
Des expériences complètes réalisées sur le modèle EfficientViT dans différents scénarios indiquent que EfficientViT surpasse les modèles efficaces existants pour la vision par ordinateur tout en trouvant un bon équilibre entre la précision et la vitesse. Alors, plongeons plus en profondeur et explorons le modèle EfficientViT un peu plus en détail.
Introduction aux Vision Transformers et EfficientViT
Les Vision Transformers restent l’un des cadres les plus populaires dans l’industrie 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 vision transformer, les coûts opérationnels et la charge de calcul augmentent également. Par exemple, les modèles actuels connus pour fournir des performances de pointe sur les ensembles de données ImageNet comme SwinV2 et V-MoE utilisent 3B et 14,7B de paramètres respectivement. La taille impressionnante de ces modèles, couplée avec les coûts de calcul et les exigences, les rend pratiquement inadaptés pour les appareils et les applications en temps réel.
Le modèle EfficientNet vise à explorer comment améliorer les performances des modèles de vision transformer, et à trouver les principes impliqués dans la conception d’architectures de framework de transformer efficaces et efficaces. Le modèle EfficientViT est basé sur les frameworks de vision transformer existants comme Swim et DeiT, et il analyse trois facteurs essentiels qui affectent les vitesses d’interférence des modèles, notamment la redondance de calcul, l’accès à la mémoire et l’utilisation de paramètres. De plus, le modèle observe que la vitesse des modèles de vision transformer est liée à la mémoire, ce qui signifie que l’utilisation complète de la puissance de calcul dans les CPU/GPU est interdite ou restreinte 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 élémentaires et le réarrangement de tenseurs dans le réseau d’auto-attention à multi-tête ou MHSA sont les opérations les plus inefficaces en termes de mémoire. Le modèle observe également qu’il est possible de réduire considérablement le temps d’accès à la mémoire sans affecter les performances en ajustant de manière optimale le ratio entre FFN (réseau de feed forward) et MHSA. Cependant, le modèle observe également une certaine redondance dans les cartes d’attention en raison de la tendance des têtes d’attention à apprendre des projections linéaires similaires.
Le modèle est le résultat final des découvertes réalisées lors des travaux de recherche sur EfficientViT. Le modèle présente un nouveau bloc de construction avec une disposition en sandwich qui applique une seule couche d’auto-attention à multi-tête liée à la mémoire entre les couches de feed forward ou FFN, ce qui aide à améliorer l’efficacité de la mémoire et à améliorer la communication entre les canaux. Le modèle utilise également un nouveau module d’attention de groupe en cascade ou CGA qui vise à rendre les calculs plus efficaces en réduisant la redondance de calcul non seulement dans les têtes d’attention, mais également en augmentant 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, notamment les projections de valeur, tout en réduisant la largeur de canal des composants de réseau peu importants, comme les dimensions cachées dans les réseaux de feed forward, pour redistribuer les paramètres dans le framework.

Comme on peut le voir dans l’image ci-dessus, le framework EfficientViT performs mieux que les modèles CNN et ViT actuels en termes de précision et de vitesse. Mais comment le framework EfficientViT a-t-il réussi à surpasser certains des frameworks actuels de pointe ? Plongeons plus en profondeur pour explorer le modèle EfficientViT.
EfficientViT : Améliorer l’Efficacité des Vision Transformers
Le modèle EfficientViT vise à améliorer l’efficacité des modèles de vision transformer existants en utilisant trois perspectives,
- Redondance de calcul.
- Accès à la mémoire.
- Utilisation de paramètres.
Le modèle vise à déterminer comment les paramètres ci-dessus affectent l’efficacité des modèles de vision transformer, et comment les résoudre pour obtenir de meilleurs résultats avec une meilleure efficacité. Plongeons plus en profondeur pour les explorer.
Accès à la Mémoire et Efficacité
L’un des facteurs essentiels qui affecte la vitesse d’un modèle est l’overhead d’accès à la mémoire ou MAO. Comme on peut le voir dans l’image ci-dessous, plusieurs opérateurs dans les transformateurs, notamment l’addition élémentaire, la normalisation et le réarrangement 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 est un processus chronophage.

Bien qu’il existe des méthodes existantes qui peuvent simplifier les calculs d’auto-attention standard comme l’approximation de faible rang et l’attention éparsse, elles offrent souvent une accélération limitée et dégradent la précision.
D’un autre côté, le framework EfficientViT vise à réduire le coût d’accès à la mémoire en réduisant le nombre de couches inefficaces en termes de mémoire dans le framework. Le modèle réduit les dimensions du DeiT-T et du 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 on peut le voir dans l’image ci-dessous, lorsque mis en œuvre, l’approche améliore la précision des couches MHSA d’environ 20 à 40%.

Efficacité de Calcul
Les couches MHSA tendent à intégrer la séquence d’entrée dans plusieurs sous-espaces ou têtes, et calculent les cartes d’attention individuellement, une approche qui est 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 la redondance d’attention dans les petits modèles ViT. Le modèle mesure la similarité cosinuse maximale de chaque tête et des têtes restantes dans chaque bloc en formant les modèles DeiT-T et Swim-T réduits en largeur avec un accélération d’inférence de 1,25x. Comme on peut l’observer dans l’image ci-dessous, il existe une grande similarité entre les têtes d’attention, ce qui suggère que le modèle incourt une redondance de calcul car de nombreuses têtes tendent à apprendre des projections similaires de la fonction de caractéristiques complète.

Pour encourager les têtes à apprendre des modèles différents, le modèle applique explicitement une solution intuitive dans laquelle chaque tête n’est alimentée que par une partie de la fonction de caractéristiques complète, une technique qui ressemble à l’idée de convolution de groupe. Le modèle forme différents aspects des modèles réduits qui présentent des couches MHSA modifiées.
Efficacité des Paramètres
Les modèles ViT moyens héritent de leurs stratégies de conception comme l’utilisation d’une largeur équivalente pour les projections, la fixation du rapport d’expansion à 4 dans les FFN, et l’augmentation des têtes sur les étapes à partir de NLP transformateurs. Les configurations de ces composants doivent être conçues soigneusement pour les modules légers. Le modèle EfficientViT déploie une élagage structurée de Taylor pour trouver les composants essentiels dans les couches Swim-T et DeiT-T automatiquement, et explore les principes d’allocation de paramètres sous-jacents. Sous certaines contraintes de ressources, les méthodes d’élagage suppriment les canaux non importants et conservent les canaux critiques pour assurer la précision la plus élevée possible. La figure ci-dessous compare le rapport des canaux aux embeddings d’entrée avant et après élagage sur le framework Swin-T. Il a été observé que : Précision de base : 79,1 % ; précision élaguée : 76,5 %.

L’image ci-dessus indique que les deux premières étapes du framework préservent plus de dimensions, tandis que les deux dernières étapes préservent beaucoup moins de dimensions. Cela peut 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.
Efficient Vision Transformer : Architecture
Sur la base des connaissances acquises lors de l’analyse ci-dessus, les développeurs ont travaillé sur la création d’un nouveau modèle hiérarchique qui offre des vitesses d’interférence rapides, le modèle EfficientViT. Plongeons plus en profondeur pour explorer la structure du framework EfficientViT. La figure ci-dessous donne une idée générale du framework EfficientViT.
Blocs de Construction du Framework EfficientViT
Le bloc de construction pour le réseau de vision transformer plus efficace est illustré dans la figure ci-dessous.

Le framework se compose d’un module d’attention de groupe en cascade, d’une disposition en sandwich efficace en termes de mémoire, et d’une stratégie de réattribution de paramètres qui se concentre sur l’amélioration de l’efficacité du modèle en termes de calcul, de mémoire et de paramètres, respectivement. Plongeons plus en profondeur pour les explorer.
Disposition en Sandwich
Le modèle utilise une nouvelle disposition en sandwich pour construire un bloc de mémoire plus efficace et plus efficace pour le framework. La disposition en sandwich utilise moins de couches d’auto-attention liées à la mémoire et utilise plus de réseaux de feed forward efficaces pour la communication des canaux. Plus précisément, le modèle applique une seule couche d’auto-attention pour le mélange spatial qui est sandwichée entre les couches FFN. La conception non seulement aide à réduire le temps de consommation de mémoire en raison des couches d’auto-attention, mais permet également une communication efficace entre les différents canaux dans le réseau grâce à l’utilisation des couches FFN. Le modèle applique également une couche de token d’interaction supplémentaire avant chaque couche de réseau de feed forward en utilisant un DWConv ou une convolution déceptive, et améliore la capacité du modèle en introduisant des biais inductifs d’informations structurelles locales.
Attention de Groupe en Cascade
L’un des principaux problèmes avec les couches MHSA est la redondance dans les têtes d’attention qui rend les calculs plus inefficaces. Pour résoudre ce problème, le modèle propose une attention de groupe en cascade ou CGA pour les vision transformers, 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 parties de la fonction de caractéristiques complète, et décompose ainsi explicitement le calcul d’attention à travers les têtes. La division des fonctionnalités au lieu de fournir des fonctionnalités complètes à chaque tête économise des calculs et rend le processus plus efficace, et le modèle continue de travailler pour améliorer la précision et la capacité encore plus en encourageant les couches à apprendre des projections sur des fonctionnalités plus riches.

Réallocation de Paramètres
Pour améliorer l’efficacité des paramètres, le modèle réattribue les paramètres dans le réseau en élargissant la largeur de canal des modules critiques tout en réduisant la largeur de canal des modules peu importants. Sur la base de l’analyse de Taylor, le modèle définit de petites dimensions de canal pour les projections dans chaque tête à chaque étape ou le modèle permet aux projections d’avoir la même dimension que l’entrée. Le rapport d’expansion du réseau de feed forward est également réduit à 2 à partir de 4 pour aider à la redondance de paramètres. La stratégie de réattribution proposée que le framework EfficientViT met en œuvre alloue plus de canaux aux modules importants pour leur permettre d’apprendre des représentations dans un espace à haute dimension de manière plus efficace, ce qui minimise la perte d’informations de fonctionnalités. De plus, pour accélérer le processus d’interférence et améliorer encore l’efficacité du modèle, le modèle supprime automatiquement les paramètres redondants dans les modules non importants.

La vue d’ensemble du framework EfficientViT peut être expliquée dans l’image ci-dessus où les parties,
- Architecture d’EfficientViT,
- Bloc de disposition en sandwich,
- Attention de groupe en cascade.
EfficientViT : Architectures de Réseau

L’image ci-dessus résume l’architecture de réseau du framework EfficientViT. Le modèle introduit un intégration de patch chevauchant [20,80] qui intègre des patches 16×16 dans des jetons de dimension C1 qui améliore la capacité du modèle à apprendre de meilleures représentations visuelles de bas niveau. L’architecture du modèle se compose de trois étapes où chaque étape empile les blocs de construction proposés du framework EfficientViT, et le nombre de jetons à chaque couche d’échantillonnage (2× échantillonnage de la résolution) est réduit de 4X. Pour rendre l’échantillonnage plus efficace, le modèle propose un bloc d’échantillonnage qui a également la disposition en sandwich proposée, à l’exception que le bloc de résidu inversé remplace la couche d’attention pour réduire la perte d’informations pendant l’échantillonnage. De plus, au lieu de la normalisation de couche conventionnelle (LN), le modèle utilise la normalisation de lot (BN) car la BN peut être pliée dans les couches linéaires ou convolutionnelles précédentes, ce qui lui donne un avantage en termes de temps d’exécution sur la 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 fixe de têtes est alloué pour chaque étape. Les modèles utilisent moins de blocs dans les premières étapes par rapport aux dernières étapes, un processus similaire à celui suivi par le framework MobileNetV3 car le processus de traitement des premières étapes avec des résolutions plus grandes est chronophage. La largeur est augmentée sur les étapes avec un petit facteur pour réduire la redondance dans les dernières étapes. Le tableau ci-joint 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 le nombre de têtes dans l’étape particulière.

EfficientViT : Mise en Œuvre du Modèle et Résultats
Le modèle EfficientViT a une taille de lot totale de 2 048, est construit avec Timm et PyTorch, est formé à partir de zéro pendant 300 époques en utilisant 8 GPU Nvidia V100, utilise un planificateur d’apprentissage cosinus, un optimiseur AdamW et effectue son expérience de classification d’images sur ImageNet-1K. Les images d’entrée sont coupées et redimensionnées aléatoirement à une résolution de 224×224. Pour les expériences qui impliquent la classification d’images en aval, le framework EfficientViT affine le modèle pendant 300 époques et utilise un optimiseur AdamW avec une taille de lot de 256. Le modèle utilise RetineNet pour la détection d’objets sur COCO et procède à former les modèles pendant 12 époques supplémentaires avec les mêmes paramètres.
Résultats sur ImageNet
Pour analyser les performances du modèle 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 ci-dessous. Comme on peut le voir, la famille de modèles EfficientViT surpasse les frameworks actuels dans la plupart des cas et parvient à atteindre un équilibre idéal entre vitesse et précision.

Comparaison avec les CNN Efficaces et les ViT Efficaces
Le modèle compare d’abord ses performances avec les CNN efficaces comme EfficientNet et les frameworks CNN classiques comme MobileNets. Comme on peut le voir, par rapport aux frameworks MobileNet, les modèles EfficientViT obtiennent un score de précision supérieur, tout en fonctionnant 3,0X et 2,5X plus rapidement sur les CPU Intel et les GPU V100 respectivement.

La figure ci-dessus compare les performances du modèle EfficientViT avec les modèles ViT à grande échelle actuels qui fonctionnent sur l’ensemble de données ImageNet-1K.
Classification d’Images en Aval
Le modèle EfficientViT est appliqué à différentes tâches en aval pour étudier les capacités d’apprentissage de transfert du modèle, et l’image ci-dessous résume les résultats de l’expérience. Comme on peut l’observer, le modèle EfficientViT-M5 parvient à atteindre de meilleures ou des résultats similaires sur tous les ensembles de données tout en maintenant un débit beaucoup plus élevé. La seule exception est l’ensemble de données Cars, où le modèle EfficientViT ne parvient pas à fournir une précision.

Détection d’Objets
Pour analyser la capacité du modèle EfficientViT à détecter les objets, il est comparé aux 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.

Pensées Finales
Dans cet article, nous avons parlé d’EfficientViT, une famille de modèles de vision transformer rapides qui utilisent l’attention de groupe en cascade et fournissent des opérations de mémoire efficaces. Des expériences complètes réalisées pour analyser les performances du modèle EfficientViT ont montré des résultats prometteurs, car le modèle EfficientViT surpasse les modèles CNN et ViT actuels dans la plupart des cas. Nous avons également essayé de fournir une analyse des facteurs qui jouent un rôle dans l’affectation de la vitesse d’interférence des vision transformers.












