Maison >Périphériques technologiques >IA >La puissante combinaison de modèles de diffusion + super-résolution, la technologie derrière le générateur d'images de Google Imagen
Ces dernières années, l'apprentissage multimodal a retenu l'attention, notamment dans les deux directions de la synthèse texte-image et de l'apprentissage contrastif image-texte. Certains modèles d'IA ont attiré l'attention du grand public en raison de leur application dans la génération et l'édition d'images créatives, tels que les modèles d'images texte DALL・E et DALL-E 2 lancés par OpenAI, ainsi que GauGAN et GauGAN2 de NVIDIA.
Pour ne pas être en reste, Google a publié fin mai son propre modèle de conversion texte-image, Imagen, qui semble repousser encore les limites de la génération d'images conditionnelles aux légendes.
À partir d'une simple description d'une scène, Imagen génère des images de haute qualité et haute résolution, que la scène ait ou non un sens dans le monde réel. La figure suivante montre plusieurs exemples d'images générées par du texte Imagen, avec les sous-titres correspondants affichés sous l'image.
Ces images générées impressionnantes donnent envie de savoir : Comment fonctionne Imagen ?
Récemment, l'instructeur développeur Ryan O'Connor a écrit un long article "Comment Imagen fonctionne réellement" sur le blog AssemblyAI, expliquant en détail le principe de fonctionnement d'Imagen, donnant un aperçu d'Imagen, analysant et comprenant ses composants avancés et leur connexion. entre.
Dans cette partie, l'auteur montre l'architecture globale d'Imagen et donne une explication de haut niveau des autres principes de fonctionnement, puis analyse plus en profondeur chaque composant d'Imagen ; L'animation suivante montre le flux de travail d'Imagen.
Tout d'abord, entrez les sous-titres dans l'encodeur de texte. Cet encodeur convertit les sous-titres du texte en représentations numériques qui encapsulent les informations sémantiques dans le texte. L'encodeur de texte d'Imagen est un encodeur Transformer, qui garantit que l'encodage du texte comprend comment les mots des sous-titres sont liés les uns aux autres, en utilisant des méthodes d'auto-attention.
Si Imagen se concentre uniquement sur des mots individuels plutôt que sur les associations entre eux, bien que des images de haute qualité capables de capturer des éléments individuels des sous-titres puissent être obtenues, la description de ces images ne peut pas refléter la sémantique des sous-titres de manière appropriée. Comme le montre l’exemple ci-dessous, si l’association entre les mots n’est pas prise en compte, un effet de génération complètement différent se produira.
Bien que l'encodeur de texte génère une représentation utile pour l'entrée de sous-titres d'Imagen, une méthode doit encore être conçue pour générer des images à l'aide de cette représentation, à savoir un Générateur d'images. Pour ce faire, Imagen utilise le modèle de diffusion, un modèle génératif qui a gagné en popularité ces dernières années grâce à ses performances SOTA sur plusieurs tâches.
Le modèle de diffusion détruit les données d'entraînement en ajoutant du bruit pour réaliser l'entraînement, puis apprend à récupérer les données en inversant ce processus de bruit. Étant donné une image d'entrée, le modèle de diffusion corrompt l'image de manière itérative avec du bruit gaussien sur une série de pas de temps, laissant finalement le bruit gaussien ou la télévision statique. La figure suivante montre le processus itératif de bruit du modèle de diffusion :
Ensuite, le modèle de diffusion fonctionnera à rebours, apprenant à isoler et à éliminer le bruit à chaque pas de temps, contrecarrant ainsi le processus de destruction qui vient de se produire. Une fois la formation terminée, le modèle peut être divisé en deux. Cela vous permet de commencer avec un bruit gaussien échantillonné aléatoirement et de débruiter progressivement à l'aide d'un modèle de diffusion pour générer une image, comme indiqué ci-dessous :
En résumé, le modèle de diffusion entraîné commence par un bruit gaussien puis génère de manière itérative des images similaires aux images d'entraînement. Il est évident qu'il n'y a aucun contrôle sur la sortie réelle de l'image, il suffit d'introduire du bruit gaussien dans le modèle et il produira une image aléatoire qui semble appartenir à l'ensemble de données d'entraînement.
Cependant, l'objectif est de créer des images qui encapsulent les informations sémantiques des sous-titres entrés dans Imagen, il faut donc un moyen d'incorporer les sous-titres dans le processus de diffusion . Comment faire cela ?
Comme mentionné ci-dessus, l'encodeur de texte produit un encodage de sous-titres représentatif, qui est en fait une séquence de vecteurs. Pour injecter ces informations codées dans le modèle de diffusion, ces vecteurs sont agrégés et le modèle de diffusion est ajusté sur leur base. En ajustant ce vecteur, le modèle de diffusion apprend à ajuster son processus de débruitage pour produire des images qui correspondent bien aux sous-titres. La visualisation du processus est présentée ci-dessous :
Étant donné que le générateur d'image ou le modèle de base génère une petite image 64x64, afin de suréchantillonner ce modèle jusqu'à la version finale 1024x1024, utilise le modèle super-résolution pour redimensionner intelligemment l'image. .
Pour le modèle super-résolution, Imagen utilise à nouveau le modèle de diffusion. Le processus global est fondamentalement le même que celui du modèle de base, sauf qu'il est ajusté uniquement en fonction de l'encodage des sous-titres, mais également avec un suréchantillonnage d'images plus petites. La visualisation de l'ensemble du processus est la suivante :
La sortie de ce modèle super-résolution n'est pas réellement la sortie finale, mais une image de taille moyenne. Pour mettre à l'échelle cette image jusqu'à la résolution finale de 1 024 x 1 024, un autre modèle de super-résolution est utilisé. Les deux architectures super-résolution sont à peu près les mêmes, elles ne seront donc pas décrites à nouveau. La sortie du deuxième modèle de super-résolution est la sortie finale d'Imagen.
Il est difficile de répondre exactement pourquoi Imagen est meilleur que DALL-E 2. Cependant, une partie importante de l’écart de performance provient des différences entre les sous-titres et les signaux. DALL-E 2 utilise des cibles contrastées pour déterminer le degré de relation entre les encodages de texte et les images (essentiellement CLIP). Les codeurs de texte et d'image ajustent leurs paramètres de telle sorte que la similarité cosinusoïdale de paires sous-titre-image similaires soit maximisée, tandis que la similarité cosinusoïdale de paires sous-titre-image dissemblables est minimisée.
Une partie importante de l'écart de performances vient du fait que l'encodeur de texte d'Imagen est beaucoup plus grand que l'encodeur de texte de DALL-E 2 et a été formé sur plus de données. Pour prouver cette hypothèse, nous pouvons examiner les performances d'Imagen lorsque l'encodeur de texte évolue. Voici une courbe de Pareto pour les performances d'Imagen :
L'effet de la mise à l'échelle des encodeurs de texte est étonnamment élevé, tandis que l'effet de la mise à l'échelle d'U-Net est étonnamment faible. Ce résultat montre que des modèles de diffusion relativement simples peuvent produire des résultats de haute qualité à condition qu’ils soient conditionnés à un codage fort.
Étant donné que l'encodeur de texte T5 est beaucoup plus grand que l'encodeur de texte CLIP, couplé au fait que les données d'entraînement en langage naturel sont nécessairement plus riches que les paires image-légende, une grande partie de l'écart de performances est probablement attribuable à cette différence.
De plus, l'auteur énumère également plusieurs points clés d'Imagen, dont les suivants :
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!