Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Diffusion Models

Les modèles de diffusion génèrent des images, des vidéos et de l’audio en apprenant à inverser un processus graduel d’ajout de bruit, étape par étape, du bruit pur jusqu’à un nouvel échantillon.

Les modèles de diffusion sont des modèles d'IA générative qui créent des données en apprenant à inverser un processus graduel d'ajout de bruit. Pendant l'entraînement, les images ou d'autres données sont dégradées par du bruit gaussien au fil de nombreuses petites étapes, et un réseau de neurones apprend à prédire le bruit à chaque étape. Pour générer un échantillon, le modèle part d'un bruit aléatoire pur et le retire étape par étape jusqu'à ce qu'un nouvel échantillon apparaisse. Jascha Sohl-Dickstein et ses collègues ont proposé cette approche en 2015 dans Apprentissage non supervisé profond par la thermodynamique hors équilibre, et Jonathan Ho, Ajay Jain et Pieter Abbeel l'ont rendue compétitive en 2020 avec Modèles probabilistes de diffusion par débruitage (DDPM), qui ont établi un FID de pointe de 3,17 sur CIFAR-10. En 2021, des chercheurs d'OpenAI ont montré que les modèles de diffusion surpassaient les GANs pour la synthèse d'images sur ImageNet, et les modèles de diffusion et leurs variantes fondées sur l'appariement de flux alimentent désormais les systèmes de génération d'images à partir de texte comme Stable Diffusion, les générateurs vidéo, les éditeurs d'images et les modèles scientifiques.

Fonctionnement des modèles de diffusion#

Le processus direct est fixe et non appris. Il ajoute un peu de bruit gaussien à chacune des T étapes ; DDPM utilise T = 1 000, avec une variance du bruit qui augmente linéairement de 0.0001 à 0.02 par étape. Comme une somme de bruits gaussiens reste gaussienne, une image d'entraînement peut passer directement à n'importe quelle étape t sous forme fermée, xt = sqrt(alpha_bar_t) * x0 + sqrt(1 - alpha_bar_t) * noise, où alpha_bar_t est le produit de 1 - beta sur les t premières étapes. L'entraînement sélectionne régulièrement une image, une étape aléatoire et un nouveau bruit, construit xt et apprend au réseau à prédire ce bruit à l'aide d'une erreur quadratique moyenne, l'objectif simplifié de DDPM. Ce code applique à une photo le processus direct avec le calendrier de DDPM :

import urllib.request

import numpy as np
import torch
from PIL import Image

# DDPM's linear schedule: 1,000 steps whose noise variance rises from 0.0001 to 0.02
betas = torch.linspace(1e-4, 0.02, 1000)
alpha_bar = torch.cumprod(1 - betas, dim=0)

# Load a photo and scale its pixels to [-1, 1]
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg")).convert("RGB").resize((256, 256))
x0 = torch.tensor(np.array(image), dtype=torch.float32).permute(2, 0, 1) / 127.5 - 1

# Jump straight to step t in closed form: x_t = sqrt(alpha_bar) * x0 + sqrt(1 - alpha_bar) * noise
frames = []
for t in (0, 99, 299, 599, 999):
    xt = alpha_bar[t].sqrt() * x0 + (1 - alpha_bar[t]).sqrt() * torch.randn_like(x0)
    frames.append(((xt.clamp(-1, 1) + 1) * 127.5).byte().permute(1, 2, 0).numpy())
    print(f"step {t + 1}: image weight {alpha_bar[t].sqrt():.3f}, noise weight {(1 - alpha_bar[t]).sqrt():.3f}")
Image.fromarray(np.hstack(frames)).save("forward_diffusion.jpg")

Le poids de l'image passe de 1.000 à l'étape 1 à 0.947 à l'étape 100, 0.630 à l'étape 300, 0.161 à l'étape 600 et 0.006 à l'étape 1,000, tandis que le poids du bruit atteint 1.000. L'image enregistrée forward_diffusion.jpg montre le bus net, puis granuleux, puis à peine visible, avant de disparaître.

