Modèles de diffusion
Découvrez comment les modèles de diffusion révolutionnent l'IA générative en créant des images, des vidéos et des données réalistes avec des détails et une stabilité inégalés.
Les modèles de diffusion sont une classe d'algorithmes
algorithmes d'IA générative qui apprennent à créer de nouveaux
nouveaux échantillons de données en inversant un processus graduel d'ajout de bruit. Inspirés par les principes de la thermodynamique
thermodynamique de non-équilibre, ces modèles se sont imposés comme la technologie de pointe pour générer des données de haute fidélité.
technologie de pointe pour générer des images, des sons et des vidéos de haute fidélité. Contrairement aux méthodes précédentes qui
qui tentent de produire un résultat complexe en une seule étape, les modèles de diffusion affinent itérativement la statique aléatoire en un contenu cohérent, ce qui permet un contrôle sans précédent des détails.
cohérent, ce qui permet un contrôle sans précédent des détails et de la structure sémantique dans les tâches de vision par ordinateur.
dans les tâches de vision par ordinateur.
Le mécanisme de diffusion
Le fonctionnement des modèles de diffusion peut être décomposé en deux phases distinctes : le processus aller et le processus retour.
inverse.
-
Processus en aval (diffusion) : Cette phase consiste à détruire systématiquement la structure des données.
À partir d'une image claire tirée des données d'apprentissage, le modèle ajoute de petites quantités de bruit gaussien sur une période de temps donnée,
le modèle ajoute de petites quantités de bruit gaussien sur une
série de pas de temps. Finalement, les données se dégradent en un bruit aléatoire pur et non structuré. Ce processus est généralement
fixe et suit une règle de chaîne de Markov.
-
Processus inverse (débruitage) : Cette phase constitue le cœur de la tâche d'apprentissage automatique.
de l 'apprentissage automatique réside dans cette phase. A
réseau neuronal - souventune architecture U-Net - est
est entraîné à prédire et à soustraire le bruit ajouté à chaque étape. En apprenant à inverser la corruption, le modèle peut
partir d'un bruit pur et le "débruiter" progressivement pour obtenir une nouvelle image cohérente.
Des recherches telles que l'article fondateur sur les modèles probabilistes de diffusion de débruitage (DDPM) ont établi que le
modèles probabilistes de débruitage par diffusion (DDPM) ont permis d'établir le
cadre mathématique qui rend ce raffinement itératif stable et efficace.
Diffusion et GAN
Avant que les modèles de diffusion ne prennent de l'importance,
réseaux adversoriels génératifs (GAN)
étaient l'approche dominante pour la synthèse d'images. Bien que ces deux approches soient puissantes, elles diffèrent fondamentalement :
-
Stabilité de la formation : Les modèles de diffusion sont généralement plus faciles à entraîner. Les GANs reposent sur un jeu
entre deux réseaux (le générateur et le discriminateur), ce qui conduit souvent à l'effondrement ou à l'instabilité du mode.
La diffusion utilise une fonction de perte plus stable liée à la prédiction du bruit.
à la prédiction du bruit.
-
Diversité des résultats : Les modèles de diffusion excellent dans la production d'échantillons diversifiés et très détaillés, alors que les GAN peuvent avoir du mal à couvrir la totalité de la distribution de l'ensemble de données.
GAN peuvent avoir du mal à couvrir la totalité de la distribution de l'ensemble de données.
-
Vitesse d'inférence : Les GAN génèrent des images en un seul passage, ce qui les rend plus rapides.
plus rapide. Les modèles de diffusion nécessitent plusieurs étapes pour affiner une image, ce qui entraîne une latence d'inférence plus élevée.
latence d'inférence plus élevée. Cependant, les nouvelles techniques
comme la diffusion latente (utilisée dans la
diffusion stable) effectuent le processus dans un espace latent
dans un espace latent compressé, ce qui permet d'augmenter significativement la vitesse
sur les GPU grand public.
Applications concrètes
La polyvalence des modèles de diffusion s'étend à de nombreuses industries, alimentant des outils qui améliorent la créativité et les flux de travail d'ingénierie.
les flux de travail de l'ingénierie.
-
Génération de données synthétiques : L'obtention de données réelles étiquetées peut s'avérer coûteuse ou sensible au respect de la vie privée.
Les modèles de diffusion peuvent générer de grandes quantités de données
réalistes afin d'entraîner des modèles
modèles de détection d'objets robustes. Par exemple, un
un ingénieur pourrait générer des milliers d'images synthétiques de défauts industriels rares pour entraîner des modèles de détection d'objets robustes.
YOLO11 pour l'assurance qualité.
-
Création d'images haute fidélité : Des outils comme DALL-E 3,
Midjourney et
Adobe Firefly tirent parti de la diffusion pour transformer des textes en
en œuvres d'art et en ressources de qualité professionnelle.
-
Imagerie médicale : Dans le domaine de la santé, les modèles de diffusion aident à la
super-résolution, reconstruisant des images d'IRM ou de CT de haute qualité à partir d'entrées de résolution inférieure.
IRM ou CT de haute qualité à partir d'entrées à faible résolution, ce qui contribue à une
l 'analyse d'images médicales.
-
Synthèse vidéo et audio : Le concept s'étend au-delà des images statiques aux données temporelles. Des modèles comme
Sora d'OpenAI et les outils de
Runway ML appliquent les principes de diffusion pour générer des séquences vidéo cohérentes et des paysages sonores réalistes.
des paysages sonores réalistes.
Mise en œuvre du processus prévisionnel
Pour comprendre comment les modèles de diffusion préparent les données pour la formation, il est utile de visualiser le processus de transmission. Le processus
suivant PyTorch suivant montre comment un bruit gaussien est ajouté à un tenseur, simulant une seule étape de dégradation.
est ajouté à un tensor, simulant une seule étape de dégradation.
import torch
def add_gaussian_noise(image_tensor, noise_level=0.1):
"""Simulates one step of the forward diffusion process by adding noise.
Args:
image_tensor (torch.Tensor): Input image tensor.
noise_level (float): Standard deviation of the noise.
"""
noise = torch.randn_like(image_tensor) * noise_level
noisy_image = image_tensor + noise
return noisy_image
# Create a dummy tensor representing a 640x640 image
clean_img = torch.zeros(1, 3, 640, 640)
noisy_output = add_gaussian_noise(clean_img, noise_level=0.2)
print(f"Output shape: {noisy_output.shape} | Noise added successfully.")
En inversant ce processus, le modèle apprend à récupérer le signal du bruit, ce qui permet de générer des visuels complexes qui peuvent être utilisés pour augmenter les ensembles de données.
complexes qui peuvent être utilisés pour augmenter les ensembles de données pour des tâches en aval
comme la segmentation ou la classification d'images.