Découvrez comment les modèles de diffusion utilisent l'IA générative pour créer des données haute fidélité. Apprenez dès aujourd'hui à améliorer la formation Ultralytics grâce à des données synthétiques réalistes.
Les modèles de diffusion sont une classe d'algorithmes d'IA générative qui apprennent à créer de nouveaux échantillons de données en inversant un processus d'ajout progressif de bruit. Contrairement aux modèles discriminatifs traditionnels utilisés pour des tâches telles que la détection ou la classification d'objets, qui prédisent les étiquettes à partir des données, les modèles de diffusion se concentrent sur la génération de contenus haute fidélité, notamment des images, des fichiers audio et des vidéos, qui imitent étroitement les propriétés statistiques des données du monde réel. Ils sont rapidement devenus la solution de pointe pour la synthèse d'images haute résolution, dépassant les leaders précédents tels que les réseaux antagonistes génératifs (GAN) grâce à leur stabilité d'entraînement et leur capacité à générer des résultats diversifiés.
Le mécanisme central d'un modèle de diffusion repose sur la thermodynamique hors équilibre. Le processus d'entraînement implique deux phases distinctes : le processus direct (diffusion) et le processus inverse (débruitage).
Ce raffinement itératif permet un contrôle exceptionnel sur les détails fins et la texture, un avantage significatif par rapport aux méthodes de génération en une seule étape.
Les modèles de diffusion ont dépassé le stade de la recherche universitaire pour devenir des outils pratiques, adaptés à la production, dans divers secteurs industriels.
Il est utile de distinguer les modèles de diffusion des autres architectures génératives :
Bien que l'entraînement d'un modèle de diffusion à partir de zéro nécessite une puissance de calcul importante, les ingénieurs peuvent exploiter des modèles pré-entraînés ou les intégrer dans des flux de travail aux côtés de détecteurs efficaces. Par exemple, vous pouvez utiliser un modèle de diffusion pour générer des variations d'arrière-plan pour un ensemble de données, puis utiliser Ultralytics pour annoter et entraîner un modèle de détection sur ces données améliorées.
Voici un exemple conceptuel utilisant torch simuler une étape de diffusion simple vers l'avant (en ajoutant du bruit),
qui est à la base de l'entraînement de ces systèmes.
import torch
def add_noise(image_tensor, noise_level=0.1):
"""Simulates a single step of the forward diffusion process by adding Gaussian noise."""
# Generate Gaussian noise with the same shape as the input image
noise = torch.randn_like(image_tensor) * noise_level
# Add noise to the original image
noisy_image = image_tensor + noise
# Clamp values to ensure they remain valid image data (e.g., 0.0 to 1.0)
return torch.clamp(noisy_image, 0.0, 1.0)
# Create a dummy image tensor (3 channels, 64x64 pixels)
dummy_image = torch.rand(1, 3, 64, 64)
noisy_result = add_noise(dummy_image)
print(f"Original shape: {dummy_image.shape}, Noisy shape: {noisy_result.shape}")
Le domaine évolue rapidement vers les modèles de diffusion latente (LDM), qui fonctionnent dans un espace latent compressé plutôt que dans un espace pixel afin de réduire les coûts de calcul. Cette efficacité permet d'exécuter de puissants modèles génératifs sur du matériel grand public. À mesure que la recherche progresse, nous nous attendons à une intégration plus étroite entre les entrées génératives et les tâches discriminatives , telles que l'utilisation de scénarios générés par diffusion pour valider la sécurité des véhicules autonomes ou améliorer l' analyse d'images médicales en simulant des pathologies rares .