La génération exécute le processus à l'envers. Elle part d'un bruit gaussien pur ; à chaque étape, le réseau prédit le bruit de l'échantillon actuel, un solveur en retire une partie, puis le résultat légèrement plus net passe à l'étape suivante. Une invite textuelle ou une étiquette de classe entre dans le réseau comme condition, souvent par le biais de l'attention croisée. Le guidage sans classifieur, introduit par Jonathan Ho et Tim Salimans, entraîne un réseau avec et sans condition, puis extrapole, au moment de l'échantillonnage, de la prédiction inconditionnelle vers la prédiction conditionnelle. Une échelle de guidage plus élevée, comme la valeur par défaut de 7.5 dans les pipelines Stable Diffusion 1.x, suit plus fidèlement l'invite au prix d'une moindre diversité.

Accélérer l'échantillonnage#

L'échantillonnage DDPM nécessite 1 000 évaluations du réseau par image. Une grande partie des progrès du domaine vise donc à réduire ce nombre :

  • Meilleurs échantillonneurs : DDIM réutilise un DDPM entraîné avec un échantillonneur déterministe et produit des échantillons de haute qualité de 10 à 50 fois plus vite en temps réel. Les solveurs EDO plus récents ramènent la génération habituelle à environ 20 à 50 étapes.
  • Diffusion latente : un modèle de diffusion latente débruite une représentation compressée par un autoencodeur au lieu de pixels. L'autoencodeur de Stable Diffusion transforme une image de 512×512×3 en un latent de 64×64×4, soit 48 fois moins de valeurs.
  • Distillation : les modèles de cohérence apprennent à convertir directement n'importe quel échantillon bruité en un échantillon net, ce qui permet une génération en une étape. Les modèles de cohérence latents appliquent la même idée à Stable Diffusion en 2 à 4 étapes.
  • Trajectoires plus rectilignes : l'appariement de flots et le flot rectifié entraînent les modèles sur des trajectoires rectilignes allant du bruit aux données, que les solveurs peuvent parcourir en moins d'étapes.

Le réseau de débruitage lui-même est passé du U-Net convolutionnel de DDPM et Stable Diffusion 1.x au transformeur de diffusion (DiT) utilisé par la plupart des générateurs d'images et de vidéos actuels.

Modèles de diffusion et autres modèles génératifs#

  • Réseaux antagonistes génératifs (GANs) : un GAN génère un échantillon en une seule passe avant, mais son entraînement antagoniste entre générateur et discriminateur est sujet à l'instabilité et à l'effondrement des modes, où le générateur ne couvre qu'une partie des données. L'entraînement des modèles de diffusion repose sur une régression stable et couvre plus complètement la distribution des données, au prix de nombreuses étapes d'échantillonnage.
  • Autoencodeurs variationnels (VAEs) : un VAE décode un vecteur latent en un échantillon en une seule passe, mais ses échantillons ont tendance à être plus flous. Les modèles de diffusion latente utilisent un autoencodeur de type VAE uniquement pour compresser les images et confient la génération au modèle de diffusion.
  • Modèles autorégressifs : les modèles de langage et les modèles visuels autorégressifs génèrent un jeton ou une échelle à la fois, en fonction de ce qui précède. Un modèle de diffusion affine toutes les parties de l'échantillon en parallèle à chaque étape, et les modèles de langage par diffusion appliquent le même débruitage au texte.

Applications concrètes#

  • Génération et retouche d'images : les modèles de génération d'images à partir de texte créent des images à partir d'invites ; le remplissage d'image régénère une zone masquée pour qu'elle corresponde à son environnement ; ControlNet contraint la disposition à l'aide de cartes de contours, de profondeur ou de pose ; et les modèles de diffusion de suréchantillonnage effectuent une super-résolution.
  • Génération vidéo : les modèles de génération vidéo débruitent des latents compressés qui couvrent de nombreuses images à la fois, de sorte que chaque image est générée avec celles qui l'entourent.
  • Données d'entraînement synthétiques : les images générées comblent les lacunes des jeux de données de vision, par exemple pour les défauts rares, les conditions météorologiques inhabituelles ou les points de vue peu courants. Dans un jeu de données sur la Ultralytics Platform, l'action Generate Similar Images crée par lot de 1 à 16 nouvelles images inspirées d'une image existante. Les images que tu conserves rejoignent le jeu de données sans étiquette et sont prêtes à être annotées.
  • Robotique : les politiques de diffusion génèrent des séquences d'actions robotiques en les débruitant, à partir d'images de caméra.
  • Science : AlphaFold 3 prédit les structures de complexes de protéines, d'acides nucléiques et de petites molécules grâce à un module de diffusion qui débruite les coordonnées brutes des atomes et remplace le module de structure d'AlphaFold 2.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique