Diffusion Models
Khám phá cách diffusion model sử dụng generative AI để tạo dữ liệu có độ trung thực cao. Tìm hiểu cách nâng cao quá trình training Ultralytics YOLO26 bằng dữ liệu synthetic chân thực ngay hôm nay.
Mô hình khuếch tán là một nhóm thuật toán AI tạo sinh học cách tạo ra các mẫu dữ liệu mới bằng cách đảo ngược quy trình bổ sung nhiễu dần dần. Không giống các mô hình phân biệt truyền thống được sử dụng cho các tác vụ như phát hiện đối tượng hoặc phân loại, vốn dự đoán nhãn từ dữ liệu, mô hình khuếch tán tập trung vào việc tạo nội dung có độ trung thực cao—đáng chú ý nhất là hình ảnh, âm thanh và video—mô phỏng chặt chẽ các đặ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 hiện đại nhất cho việc tổng hợp hình ảnh độ phân giải cao, vượt qua các mô hình dẫn đầu trước đây như Mạng sinh đối nghịch (GANs) nhờ tính ổn định trong huấn luyện và khả năng tạo ra các đầu ra đa dạng.
Cách mô hình khuếch tán hoạt động#
Cơ chế cốt lõi của mô hình khuếch tán dựa trên nhiệt động lực học không cân bằng. Quy trình huấn luyện bao gồm hai giai đoạn riêng biệt: quy trình xuôi (khuếch tán) và quy trình ngược (khử nhiễu).
- Quy trình xuôi: Giai đoạn này có hệ thống phá hủy cấu trúc của một hình ảnh huấn luyện bằng cách bổ sung một lượng nhỏ nhiễu Gaussian qua một chuỗi các bước thời gian. Khi quy trình tiếp diễn, dữ liệu phức tạp (chẳng hạn như ảnh một con mèo) dần chuyển thành nhiễu ngẫu nhiên thuần túy, không có cấu trúc.
- Quy trình ngược: Mục tiêu của mạng neural là học cách đảo ngược quá trình làm hỏng này. Bắt đầu từ nhiễu ngẫu nhiên, model dự đoán nhiễu đã được thêm vào ở mỗi bước rồi trừ nó đi. Bằng cách lặp đi lặp lại việc loại bỏ nhiễu, model "khử nhiễu" tín hiệu ngẫu nhiên cho đến khi xuất hiện một hình ảnh mạch lạc, chất lượng cao.
Quá trình tinh chỉnh lặp này cho phép kiểm soát đặc biệt tốt các chi tiết và kết cấu nhỏ, 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 ngoài phạm vi nghiên cứu học thuật để trở thành các công cụ thực tiễn, đạt chất lượng production, trong nhiều ngành khác nhau.
- Tạo dữ liệu tổng hợp: Một trong những ứng dụng có giá trị nhất đối với các kỹ sư computer vision là tạo dữ liệu tổng hợp để tăng cường các dataset huấn luyện. Nếu một dataset thiếu tính đa dạng—ví dụ như thiếu hình ảnh ô tô trong điều kiện có tuyết—một mô hình khuếch tán có thể tạo ra các biến thể chân thực. Điều này giúp cải thiện độ robust của các vision model như YOLO26 khi được triển khai trong những môi trường khó dự đoán.
- 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 những vùng cụ thể trong 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 điền vào những phần bị thiếu của ảnh dựa trên ngữ cảnh xung quanh. Các kiến trúc sư và nhà thiết kế sử dụng kỹ thuật này để tạo prototype nhanh, trực quan hóa những thay đổi đối với sản phẩm hoặc môi trường mà không cần dựng 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:
- Mô hình khuếch tán so với GANs: Trong khi GANs sử dụng hai mạng cạnh tranh (một generator và một discriminator) và được biết đến với khả năng sampling nhanh, chúng thường gặp phải hiện tượng "mode collapse", trong đó model chỉ tạo ra một số ít dạng đầu ra. Mô hình khuếch tán nhìn chung ổn định hơn trong quá trình huấn luyện và bao phủ phân phối dữ liệu toàn diện hơn, dù có thể chậm hơn tại thời điểm inference.
- Mô hình khuếch tán so với VAEs: Bộ mã hóa tự động biến phân (VAEs) nén dữ liệu vào một latent space rồi tái tạo dữ liệu. Mặc dù VAEs nhanh, hình ảnh được tạo ra đôi khi có thể bị mờ so với các chi tiết sắc nét do quy trình khuếch tán tạo ra.
Triển khai thực tế#
Mặc dù việc huấn luyện một mô hình khuếch tán từ đầu đòi hỏi năng lực tính toán đáng kể, các kỹ sư có thể tận dụng những model đã được huấn luyện trước hoặc tích hợp chúng vào workflow cùng với các detector hiệu quả. Chẳng hạn, bạn có thể sử dụng một mô hình khuếch tán để tạo các biến thể background cho một dataset, sau đó sử dụng Ultralytics Platform để gán nhãn và huấn luyện một detection model trên dữ liệu đã được tăng cường đó.
Dưới đây là một ví dụ khái niệm sử dụng torch để mô phỏng một bước diffusion xuôi đơn giản (bổ sung nhiễu), vốn 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}")Định hướng phát triển trong tương lai#
Lĩnh vực này đang nhanh chóng phát triển theo hướng các mô hình khuếch tán tiềm ẩn (LDMs), hoạt động trong latent space được nén thay vì pixel space nhằm giảm chi phí tính toán. Hiệu quả này khiến việc chạy các mô hình tạo sinh mạnh mẽ trên phần cứng dành cho người dùng phổ thông trở nên khả thi. Khi nghiên cứu tiếp tục phát triển, chúng tôi kỳ vọng sự tích hợp chặt chẽ hơn giữa các đầu vào tạo sinh và các tác vụ phân biệt, chẳng hạn như sử dụng các kịch bản do mô hình khuếch tán tạo ra để xác thực tính an toàn của xe tự hành hoặc cải thiện phân tích hình ảnh y tế bằng cách mô phỏng các bệnh lý hiếm gặp.









