Qu'est-ce qu'un modèle de diffusion ? Une définition complète

Qu'est-ce qu'un modèle de diffusion ? Une définition complète
Qu'est-ce qu'un modèle de diffusion ?
Les modèles de diffusion sont une classe de modèles génératifs probabilistes. Ils sont puissants pour réduire le bruit dans [l'apprentissage automatique] (https://zilliz.com/learn/making-machine-learning-more-accessible-for-application-developers) ainsi que pour la synthèse d'images. Un modèle de diffusion détruit progressivement les données en ajoutant du bruit gaussien et apprend à inverser le processus pour la génération d'échantillons.
Dans la génération d'images, par exemple, les modèles de diffusion ajoutent du bruit à une image une centaine ou un millier de fois jusqu'à ce qu'elle devienne une image de bruit pur. Ils éliminent ensuite progressivement le bruit de l'image jusqu'à l'obtention d'une image cohérente. Enfin, le modèle peut générer de nouvelles images diverses qui sont proches de l'image originale.
Composantes des modèles de diffusion
Les modèles de diffusion reposent sur trois cadres mathématiques sous-jacents :
- Modèle probabiliste de diffusion par débruitage (DDPM) : Les DDPM utilisent deux chaînes de Markov, une chaîne avant et une chaîne arrière, pour ajouter ou supprimer le bruit des données. Ils s'appuient sur des réseaux neuronaux profonds pour apprendre à inverser le bruit introduit dans la chaîne directe, ce qui permet en fin de compte de générer des échantillons de données qui ressemblent étroitement à la distribution des données d'origine.
- Modèles génératifs basés sur les scores (SGM) : Les SGM fonctionnent en ajoutant un bruit gaussien aux données et en estimant des fonctions de score à l'aide d'un réseau neuronal profond entraîné par le bruit. Ces fonctions de score guident la génération de nouveaux échantillons de données qui ressemblent étroitement à la distribution originale.
- Équations différentielles stochastiques (score SDE) : Les score SDE généralisent les DDPM et les SGM pour modéliser des données avec des pas de temps ou des niveaux de bruit infinis. Elles utilisent des SDE pour modéliser les processus de perturbation du bruit et de génération d'échantillons, et s'appuient sur des fonctions de score pour débruiter les données générées.
Comment fonctionnent les modèles de diffusion ?
Les modèles de diffusion fonctionnent à un niveau sophistiqué, impliquant l'interaction méticuleuse de données, d'un bruit gaussien contrôlé et d'un espace latent intermédiaire. Ce processus complexe leur permet en fin de compte de créer des versions améliorées des données originales. Pénétrons plus avant dans les mécanismes :
1. Le rôle du bruit gaussien:
Les modèles de diffusion introduisent systématiquement du bruit gaussien tout au long de leur fonctionnement. À chaque étape itérative, un bruit gaussien contrôlé avec précision est ajouté aux données. Ce bruit est échantillonné à partir d'une distribution gaussienne, ce qui permet un contrôle fin des niveaux de bruit.
# Ajout d'un bruit gaussien contrôlé noisy\_data = original\_data + noise
2. Transition vers la distribution normale:
Pour faciliter le processus de diffusion, les données d'entrée subissent une transformation. Elles sont d'abord converties en une distribution normale, caractérisée par une moyenne de 0 et un écart-type de 1. Cette conversion simplifie non seulement le contrôle du bruit, mais jette également les bases du processus de diffusion.
# Transformation des données en une distribution normale données_normalisées = (données_originales - données_originales.mean()) / données_originales.std()
3. Processus de modélisation de la diffusion :
Décortiquons le processus de modélisation de la diffusion dans le contexte des modèles génératifs, en particulier pour les images ou les vidéos. Le parcours de diffusion se compose de deux phases essentielles :
- Processus de diffusion vers l'avant: Au cours de cette phase, le modèle entreprend de transformer les pixels d'une image vierge. Le bruit gaussien est progressivement introduit à travers des centaines, voire des milliers d'étapes incrémentielles. Ce processus se déroule selon une chaîne de Markov, chaque étape injectant une quantité de bruit contrôlée avec précision. L'image se "diffuse" effectivement dans un état de bruit pur.
# Processus de diffusion vers l'avant for step in range(num_steps) : noisy\_image = noisy\_image + step\_noise\[step]
- Processus de diffusion inverse: En revanche, le processus de diffusion inverse marque le chemin vers la clarté. Cette phase implique la suppression du bruit, la mise à l'échelle et des étapes itératives qui conduisent finalement à l'émergence d'une image claire. C'est un peu comme si l'on regardait une image brumeuse devenir progressivement plus nette.
# Inverser le processus de diffusion for step in reversed(range(num_steps)) : noisy\_image = noisy\_image - step\_noise\[step]
Dans le processus de diffusion vers l'avant, il est essentiel de noter que la mise à l'échelle des valeurs des pixels est une étape clé avant l'ajout d'autres bruits. L'omission de cette étape peut entraîner une saturation de l'image, avec perte de détails.
# Mise à l'échelle des valeurs des pixels scaled\_image = original\_image \* scaling\_factor
4. Leveraging Convolutional Neural Networks (CNNs):
Dans le processus de diffusion inverse, les réseaux neuronaux convolutifs (CNN) jouent un rôle essentiel. Lorsqu'une image est recouverte d'un bruit pur, ces réseaux neuronaux sont capables de la débruiter. Ils éliminent habilement le bruit, dévoilant une image claire et cohérente qui reflète fidèlement l'original.
5. Formation pour les générations futures:
Après l'entraînement, le modèle de diffusion est préparé à générer de nouvelles images. Cela implique l'introduction intentionnelle de bruit dans les données d'entrée. Le modèle prend alors les choses en main et utilise ses prouesses en matière de débruitage pour créer de nouvelles versions vierges des données d'entrée.
# Générer de nouvelles images en introduisant du bruit new\_image = noisy\_input\_data + generated\_noise
L'espace latent intermédiaire dans les modèles de diffusion modernes :
Dans le domaine des modèles modernes de diffusion d'images, un rebondissement fascinant se produit. Ces modèles introduisent souvent un troisième acteur dans le mélange, un espace latent intermédiaire. Plutôt que d'opérer directement sur les pixels bruts de l'image, le processus de diffusion se déroule dans cet espace latent. Cette innovation améliore l'efficacité des modèles de diffusion, en permettant des transformations plus nuancées et contrôlées.
Applications des modèles de diffusion en IA/ML
Le modèle de diffusion est une approche qui gagne en popularité dans la modélisation générative en raison de ses nombreux cas d'utilisation dans la vie réelle. Il est utilisé dans la génération d'images, la génération de texte à partir d'images, la super-résolution d'images, la génération de langage naturel, etc.
Génération de langage naturel
[Le traitement du langage naturel (https://zilliz.com/learn/top-5-nlp-applications) (NLP) a de nombreuses applications réelles dans le monde actuel de l'IA. En raison de leur capacité à produire divers résultats, les modèles de diffusion sont essentiellement appliqués à la génération de langage naturel (NLG). Ils permettent de nombreuses tâches de NLG dans les grands modèles de langage (LLM) tels que les transformateurs génératifs pré-entraînés (GPT). Il s'agit notamment de la génération de contenu, du résumé de texte et de l'achèvement de texte.
Génération d'images et de vidéos
Les modèles de diffusion améliorent la qualité des vidéos générées. Ils permettent de résoudre les problèmes de complexité et de continuité spatio-temporelle des images vidéo. Cette capacité permet aux créateurs de contenu d'utiliser des invites textuelles pour générer des scripts vidéo courts et de haute qualité.
Génération de texte à partir d'images
Aujourd'hui, vous pouvez générer des images en envoyant des invites de texte à un générateur texte-image. Imagen de Google et DALL-E d'OpenAI en sont des exemples. Les LLM utilisent la diffusion pour décoder les mots visuels en une image. Idéalement, ces générateurs codent les images sous forme de mots visuels vectoriels. Ils utilisent ensuite ces mots pour conditionner un modèle de diffusion afin de générer une nouvelle image avec un style similaire à l'image originale.
Super résolution d'image
L'une des premières applications des modèles de diffusion est la super résolution d'images. Il s'agit d'améliorer la résolution d'une image de basse à haute résolution tout en conservant son contenu autant que possible.
La résolution d'images à l'aide du modèle de diffusion se fait en deux étapes. Tout d'abord, vous utilisez le modèle de diffusion pour générer des images à faible résolution, qui sont plus faciles et plus rapides à entraîner. Ensuite, vous entraînez un modèle de diffusion distinct et conditionnez le modèle à une super-résolution qui améliorera la résolution des images de faible qualité.
Limites des modèles de diffusion
Les modèles de diffusion sont puissants et révolutionnent le secteur de l'IA. Cependant, comme nous le montrerons ci-dessous, ils présentent un certain nombre de difficultés.
La formation des modèles de diffusion prend du temps
Les modèles de diffusion s'appuient sur le débruitage pour générer des images. La formation de modèles de débruitage à partir de zéro implique de nombreuses itérations. Aux premiers niveaux, les modèles de diffusion sont entraînés plus longtemps. L'entraînement diminue progressivement aux stades ultérieurs, lorsque le modèle peut générer des échantillons qui correspondent étroitement aux données d'entraînement. Ce processus peut prendre quelques minutes ou quelques heures de temps de calcul. En d'autres termes, les modèles de diffusion utilisent des milliers d'appels aux réseaux neuronaux pour générer des échantillons, alors que les GAN n'utilisent qu'un seul appel. Les modèles de diffusion sont donc plus lents à générer des échantillons.
Il est difficile d'affiner un modèle de diffusion
Pour obtenir une version individualisée d'un modèle, vous prenez un modèle pré-entraîné et vous l'entraînez avec vos propres données. Cependant, il est difficile d'affiner un modèle de diffusion inconditionnel pré-entraîné avec des données limitées. Le manque de données peut entraîner un surajustement au cours des premières étapes de l'apprentissage. Les images résultant de modèles surajoutés sont de faible qualité et peu diversifiées.
Les modèles de diffusion nécessitent une mémoire importante
Les grands modèles de diffusion nécessitent une grande quantité de mémoire. Un modèle de diffusion peut contenir des milliards de paramètres. Ils sont donc entraînés et testés sur des serveurs puissants. Compte tenu de la taille limitée de la mémoire du GPU, la mise en œuvre de ces modèles sur des appareils mobiles est exigeante. En raison de cette limitation, les appareils mobiles ont des difficultés à exécuter un seul modèle de diffusion de grande taille.
L'utilisation de la mémoire GPU constituant une menace pour le déploiement des modèles de diffusion sur les appareils mobiles, des solutions sont en cours d'élaboration. L'une d'entre elles consiste à publier des versions plus petites des modèles de diffusion. Les modèles sont suffisamment compressés pour être déployés sur les appareils mobiles.
FAQ
Quelle est la différence entre un GAN et un modèle de diffusion ?
Les réseaux adversaires génératifs (GAN) fonctionnent selon un processus de formation contradictoire. Ils utilisent un réseau neuronal générateur pour produire des échantillons de données et un réseau neuronal discriminateur pour différencier les échantillons de données authentiques des faux. Un modèle de diffusion est un modèle basé sur la vraisemblance qui génère des échantillons en ajoutant itérativement un bruit gaussien aux données et en appliquant une fonction de débruitage apprise pour transformer progressivement les données en échantillons réalistes.
Quelle est la différence entre un transformateur et un modèle de diffusion ?
Les transformateurs appliquent des mécanismes d'auto-attention pour apprendre la relation contextuelle entre les éléments des données séquentielles et excellent dans la classification d'images et le NLP. Les modèles de diffusion excellent dans la production d'images photoréalistes de haute qualité.
Quels sont les défis posés par les modèles de diffusion ?
Les modèles de diffusion suivent un processus d'apprentissage du débruitage qui prend du temps et comporte de nombreuses itérations. En outre, les modèles de diffusion de grande taille, avec des milliards de paramètres, nécessitent des ressources mémoire importantes. Enfin, le réglage fin d'un modèle de diffusion avec des données limitées peut conduire à un surajustement, ce qui se traduit par des images générées de qualité médiocre et moins diversifiées.
Comment un modèle de diffusion génère-t-il des images ?
Les modèles de diffusion génèrent des images par le biais d'un processus itératif qui implique la diffusion et le débruitage des valeurs des pixels d'une image afin de générer des images de plus en plus cohérentes et détaillées.
- Qu'est-ce qu'un modèle de diffusion ?
- Composantes des modèles de diffusion
- Comment fonctionnent les modèles de diffusion ?
- Applications des modèles de diffusion en IA/ML
- Limites des modèles de diffusion
- FAQ
Contenu
Commencez gratuitement, évoluez facilement
Essayez la base de données vectorielle entièrement managée conçue pour vos applications GenAI.
Essayer Zilliz Cloud gratuitement