Comment réduire le coût de calcul de Visual Transformer ? L’approche de redondance temporelle est surprenante

Après avoir apporté des changements dans le domaine du langage, Transformer entre dans le domaine visuel, mais il se heurte également au problème du coût de calcul élevé. Récemment, une équipe de recherche de l'Université du Wisconsin-Madison a proposé Eventful Transformer, qui permet de réduire les coûts en utilisant la redondance temporelle dans le transformateur visuel.

Source de l'image : générée par Unbounded AI

Transformer a été initialement conçu pour les tâches de traitement du langage naturel, mais est désormais largement utilisé pour les tâches de vision. Vision Transformer atteint une précision exceptionnelle sur une gamme de tâches de reconnaissance visuelle et atteint des performances de pointe sur des tâches telles que la classification d'images, la classification vidéo et la détection d'objets.

Un inconvénient majeur du Visual Transformer est son coût de calcul élevé. Les réseaux convolutifs typiques (CNN) nécessitent des dizaines de GFlops par image pour être traités, tandis que les transformateurs visuels nécessitent souvent un ordre de grandeur supérieur, atteignant des centaines de GFlops par image. Lors du traitement vidéo, ce problème est encore plus grave en raison de l'énorme quantité de données. Le coût de calcul élevé rend difficile le déploiement de Visual Transformer sur des appareils dotés de ressources limitées ou d'exigences de latence strictes, ce qui limite les scénarios d'application de cette technologie, sinon nous aurions déjà des applications passionnantes.

Dans un article récent, trois chercheurs de l'Université du Wisconsin-Madison, Matthew Dutson, Yin Li et Mohit Gupta, ont pour la première fois proposé que la redondance temporelle entre les entrées suivantes puisse être utilisée pour réduire le coût des transformateurs visuels dans les applications vidéo. Ils ont également publié le code du modèle, qui inclut le module PyTorch utilisé pour créer Eventful Transformer.

* Adresse papier : *adresse du projet :

