Diffusion Models
Khám phá cách các diffusion models sử dụng AI tạo sinh để tạo ra dữ liệu có độ trung thực cao. Tìm hiểu cách tăng cường huấn luyện Ultralytics YOLO26 với dữ liệu tổng hợp thực tế ngay hôm nay.
Diffusion models là một lớp các thuật toán generative AI học cách tạo ra các mẫu dữ liệu mới bằng cách đảo ngược quá trình thêm nhiễu dần dần. Không giống như các discriminative models truyền thống được sử dụng cho các tác vụ như object detection hoặc phân loại (classification), vốn dự đoán nhãn từ dữ liệu, diffusion models tập trung vào việc tạo ra nội dung có độ trung thực cao—đáng chú ý nhất là hình ảnh, âm thanh và video—mô phỏng sát các thuộc tính thống kê của dữ liệu trong thế giới thực. Chúng đã nhanh chóng trở thành giải pháp tối tân (state-of-the-art) cho việc tổng hợp hình ảnh độ phân giải cao, vượt qua các đối thủ dẫn đầu trước đó như Generative Adversarial Networks (GANs) nhờ sự ổn định trong quá trình huấn luyện và khả năng tạo ra các kết quả đa dạng.
Cách thức hoạt động của mô hình khuếch tán#
Cơ chế cốt lõi của một mô hình khuếch tán dựa trên nhiệt động lực học không cân bằng. Quá trình huấn luyện bao gồm hai giai đoạn riêng biệt: quá trình thuận (khuếch tán) và quá trình nghịch (khử nhiễu).
- Forward Process: Giai đoạn này phá hủy một cách có hệ thống cấu trúc của hình ảnh huấn luyện bằng cách thêm một lượng nhỏ Gaussian noise qua một chuỗi các bước thời gian. Khi quá trình tiếp tục, dữ liệu phức tạp (như bức ảnh chụp một con mèo) dần dần biến đổi thành nhiễu ngẫu nhiên thuần túy, không có cấu trúc.
- Reverse Process: Mục tiêu của neural network là học cách đảo ngược quá trình hỏng dữ liệu này. Bắt đầu từ nhiễu ngẫu nhiên, model dự đoán phần nhiễu đã được thêm vào ở mỗi bước và trừ nó đi. Bằng cách loại bỏ nhiễu lặp đi lặp lại, model sẽ "lọc nhiễu" tín hiệu ngẫu nhiên cho đến khi một hình ảnh rõ ràng, chất lượng cao xuất hiện.
Sự tinh chỉnh lặp đi lặp lại này cho phép kiểm soát đặc biệt đối với các chi tiết và kết cấu tinh vi, một lợi thế đáng kể so với các phương pháp tạo sinh một bước.
Các ứng dụng trong thực tế#
Mô hình khuếch tán đã vượt ra khỏi nghiên cứu học thuật để trở thành các công cụ thực tế, cấp độ sản xuất trong nhiều ngành công nghiệp khác nhau.
- Synthetic Data Generation: Một trong những ứng dụng có giá trị nhất đối với các kỹ sư thị giác máy tính (computer vision engineers) là việc tạo ra synthetic data để tăng cường các tập dữ liệu huấn luyện. Nếu một tập dữ liệu thiếu sự đa dạng—ví dụ: thiếu hình ảnh ô tô trong điều kiện có tuyết—diffusion model có thể tạo ra các biến thể thực tế. Điều này giúp cải thiện độ mạnh mẽ (robustness) của các vision models như YOLO26 khi được triển khai trong các môi trường khó lường.
- Inpainting và chỉnh sửa hình ảnh: Mô hình khuếch tán cung cấp sức mạnh cho các công cụ chỉnh sửa nâng cao cho phép người dùng sửa đổi các vùng cụ thể của hình ảnh. Kỹ thuật này, được gọi là inpainting, có thể xóa các đối tượng không mong muốn hoặc lấp đầy các phần bị thiếu của ảnh dựa trên bối cảnh xung quanh. Các kiến trúc sư và nhà thiết kế sử dụng công cụ này để tạo mẫu nhanh, hình dung các thay đổi đối với sản phẩm hoặc môi trường mà không cần kết xuất 3D thủ công.
Phân biệt các thuật ngữ chính#
Việc phân biệt mô hình khuếch tán với các kiến trúc tạo sinh khác là rất hữu ích:
- Diffusion Models vs. GANs: Trong khi GANs sử dụng hai network cạnh tranh nhau (một generator và một discriminator) và nổi tiếng với thời gian lấy mẫu nhanh, chúng thường gặp phải hiện tượng "mode collapse", trong đó model tạo ra các biến thể đầu ra bị hạn chế. Diffusion models thường ổn định hơn trong quá trình huấn luyện và bao phủ phân phối dữ liệu một cách toàn diện hơn, mặc dù chúng có thể chậm hơn ở thời điểm suy luận (inference time).
- Diffusion Models vs. VAEs: Variational Autoencoders (VAEs) nén dữ liệu vào một không gian tiềm ẩn (latent space) và sau đó tái tạo lại nó. Mặc dù VAEs hoạt động nhanh, các hình ảnh do chúng tạo ra đôi khi có thể trông bị mờ so với các chi tiết sắc nét được tạo ra bởi các quá trình diffusion.
Triển khai thực tế#
Mặc dù việc huấn luyện một diffusion model từ đầu đòi hỏi lượng tính toán đáng kể, các kỹ sư có thể tận dụng các pre-trained models hoặc tích hợp chúng vào các quy trình làm việc cùng với các detector hiệu quả. Chẳng hạn, bạn có thể sử dụng diffusion model để tạo ra các biến thể nền cho một tập dữ liệu và sau đó sử dụng Ultralytics Platform để chú thích (annotate) và huấn luyện một detection model trên dữ liệu được nâng cao đó.
Dưới đây là một ví dụ khái niệm sử dụng torch để mô phỏng một bước forward diffusion đơn giản (thêm nhiễu), đây là nền tảng của việc huấn luyện các hệ thống này.
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}")Hướng phát triển tương lai#
Lĩnh vực này đang phát triển nhanh chóng hướng tới các latent diffusion models (LDMs), hoạt động trong không gian tiềm ẩn nén thay vì không gian điểm ảnh (pixel space) để giảm chi phí tính toán. Hiệu suất này giúp khả thi việc chạy các generative models mạnh mẽ trên phần cứng phổ thông. Khi nghiên cứu tiếp tục, chúng tôi kỳ vọng sự tích hợp chặt chẽ hơn giữa các đầu vào generative và các tác vụ discriminative, chẳng hạn như sử dụng các kịch bản do diffusion tạo ra để xác thực độ an toàn của autonomous vehicles hoặc cải thiện medical image analysis bằng cách mô phỏng các bệnh lý hiếm gặp.






