Descubra cómo los modelos de difusión utilizan la IA generativa para crear datos de alta fidelidad. Aprenda hoy mismo a mejorar el entrenamiento Ultralytics con datos sintéticos realistas.
Los modelos de difusión son una clase de algoritmos de IA generativa que aprenden a crear nuevas muestras de datos invirtiendo un proceso gradual de adición de ruido. A diferencia de los modelos discriminativos tradicionales utilizados para tareas como la detección o clasificación de objetos, que predicen etiquetas a partir de datos, los modelos de difusión se centran en generar contenido de alta fidelidad —sobre todo imágenes, audio y vídeo— que imita fielmente las propiedades estadísticas de los datos del mundo real. Se han convertido rápidamente en la solución más avanzada para la síntesis de imágenes de alta resolución, superando a líderes anteriores como las redes generativas adversarias (GAN) debido a su estabilidad de entrenamiento y su capacidad para generar resultados diversos.
El mecanismo central de un modelo de difusión se basa en la termodinámica de no equilibrio. El proceso de entrenamiento implica dos fases distintas: el proceso directo (difusión) y el proceso inverso (eliminación de ruido).
Este refinamiento iterativo permite un control excepcional sobre los detalles finos y la textura, una ventaja significativa sobre los métodos de generación de un solo paso.
Los modelos de difusión han pasado de ser objeto de investigación académica a convertirse en herramientas prácticas y aptas para la producción en diversos sectores.
Es útil distinguir los modelos de difusión de otras arquitecturas generativas:
Aunque entrenar un modelo de difusión desde cero requiere una gran capacidad de cálculo, los ingenieros pueden aprovechar modelos preentrenados o integrarlos en flujos de trabajo junto con detectores eficientes. Por ejemplo, se puede utilizar un modelo de difusión para generar variaciones de fondo para un conjunto de datos y, a continuación, utilizar Ultralytics para anotar y entrenar un modelo de detección sobre esos datos mejorados.
A continuación se muestra un ejemplo conceptual utilizando torch simular un simple paso de difusión hacia adelante (añadiendo ruido),
que es la base del entrenamiento de estos sistemas.
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}")
El campo está evolucionando rápidamente hacia los modelos de difusión latente (LDM), que operan en un espacio latente comprimido en lugar del espacio de píxeles para reducir los costes computacionales. Esta eficiencia hace que sea factible ejecutar potentes modelos generativos en hardware de consumo. A medida que avanza la investigación, esperamos una integración más estrecha entre las entradas generativas y las tareas discriminativas , como el uso de escenarios generados por difusión para validar la seguridad de los vehículos autónomos o mejorar el análisis de imágenes médicas mediante la simulación de patologías raras .