Redondance temporelle : supposons d'abord qu'il existe un transformateur visuel capable de traiter une séquence vidéo image par image ou un clip vidéo par clip vidéo. Ce Transformer peut être un simple modèle de traitement image par image (comme un détecteur d'objet) ou une étape intermédiaire d'un modèle spatio-temporel (comme la première étape du modèle décomposé de ViViT). Contrairement au Transformer de traitement du langage, où une entrée est une séquence complète, les chercheurs fournissent ici plusieurs entrées différentes (images ou clips vidéo) au Transformer au fil du temps.

Les vidéos naturelles contiennent une redondance temporelle importante, c'est-à-dire que les différences entre les images suivantes sont faibles. Néanmoins, les réseaux profonds, y compris les Transformers, calculent généralement chaque image « à partir de zéro ». Cette méthode élimine les informations potentiellement pertinentes obtenues grâce à un raisonnement précédent, ce qui est extrêmement inutile. Dès lors, ces trois chercheurs se sont demandés : peut-on réutiliser les résultats de calculs intermédiaires des étapes de calcul précédentes pour améliorer l’efficacité du traitement des séquences redondantes ?

Inférence adaptative : pour les transformateurs visuels et les réseaux profonds en général, le coût de l'inférence est souvent dicté par l'architecture. Cependant, dans les applications réelles, les ressources disponibles peuvent changer au fil du temps, par exemple en raison de processus concurrents ou de changements de puissance. Par conséquent, il peut s'avérer nécessaire de modifier le coût de calcul du modèle au moment de l'exécution. L’un des principaux objectifs de conception fixés par les chercheurs dans ce nouvel effort était l’adaptabilité : leur approche permettait de contrôler en temps réel les coûts de calcul. La figure 1 ci-dessous (en bas) donne un exemple de modification du budget de calcul pendant le traitement vidéo.

Eventful Transformer : cet article propose Eventful Transformer, qui peut exploiter la redondance temporelle entre les entrées pour obtenir un raisonnement efficace et adaptatif. Le terme événementiel s’inspire des caméras événementielles, des capteurs qui enregistrent discrètement des images au fur et à mesure que la scène change. Eventful Transformer suit les changements au niveau des jetons au fil du temps et met à jour de manière sélective les représentations des jetons et les cartes d'auto-attention à chaque pas de temps. Le module d'Eventful Transformer contient un module de contrôle utilisé pour contrôler le nombre de jetons mis à jour pendant l'exécution.

Cette méthode peut être utilisée avec des modèles disponibles dans le commerce (généralement sans recyclage) et est compatible avec de nombreuses tâches de traitement vidéo. Les chercheurs ont également mené des démonstrations expérimentales et les résultats ont montré qu'Eventful Transformer peut être utilisé sur les meilleurs modèles existants, réduisant considérablement leurs coûts de calcul tout en conservant leur précision d'origine.

Transformateur événementiel

Le but de cette recherche est d'accélérer le Vision Transformer pour la reconnaissance vidéo. Dans ce scénario, le transformateur visuel doit traiter de manière répétée des images vidéo ou des clips vidéo. Les tâches spécifiques incluent la détection de cible vidéo et la reconnaissance d'action vidéo. L’idée clé proposée ici est d’exploiter la redondance temporelle, c’est-à-dire de réutiliser les résultats de calcul des pas de temps précédents. Ce qui suit décrira en détail comment modifier le module Transformer pour le rendre capable de détecter la redondance temporelle.

token gating : détection de redondance

Cette section présentera deux nouveaux modules proposés par les chercheurs : token gate et token buffer. Ces modules permettent au modèle d'identifier et de mettre à jour les jetons qui ont considérablement changé depuis la dernière mise à jour.

Module porte : cette porte sélectionnera une partie M à partir du jeton d'entrée N et l'enverra à la couche aval pour calcul. Il conserve un jeton de référence défini dans sa mémoire, noté u. Ce vecteur de référence contient la valeur de chaque token au moment de sa plus récente mise à jour. À chaque pas de temps, chaque jeton est comparé à sa valeur de référence correspondante et le jeton qui est significativement différent de la valeur de référence est mis à jour.

Maintenant, laissez l'entrée actuelle de la porte être c. À chaque pas de temps, le processus suivant est suivi pour mettre à jour l'état de la porte et déterminer sa sortie (voir Figure 2 ci-dessous) :

1. Calculez l’erreur totale e = u − c.

  1. Utilisez une stratégie de sélection pour l’erreur e. La stratégie de sélection renvoie un masque binaire m (équivalent à une liste d'index de jetons), indiquant quels M jetons doivent être mis à jour.

  2. Extrayez le jeton sélectionné par la stratégie ci-dessus. Ceci est décrit sur la figure 2 comme le produit c × m ; en pratique, cela est obtenu en effectuant une opération de « rassemblement » le long du premier axe de c. Les jetons collectés sont enregistrés ici comme

, qui est la sortie de la porte.

  1. Mettez à jour le jeton de référence avec le jeton sélectionné. La figure 2 décrit ce processus comme

;L'opération utilisée en pratique est "scatter". Dans le premier pas de temps, la porte met à jour tous les jetons (initialisant u ← c et renvoyant c˜ = c).

Module tampon : le module tampon maintient un tenseur d'état

, qui suit chaque jeton d'entrée

Lorsque , le tampon disperse les jetons de f (c˜) vers leurs positions correspondantes dans b. Il renvoie ensuite le b mis à jour comme sortie, voir la figure 3 ci-dessous.

Les chercheurs ont associé chaque porte à un tampon derrière elle. Voici un modèle d'utilisation simple : la sortie de la porte

est passé à une série d'opérations f (c˜) sur chaque jeton ; puis le tenseur résultant

Passé à un tampon, qui restaurera la forme complète.

Créez un transformateur prenant en charge la redondance

Afin de tirer parti de la redondance temporelle ci-dessus, les chercheurs ont proposé un schéma de modification du module Transformer. La figure 4 ci-dessous montre la conception du module Eventful Transformer. Cette méthode peut accélérer les opérations sur des jetons individuels (tels que MLP) ainsi que la multiplication des valeurs de clé de requête et de la valeur d'attention.

Dans le module Operation Transformer pour chaque jeton, de nombreuses opérations sont effectuées pour chaque jeton, ce qui signifie qu'elles n'impliquent pas d'échange d'informations entre les jetons, y compris les transformations linéaires dans MLP et MSA. Afin de réduire les coûts de calcul, les chercheurs ont déclaré que les opérations orientées jetons sur les jetons non sélectionnés par la porte peuvent être ignorées. Du fait de l'indépendance entre les tokens, cela ne change pas le résultat de l'opération sur le token sélectionné. Voir la figure 3.

Plus précisément, les chercheurs ont utilisé une paire de tampons de porte pour la séquence continue d'opérations sur chaque jeton (y compris la transformation W_qkv, la transformation W_p et MLP). Notez qu'ils ont également ajouté un tampon avant la connexion sautée pour garantir que les jetons des deux opérandes d'addition sont correctement alignés.

Le coût de l'opération pour chaque token est proportionnel au nombre de tokens. La porte peut réduire ce nombre de N à M, ce qui réduit également le coût de calcul des opérations en aval pour chaque jeton de N/M fois.

Produit requête-clé-valeur : examinons maintenant le produit requête-clé-valeur B = qk^T.

La figure 5 ci-dessous montre une méthode permettant de mettre à jour de manière éparse un sous-ensemble d'éléments dans le produit requête-clé-valeur B.

Le coût global de ces mises à jour est de 2NMD, comparé au coût du calcul de B à partir de zéro, qui est de N^2D. Notez que le coût de la nouvelle méthode est proportionnel à M, le nombre de jetons sélectionnés par la porte. Lorsque M < N/2 (les jetons mis à jour à ce moment sont inférieurs à la moitié du total), le montant du calcul peut être enregistré.

Produit à valeur d'attention : le chercheur a proposé une stratégie de mise à jour basée sur l'incrément Δ.

La figure 6 ci-dessous montre la méthode nouvellement proposée pour calculer efficacement trois termes incrémentiels.

De même, lorsque M < N/2, le montant du calcul peut être sauvegardé.

stratégie de sélection de jetons

Une conception importante d’Eventful Transformer est sa stratégie de sélection de jetons. Étant donné un tenseur d'erreur de porte e, le but d'une telle politique est de générer un masque m indiquant les jetons qui doivent être mis à jour. Les stratégies spécifiques comprennent :

Stratégie Top-r : Cette stratégie sélectionne les r jetons avec la plus grande erreur e (la norme L2 est utilisée ici).

Stratégie de seuil : Cette stratégie sélectionne tous les jetons dont la norme d'erreur e dépasse un seuil h.

Autres stratégies : des stratégies de sélection de jetons plus complexes et sophistiquées peuvent permettre d'obtenir de meilleurs compromis précision-coût. Par exemple, un réseau de politiques léger peut être utilisé pour apprendre une stratégie. Cependant, entraîner le mécanisme de décision de la politique peut être difficile car le masque binaire m est généralement non différentiable. Une autre idée consiste à utiliser le score d’importance comme information de référence pour la sélection. Mais ces idées attendent encore de futures recherches.

Expérience

Les chercheurs ont évalué expérimentalement la méthode nouvellement proposée sur les tâches de détection d'objets vidéo et de reconnaissance d'actions vidéo.

La figure 7 ci-dessous montre les résultats expérimentaux de la détection vidéo de cibles. L’axe positif est le taux d’économie de calcul et l’axe négatif est la réduction relative du score mAP50 de la nouvelle méthode. On peut constater que la nouvelle méthode permet de réaliser d’importantes économies de calcul avec un léger sacrifice de précision.

La figure 8 ci-dessous montre la comparaison des méthodes et les résultats expérimentaux d'ablation sur la tâche de détection de cible vidéo.

La figure 9 ci-dessous montre les résultats expérimentaux de la reconnaissance d'actions vidéo.

Le tableau 2 ci-dessous présente les résultats de temps d'exécution (en millisecondes) sur un CPU (Xeon Silver 4214, 2,2 GHz) et un GPU (NVIDIA RTX3090). On constate que l'augmentation de vitesse apportée par la redondance temporelle sur le GPU peut aller jusqu'à 1,74. fois, et l'amélioration du processeur peut atteindre 2,47 fois.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)