اكتشف كيف تستخدم نماذج الانتشار الذكاء الاصطناعي التوليدي لإنشاء بيانات عالية الدقة. تعلم كيفية تحسين تدريب Ultralytics باستخدام بيانات اصطناعية واقعية اليوم.
نماذج الانتشار هي فئة من خوارزميات الذكاء الاصطناعي التوليدي التي تتعلم إنشاء عينات بيانات جديدة عن طريق عكس عملية إضافة الضوضاء التدريجية. على عكس النماذج التمييزية التقليدية المستخدمة في مهام مثل الكشف عن الكائنات أو التصنيف، والتي تتنبأ بالتصنيفات من البيانات، تركز نماذج الانتشار على إنشاء محتوى عالي الدقة — لا سيما الصور والصوت والفيديو — الذي يحاكي عن كثب الخصائص الإحصائية للبيانات في العالم الحقيقي. وقد سرعان ما أصبحت الحل الأحدث لتوليف الصور عالية الدقة، متجاوزةً الرواد السابقين مثل الشبكات التنافسية التوليدية (GANs) بفضل استقرارها في التدريب وقدرتها على إنتاج مخرجات متنوعة.
تستند الآلية الأساسية لنموذج الانتشار إلى ديناميكا حرارية غير متوازنة. تتضمن عملية التدريب مرحلتين متميزتين: العملية الأمامية (الانتشار) والعملية العكسية (إزالة الضوضاء).
يتيح هذا التحسين التكراري تحكمًا استثنائيًا في التفاصيل الدقيقة والملمس، وهو ما يمثل ميزة كبيرة مقارنة بأساليب الإنشاء أحادية الخطوة.
لقد تجاوزت نماذج الانتشار مرحلة البحث الأكاديمي لتصبح أدوات عملية على مستوى الإنتاج في مختلف الصناعات.
من المفيد التمييز بين نماذج الانتشار والبنى التوليدية الأخرى:
في حين أن تدريب نموذج الانتشار من الصفر يتطلب حوسبة كبيرة، يمكن للمهندسين الاستفادة من النماذج المدربة مسبقًا أو دمجها في سير العمل جنبًا إلى جنب مع أجهزة الكشف الفعالة. على سبيل المثال، يمكنك استخدام نموذج الانتشار لإنشاء تباينات في الخلفية لمجموعة بيانات ثم استخدام Ultralytics لتعليق وتدريب نموذج الكشف على تلك البيانات المحسنة.
فيما يلي مثال مفاهيمي يستخدم torch لمحاكاة خطوة انتشار أمامية بسيطة (إضافة ضوضاء)،
وهي أساس تدريب هذه الأنظمة.
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}")
يتطور هذا المجال بسرعة نحو نماذج الانتشار الكامن (LDMs)، التي تعمل في مساحة كامنة مضغوطة بدلاً من مساحة البكسل لتقليل تكاليف الحوسبة. هذه الكفاءة تجعل من الممكن تشغيل نماذج توليدية قوية على أجهزة المستهلكين. مع استمرار الأبحاث، نتوقع تكاملًا أوثق بين المدخلات التوليدية والمهام التمييزية ، مثل استخدام السيناريوهات الناتجة عن الانتشار للتحقق من سلامة المركبات ذاتية القيادة أو تحسين تحليل الصور الطبية من خلال محاكاة حالات مرضية نادرة .