


De nouvelles idées pour accélérer les modèles ViT ! Meta lance Token Merging, qui repose sur la fusion plutôt que sur l'élagage
Visual Transformer (ViT) est devenu public il y a deux ans et est devenu un élément essentiel de la recherche sur la vision par ordinateur.
Il a migré avec succès un modèle Transformer dans le domaine du traitement du langage naturel vers le domaine de la vision par ordinateur. Depuis, les progrès dans le domaine de la vision par ordinateur se sont accélérés.
Bien qu'il soit surpassé en termes de coût et de performances, Vanilla ViT présente encore de nombreux avantages.
Ils sont composés de multiplications matricielles simples, ce qui les rend plus rapides que ne l'indiquerait leur nombre brut d'opérations.
De plus, ils prennent en charge de puissantes techniques de pré-entraînement auto-supervisées telles que le MAE (Masked Autoencoder) qui produisent des résultats de pointe tout en permettant un entraînement rapide.
Et comme ils ne font aucune hypothèse sur les données, ils peuvent être appliqués à de nombreux modes tels que les images, l'audio, le texte, etc. avec presque aucun changement.
Bien sûr, l'idéal est très complet, mais la réalité est très maigre. Le modèle ViT est à grande échelle et présente un retard important. Exécuter ce modèle complexe sur un appareil aux ressources limitées peut s’avérer très problématique.
Élagage des jetons : s'améliore, mais pas complètement mieux
En réponse au problème du fonctionnement lent, les chercheurs ont proposé plusieurs solutions. L’un des moyens courants d’accélérer le modèle Vision Transformer consiste à effectuer un élagage des jetons.
Élaguez les jetons au moment de l'exécution pour produire des Transformers efficaces en éliminant les jetons moins importants. Par exemple, DynamicViT supprime les jetons redondants de manière hiérarchique pour réduire les FLOP dans les tâches de classification.
Cependant, l'élagage des jetons présente plusieurs problèmes, le plus important étant que l'élagage des jetons entraînera une perte d'informations. Par conséquent, le nombre de jetons de modèle ViT que les gens peuvent élaguer est limité afin de réduire la perte d'informations. Seuls les jetons sans importance peuvent être élagués.
De plus, pour que les jetons élagués soient valides, il faut entraîner à nouveau le modèle. Cela entraîne une consommation de ressources supplémentaire.
Plus important encore, l'élagage des jetons est un processus dynamique, et différents nombres d'élagages de jetons doivent être déterminés en fonction de différentes images ou phrases. Même si cela permet d’améliorer la précision, ce n’est pas assez pratique car dans ce cas, les données ne peuvent plus être traitées par lots.
Afin de résoudre ce problème, les gens doivent ajouter des masques pendant le processus de taille, ce qui affectera davantage l'amélioration de l'efficacité.
En termes simples, l'élagage des jetons permet à ViT de fonctionner plus rapidement, mais cela se fait au prix d'une perte d'informations.
TokenMerging : Une autre idée
Comment pouvons-nous rendre le ViT similaire à l'élagage en termes de vitesse tout en conservant une précision supérieure à celle de l'élagage ? L'équipe de recherche Meta AI a mis au point une nouvelle solution : Token Merging (ToMe).
Lien papier : https://arxiv.org/pdf/2210.09461.pdf
Token Merging choisit de combiner des jetons au lieu de l'élagage. Grâce à son algorithme de matching personnalisé, il est aussi rapide que l’élagage tout en étant plus précis. De plus, il fonctionne sans aucune formation supplémentaire, vous pouvez donc l'utiliser sur d'énormes modèles pour les accélérer sans sacrifier beaucoup de précision.
L'objectif de Meta est d'insérer un module de fusion de jetons dans le ViT existant pour améliorer le débit de formation et d'inférence sans nécessiter de formation supplémentaire en fusionnant des jetons redondants.
L'idée de base est la suivante : dans le modèle Transformer, par fusion, chaque couche est réduite de r jetons. Supposons qu'un modèle Transformer comporte L couches, les jetons rL peuvent être réduits par fusion. La taille de la variable r détermine la relation entre la vitesse et la précision, car moins de marqueurs signifie une précision moindre mais un débit plus élevé.
Il est à noter que dans Token Merging, les jetons rL sont réduits quel que soit le contenu de l'image. Cela résout parfaitement le problème de l’incapacité d’effectuer un traitement par lots lors de l’élagage des jetons.
Avec ToMe, des lots de jetons similaires sont fusionnés dans chaque bloc Transformer : par exemple, la fourrure de chien est fusionnée en un seul jeton.
La fusion de jetons est insérée dans chaque bloc d'attention et chaque bloc Transformer. Cela contraste également avec le flux de travail d’élagage des jetons. Ce dernier a tendance à placer l’étape d’élagage au début de chaque bloc Transformer.
Grâce à la fusion de jetons, les informations sur les jetons qui doivent être fusionnés peuvent être diffusées, et ViT peut également utiliser les caractéristiques du bloc d'attention pour décider quels jetons doivent être fusionnés.
La méthode spécifique
La première étape de la fusion consiste à identifier les jetons similaires. À condition que QKV (requête, clé, valeur) dans Transformer ait été extrait, grâce à des expériences d'ablation, l'équipe de recherche a découvert que l'utilisation de la clé permet de mieux mesurer la similarité entre les jetons (partie violette dans la figure ci-dessous).
Étant donné que la clé a résumé les informations contenues dans chaque jeton, elle peut être utilisée pour le produit scalaire dans Attention afin de mesurer la similarité entre les jetons.
En plus d'étudier quel indicateur est le meilleur pour mesurer la similarité des jetons, vous devez également savoir quelle distance mesure la similarité. Grâce à des expériences, l'équipe de recherche a découvert que l'utilisation de la distance cosinusoïdale pour mesurer la similarité entre les coups permet d'obtenir la meilleure relation entre précision et vitesse.
Après avoir déterminé la similarité des jetons, une méthode rapide est nécessaire pour déterminer quels jetons doivent correspondre pour réduire le nombre total de r.
L'équipe Meta n'utilise pas d'algorithme de clustering kmeans ni d'algorithme de segmentation de graphiques, mais utilise un algorithme de correspondance, car ce dernier peut non seulement faire correspondre avec précision le nombre de jetons dans chaque couche, mais également effectuer rapidement des milliers de correspondances. Ces résultats ne peuvent pas être réalisés par des algorithmes de clustering itératifs.
L'équipe Meta a donc trouvé une solution plus efficace.
Les objectifs de conception sont les suivants. 1.) évitez toute itération qui ne peut pas être parallélisée, 2.) souhaitez que les modifications fusionnées soient progressives, car le clustering n'a aucune limite sur le nombre de balises pouvant être fusionnées dans un groupe (ce qui peut nuire au réseau), tout en correspondant. les balises ne sont pas fusionnées.
- Divisez tous les jetons en 2 ensembles A et B de même taille.
- Dessinez un bord de chaque jeton de l'ensemble A jusqu'au jeton le plus similaire de l'ensemble B.
- Ne conservez que les bords r les plus similaires et supprimez le reste.
- Fusion de bords encore connectés (les caractéristiques sont moyennées).
- Assemblez ces deux ensembles pour obtenir le résultat final fusionné.
Grâce à cette technologie unique, le débit et la vitesse d'entraînement réelle du modèle ViT peuvent être améliorés. L’utilisation de la fusion de jetons peut doubler la vitesse d’entraînement. Il peut être utilisé pour des tâches d’image, vidéo et audio tout en atteignant une précision de pointe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Traiter efficacement 7 millions d'enregistrements et créer des cartes interactives avec la technologie géospatiale. Cet article explore comment traiter efficacement plus de 7 millions d'enregistrements en utilisant Laravel et MySQL et les convertir en visualisations de cartes interactives. Exigences initiales du projet de défi: extraire des informations précieuses en utilisant 7 millions d'enregistrements dans la base de données MySQL. Beaucoup de gens considèrent d'abord les langages de programmation, mais ignorent la base de données elle-même: peut-il répondre aux besoins? La migration des données ou l'ajustement structurel est-il requis? MySQL peut-il résister à une charge de données aussi importante? Analyse préliminaire: les filtres et les propriétés clés doivent être identifiés. Après analyse, il a été constaté que seuls quelques attributs étaient liés à la solution. Nous avons vérifié la faisabilité du filtre et établi certaines restrictions pour optimiser la recherche. Recherche de cartes basée sur la ville

