Simple Science

La science de pointe expliquée simplement

# Informatique# Vision par ordinateur et reconnaissance des formes

Améliorer la génération d'images avec la fusion de tokens

Le Token Merging augmente la vitesse de génération d'images tout en gardant la qualité.

― 7 min lire


Techniques de générationTechniques de générationd'images rapidesqualité dans la création d'images.Améliore la vitesse sans perdre en
Table des matières

La génération d'images a beaucoup changé avec l'arrivée de modèles comme Stable Diffusion. Ces outils peuvent créer des images de haute qualité à partir de prompts textuels, mais ils mettent souvent un certain temps à produire des résultats. Ce problème de vitesse vient de la façon dont ils traitent les images en utilisant une technologie appelée transformateurs, qui peut être lente et coûteuse à faire fonctionner, surtout quand il s'agit de générer de grandes images.

Bien qu'il existe des moyens d'accélérer les transformateurs, comme une meilleure gestion de la mémoire et des méthodes de codage optimisées, ils évaluent toujours chaque morceau de donnée, ce qui prend du temps. Beaucoup d'images générées contiennent de nombreuses parties répétées ou similaires. À cause de ça, il pourrait être possible de réduire le nombre de parties traitées, économisant ainsi du temps et des ressources. Les avancées récentes dans la gestion des données traitées, comme la suppression des pièces inutiles ou la fusion de celles qui sont similaires, ont montré des promesses pour accélérer les choses sans nécessiter un entraînement supplémentaire.

Qu'est-ce que la fusion de tokens ?

La fusion de tokens, ou ToMe, est une méthode qui vise à rendre la génération d'images plus rapide en réduisant le nombre de morceaux de données, appelés tokens, que le modèle traite. Cela se fait en combinant des tokens similaires. Quand c'est bien appliqué, ToMe peut accélérer le processus de génération d'images tout en gardant la qualité élevée. Ça fonctionne sans nécessiter d'entraînement supplémentaire, ce qui est un gros plus pour les utilisateurs de modèles existants comme Stable Diffusion.

Comment Stable Diffusion fonctionne

Stable Diffusion est un type de modèle de diffusion qui crée des images en nettoyant du bruit aléatoire en plusieurs étapes. Cette méthode implique une structure U-Net, qui comprend différentes couches transformant le bruit initial en images claires. Chaque couche utilise des tokens pour représenter différentes parties de l'image et passe par des mécanismes d'attention pour comprendre comment ces parties sont liées entre elles. Le modèle évalue ces tokens plusieurs fois, ce qui fait que le temps de traitement s'accumule.

Défis avec les méthodes actuelles

Beaucoup de méthodes existantes pour rendre les transformateurs plus rapides traitent encore tous les tokens de la même manière. Elles ne prennent pas en compte que beaucoup de ces tokens n'apportent pas vraiment de valeur à l'image finale. La plupart des images, y compris celles générées par des modèles, ont des tokens répétitifs ou similaires. Au lieu de traiter chaque token, il est plus logique de se concentrer uniquement sur les plus nécessaires.

Certaines techniques comme l'élagage de tokens (suppression de tokens) ou la fusion (combinaison de tokens) ont montré leur potentiel dans d'autres contextes. Cependant, beaucoup de ces méthodes nécessitent que le modèle soit réentraîné, ce qui n'est pas pratique pour de grands modèles comme Stable Diffusion. En revanche, ToMe offre une solution qui fonctionne sans réentraînement.

Appliquer la fusion de tokens à Stable Diffusion

Quand ToMe est appliqué à Stable Diffusion avec soin, ça peut entraîner une augmentation notable de la vitesse de génération d'images. Ça peut aussi fonctionner avec des méthodes existantes qui améliorent la performance des transformateurs. Par exemple, quand ToMe est utilisé avec xFormers, un outil optimisé pour gérer les transformateurs, cela peut entraîner des améliorations de vitesse encore plus grandes.

Cependant, une application simple de ToMe sans ajustements peut réduire la qualité des images. Par conséquent, il est crucial d'explorer différentes méthodes pour savoir comment utiliser ToMe efficacement dans le modèle.

L'importance de Fusionner et de dé-fusionner