Il existe de nombreuses raisons pour lesquelles la startup MySQL échoue, et elle peut être diagnostiquée en vérifiant le journal des erreurs. Les causes courantes incluent les conflits de port (vérifier l'occupation du port et la configuration de modification), les problèmes d'autorisation (vérifier le service exécutant les autorisations des utilisateurs), les erreurs de fichier de configuration (vérifier les paramètres des paramètres), la corruption du répertoire de données (restaurer les données ou reconstruire l'espace de la table), les problèmes d'espace de la table InNODB (vérifier les fichiers IBDATA1), la défaillance du chargement du plug-in (vérification du journal des erreurs). Lors de la résolution de problèmes, vous devez les analyser en fonction du journal d'erreur, trouver la cause profonde du problème et développer l'habitude de sauvegarder régulièrement les données pour prévenir et résoudre des problèmes.

L'article présente le fonctionnement de la base de données MySQL. Tout d'abord, vous devez installer un client MySQL, tel que MySQLWorkBench ou le client de ligne de commande. 1. Utilisez la commande MySQL-UROot-P pour vous connecter au serveur et connecter avec le mot de passe du compte racine; 2. Utilisez Createdatabase pour créer une base de données et utilisez Sélectionner une base de données; 3. Utilisez CreateTable pour créer une table, définissez des champs et des types de données; 4. Utilisez InsertInto pour insérer des données, remettre en question les données, mettre à jour les données par mise à jour et supprimer les données par Supprimer. Ce n'est qu'en maîtrisant ces étapes, en apprenant à faire face à des problèmes courants et à l'optimisation des performances de la base de données que vous pouvez utiliser efficacement MySQL.

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh

MySQL peut renvoyer les données JSON. La fonction JSON_Extract extrait les valeurs de champ. Pour les requêtes complexes, envisagez d'utiliser la clause pour filtrer les données JSON, mais faites attention à son impact sur les performances. Le support de MySQL pour JSON augmente constamment, et il est recommandé de faire attention aux dernières versions et fonctionnalités.

Ingénieur backend à distance Emploi Vacant Société: Emplacement du cercle: Bureau à distance Type d'emploi: Salaire à temps plein: 130 000 $ - 140 000 $ Description du poste Participez à la recherche et au développement des applications mobiles Circle et des fonctionnalités publiques liées à l'API couvrant l'intégralité du cycle de vie de développement logiciel. Les principales responsabilités complètent indépendamment les travaux de développement basés sur RubyOnRails et collaborent avec l'équipe frontale React / Redux / Relay. Créez les fonctionnalités de base et les améliorations des applications Web et travaillez en étroite collaboration avec les concepteurs et le leadership tout au long du processus de conception fonctionnelle. Promouvoir les processus de développement positifs et hiérarchiser la vitesse d'itération. Nécessite plus de 6 ans de backend d'applications Web complexe

Les principales raisons de la défaillance de l'installation de MySQL sont les suivantes: 1. Problèmes d'autorisation, vous devez s'exécuter en tant qu'administrateur ou utiliser la commande sudo; 2. Des dépendances sont manquantes et vous devez installer des packages de développement pertinents; 3. Conflits du port, vous devez fermer le programme qui occupe le port 3306 ou modifier le fichier de configuration; 4. Le package d'installation est corrompu, vous devez télécharger et vérifier l'intégrité; 5. La variable d'environnement est mal configurée et les variables d'environnement doivent être correctement configurées en fonction du système d'exploitation. Résolvez ces problèmes et vérifiez soigneusement chaque étape pour installer avec succès MySQL.

Laravelelognent Model Retrieval: Faconttement l'obtention de données de base de données Eloquentorm fournit un moyen concis et facile à comprendre pour faire fonctionner la base de données. Cet article présentera en détail diverses techniques de recherche de modèles éloquentes pour vous aider à obtenir efficacement les données de la base de données. 1. Obtenez tous les enregistrements. Utilisez la méthode All () pour obtenir tous les enregistrements dans la table de base de données: usApp \ Modèles \ Post; $ poters = post :: all (); Cela rendra une collection. Vous pouvez accéder aux données à l'aide de Foreach Loop ou d'autres méthodes de collecte: ForEach ($ PostsAs $ POST) {echo $ post->