Pour utiliser ToMe efficacement, il est essentiel de comprendre deux concepts clés : la fusion et la dé-fusion. La fusion consiste à combiner des tokens similaires pour réduire le nombre total à traiter. Cependant, dans des tâches comme la génération d'images, il est nécessaire de garder une trace des informations provenant des tokens fusionnés. C'est là que la dé-fusion entre en jeu. La dé-fusion permet au modèle de revenir aux tokens fusionnés dans leur état original, afin qu'aucune donnée cruciale ne soit perdue pendant le traitement.

Si les tokens sont simplement supprimés au lieu d'être fusionnés, les images résultantes peuvent perdre des caractéristiques et des détails importants. Donc, maintenir un certain niveau d'information même pendant le rendu est vital pour préserver la qualité.

Améliorations à la fusion de tokens

Quand ToMe a d'abord été appliqué naïvement, il a montré des avantages mais a aussi entraîné une mauvaise qualité d'image à cause d'une fusion excessive. Cela a conduit au développement de nouvelles techniques sur la façon dont les tokens sont partitionnés et fusionnés. Une meilleure approche consiste à sélectionner stratégiquement quels tokens fusionner et quand les dé-fusionner.

Une méthode efficace est de fusionner les tokens d'une manière qui prend en compte la structure de l'image au lieu de simplement les moyenner. En gardant certains tokens comme des entités distinctes et en fusionnant d'autres, le modèle peut améliorer la qualité globale tout en bénéficiant de la vitesse apportée par la réduction du nombre de tokens.

Évaluation des résultats

Pour déterminer à quel point les améliorations à ToMe ont bien fonctionné, des tests ont été réalisés en utilisant un grand ensemble de données d'images. Les résultats ont montré que la génération d'images pouvait être significativement plus rapide tout en maintenant un niveau de qualité élevé. L'évaluation quantitative des images a démontré que fusionner correctement les tokens pouvait mener à de meilleures images avec moins de temps de traitement.

Changements dans le design

Pour rendre ToMe plus efficace, le design de son implémentation a été affiné. En appliquant ToMe de manière sélective aux zones du modèle qui gèrent le plus de tokens, on peut maximiser la vitesse sans sacrifier la qualité. Les premières étapes du processus de diffusion peuvent tolérer plus de tokens fusionnés, tandis que les dernières étapes nécessitent une gestion plus prudente.

Conclusion

En conclusion, l'application de la fusion de tokens à Stable Diffusion permet une génération d'images plus rapide sans nécessiter de réentraînement. En se concentrant sur la fusion de tokens similaires et en gérant soigneusement comment et quand les dé-fusionner, le modèle peut produire des images de haute qualité à un rythme beaucoup plus rapide. Ce travail offre non seulement un outil pratique pour ceux qui travaillent avec des modèles de génération d'images, mais ouvre aussi la voie à des recherches supplémentaires sur la façon dont la fusion de tokens peut être appliquée dans divers contextes. Cette technique est amenée à bénéficier à la fois aux praticiens et aux chercheurs.

Source originale

Titre: Token Merging for Fast Stable Diffusion

Résumé: The landscape of image generation has been forever changed by open vocabulary diffusion models. However, at their core these models use transformers, which makes generation slow. Better implementations to increase the throughput of these transformers have emerged, but they still evaluate the entire model. In this paper, we instead speed up diffusion models by exploiting natural redundancy in generated images by merging redundant tokens. After making some diffusion-specific improvements to Token Merging (ToMe), our ToMe for Stable Diffusion can reduce the number of tokens in an existing Stable Diffusion model by up to 60% while still producing high quality images without any extra training. In the process, we speed up image generation by up to 2x and reduce memory consumption by up to 5.6x. Furthermore, this speed-up stacks with efficient implementations such as xFormers, minimally impacting quality while being up to 5.4x faster for large images. Code is available at https://github.com/dbolya/tomesd.

Auteurs: Daniel Bolya, Judy Hoffman

Dernière mise à jour: 2023-03-30 00:00:00

Langue: English

Source URL: https://arxiv.org/abs/2303.17604

Source PDF: https://arxiv.org/pdf/2303.17604

Licence: https://creativecommons.org/licenses/by/4.0/

Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.

Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.

Plus d'auteurs

Articles similaires