Model difusi telah muncul sebagai pendekatan kuat dalam generatif AI, menghasilkan hasil state-of-the-art dalam generasi gambar, audio, dan video. Dalam artikel teknis ini, kita akan menjelajahi bagaimana model difusi bekerja, inovasi kunci, dan mengapa mereka menjadi sangat sukses. Kita akan membahas dasar matematika, proses pelatihan, algoritma sampling, dan aplikasi terbaru dari teknologi ini.
Pengenalan Model Difusi
Model difusi adalah kelas model generatif yang belajar untuk secara bertahap mendenoising data dengan membalik proses difusi. Ide intinya adalah memulai dengan kebisingan murni dan secara iteratif memperbaikinya menjadi sampel berkualitas tinggi dari distribusi target.
Pendekatan ini terinspirasi oleh termodinamika non-kesetimbangan – khususnya, proses membalik difusi untuk memulihkan struktur. Dalam konteks pembelajaran mesin, kita dapat memikirkannya sebagai belajar untuk membalik penambahan kebisingan bertahap pada data.
Beberapa kelebihan model difusi termasuk:
Kualitas gambar state-of-the-art, melampaui GAN dalam banyak kasus
Pelatihan stabil tanpa dinamika adversarial
Sangat paralel
Arsitektur fleksibel – setiap model yang memetakan input ke output dengan dimensi yang sama dapat digunakan
Dasar teori yang kuat
Mari kita menyelami lebih dalam bagaimana model difusi bekerja.
Persamaan Diferensial Stokastik mengatur proses maju dan mundur dalam model difusi. Persamaan Diferensial Stokastik maju menambahkan kebisingan pada data, secara bertahap mengubahnya menjadi distribusi kebisingan. Persamaan Diferensial Stokastik mundur, yang dipandu oleh fungsi skor yang dipelajari, secara bertahap menghilangkan kebisingan, mengarah ke generasi gambar realistis dari kebisingan acak. Pendekatan ini kunci untuk mencapai kinerja generatif berkualitas tinggi dalam ruang keadaan kontinu.
Proses Difusi Maju
Proses difusi maju dimulai dengan titik data x₀ yang diambil dari distribusi data nyata, dan secara bertahap menambahkan kebisingan Gaussian selama T langkah waktu untuk menghasilkan versi yang semakin berisik x₁, x₂, …, xT.
Pada setiap langkah waktu t, kita menambahkan sejumlah kecil kebisingan sesuai dengan:
x_t = √(1 - β_t) * x_{t-1} + √(β_t) * ε
Di mana:
β_t adalah jadwal varians yang mengontrol seberapa banyak kebisingan yang ditambahkan pada setiap langkah
ε adalah kebisingan Gaussian acak
Proses ini berlanjut sampai xT hampir murni kebisingan Gaussian.
Secara matematis, kita dapat menjelaskannya sebagai rantai Markov:
Jadwal β_t biasanya dipilih untuk kecil pada langkah waktu awal dan meningkat seiring waktu. Pilihan umum termasuk jadwal linier, kosinus, atau sigmoid.
Proses Difusi Mundur
Tujuan model difusi adalah mempelajari kebalikan dari proses ini – untuk memulai dengan kebisingan murni xT dan secara bertahap mendenoisingnya untuk memulihkan sampel bersih x₀.
Di mana μ_θ dan σ_θ^2 adalah fungsi yang dipelajari (biasanya jaringan saraf) yang diparameterkan oleh θ.
Inovasi kunci adalah bahwa kita tidak perlu secara eksplisit memodelkan distribusi mundur penuh. Sebaliknya, kita dapat memparameterisasinya dalam hal proses maju, yang kita ketahui.
Secara khusus, kita dapat menunjukkan bahwa mean proses mundur optimal μ* adalah:
Arsitektur U-Net adalah pusat dari langkah denoising dalam model difusi. Ini menampilkan struktur encoder-decoder dengan koneksi skip yang membantu melestarikan detail halus selama proses rekonstruksi. Encoder secara bertahap menurunkan sampel input sambil menangkap fitur tingkat tinggi, dan decoder meningkatkan fitur yang dikodekan untuk merekonstruksi gambar. Arsitektur ini sangat efektif dalam tugas yang memerlukan lokalisasi presisi, seperti segmentasi gambar.
Jaringan prediksi kebisingan ε_θ dapat menggunakan arsitektur apa pun yang memetakan input ke output dengan dimensi yang sama. Arsitektur U-Net adalah pilihan populer, terutama untuk tugas generasi gambar.
Proses ini secara bertahap mendenoising sampel, dipandu oleh jaringan prediksi kebisingan yang dipelajari.
Dalam prakteknya, ada beberapa teknik sampling yang dapat meningkatkan kualitas atau kecepatan:
DDIM sampling: Variasi deterministik yang memungkinkan langkah sampling lebih sedikit
Ancestral sampling: Menggabungkan varians yang dipelajari σ_θ^2
Truncated sampling: Berhenti lebih awal untuk generasi yang lebih cepat
Berikut adalah implementasi dasar algoritma sampling:
<p>def sample(model, n_samples, device):
# Mulai dengan kebisingan
x = torch.randn(n_samples, 3, 32, 32).to(device)</p>
<p>for t in reversed(range(1000)):
# Tambahkan kebisingan untuk membuat x_t
t_batch = torch.full((n_samples,), t, device=device)
noise = torch.randn_like(x)
x_t = add_noise(x, noise, t)</p>
<p># Prediksi dan hapus kebisingan
pred_noise = model(x_t, t_batch)
x = remove_noise(x_t, pred_noise, t)</p>
<p># Tambahkan kebisingan untuk langkah berikutnya (kecuali pada t=0)
if t > 0:
noise = torch.randn_like(x)
x = add_noise(x, noise, t-1)</p>
return x
Matematika di Balik Model Difusi
Untuk benar-benar memahami model difusi, kita perlu menyelami lebih dalam matematika yang mendasarinya. Mari kita jelajahi beberapa konsep kunci lebih lanjut:
Rantai Markov dan Persamaan Diferensial Stokastik
Proses difusi maju dalam model difusi dapat dilihat sebagai rantai Markov atau, dalam batas kontinu, sebagai persamaan diferensial stokastik (SDE). Formulasi SDE memberikan kerangka teori yang kuat untuk menganalisis dan memperluas model difusi.
SDE maju dapat ditulis sebagai:
dx = f(x,t)dt + g(t)dw
Di mana:
f(x,t) adalah istilah drift
g(t) adalah koefisien difusi
dw adalah proses Wiener (gerak Brown)
Pilihan yang berbeda dari f dan g mengarah ke jenis proses difusi yang berbeda. Misalnya:
Memahami SDE ini memungkinkan kita untuk menghasilkan strategi sampling optimal dan memperluas model difusi ke domain baru.
Pencocokan Skor dan Pencocokan Skor Denoising
Hubungan antara model difusi dan pencocokan skor memberikan perspektif lain yang berharga. Fungsi skor didefinisikan sebagai gradien dari log-probabilitas densitas:
s(x) = ∇x log p(x)
Pencocokan skor denoising bertujuan untuk memperkirakan fungsi skor ini dengan melatih model untuk mendenoising data yang sedikit terganggu. Tujuan ini ternyata setara dengan tujuan pelatihan model difusi dalam batas kontinu.
Hubungan ini memungkinkan kita untuk memanfaatkan teknik dari model generatif berbasis skor, seperti dinamika Langevin yang dianulasi untuk sampling.
Teknik Pelatihan Lanjutan
Sampling Penting
Model difusi standar menyampling langkah waktu secara seragam. Namun, tidak semua langkah waktu sama pentingnya untuk pembelajaran. Teknik sampling penting dapat digunakan untuk fokus pelatihan pada langkah waktu yang paling informatif.
Salah satu pendekatan adalah menggunakan distribusi non-seragam atas langkah waktu, yang diweighted oleh norma L2 yang diharapkan dari skor:
p(t) ∝ E[||s(x_t, t)||²]
Ini dapat mengarah ke pelatihan yang lebih cepat dan kualitas sampel yang lebih baik.
Destilasi Progresif
Destilasi progresif adalah teknik untuk membuat model sampling yang lebih cepat tanpa mengorbankan kualitas. Prosesnya bekerja sebagai berikut:
Latih model difusi dasar dengan banyak langkah waktu (misalnya 1000)
Buat model siswa dengan langkah waktu yang lebih sedikit (misalnya 100)
Latih model siswa untuk mencocokkan proses denoising model dasar
Ulangi langkah 2-3, secara progresif mengurangi langkah waktu
Ini memungkinkan generasi berkualitas tinggi dengan langkah denoising yang jauh lebih sedikit.
Inovasi Arsitektur
Model Difusi Berbasis Transformer
Sementara arsitektur U-Net telah populer untuk model difusi gambar, karya terbaru telah menjelajahi penggunaan arsitektur berbasis transformer. Transformer menawarkan beberapa kelebihan potensial:
Penanganan ketergantungan jangka panjang yang lebih baik
Mekanisme pengondisian yang lebih fleksibel
Penskalaan ke ukuran model yang lebih besar lebih mudah
Model seperti DiT (Diffusion Transformers) telah menunjukkan hasil yang menjanjikan, potensial menawarkan jalur untuk generasi yang lebih tinggi.
Model Difusi Hierarkis
Model difusi hierarkis menghasilkan data pada beberapa skala, memungkinkan koherensi global dan detail halus. Prosesnya biasanya melibatkan:
Menghasilkan output resolusi rendah
Meningkatkan dan memperbarui secara progresif
Pendekatan ini dapat sangat efektif untuk generasi gambar resolusi tinggi atau generasi konten panjang.
Topik Lanjutan
Panduan Kelas Bebas
Panduan kelas bebas adalah teknik untuk meningkatkan kualitas sampel dan kontrol. Ide kunci adalah melatih dua model difusi:
Model tak bersyarat p(x_t)
Model bersyarat p(x_t | y) di mana y adalah beberapa informasi pengondisian (misalnya, prompt teks)
Selama sampling, kita melakukan interpolasi antara model-model ini:
ε_θ = (1 + w) * ε_θ(x_t | y) - w * ε_θ(x_t)
Di mana w > 0 adalah skala panduan yang mengontrol seberapa banyak mempertebal model bersyarat.
Ini memungkinkan kontrol yang lebih kuat tanpa harus melatih ulang model. Ini telah menjadi kunci keberhasilan model teks-ke-gambar seperti DALL-E 2 dan Stable Diffusion.
Model Difusi Laten (LDM) melibatkan proses mengkodekan data input ke ruang latensi di mana proses difusi terjadi. Model secara bertahap menambahkan kebisingan ke representasi latensi gambar, mengarah ke pembangkitan versi berisik, yang kemudian didenoising menggunakan arsitektur U-Net. U-Net, dipandu oleh mekanisme perhatian silang, mengintegrasikan informasi dari berbagai sumber pengondisian seperti peta semantik, teks, dan representasi gambar, akhirnya merekonstruksi gambar di ruang piksel. Proses ini sangat penting dalam menghasilkan gambar berkualitas tinggi dengan struktur terkendali dan atribut yang diinginkan.
Ini menawarkan beberapa kelebihan:
Pelatihan dan sampling yang lebih cepat
Penanganan gambar resolusi tinggi yang lebih baik
Lebih mudah mengintegrasikan pengondisian
Prosesnya bekerja sebagai berikut:
Latih autoencoder untuk mengompresi gambar ke ruang latensi
Latih model difusi di ruang latensi ini
Untuk generasi, sampel di ruang latensi dan dekripsi ke piksel
Pendekatan ini telah sangat sukses, memungkinkan model seperti Stable Diffusion.
Model Konsistensi
Model konsistensi adalah inovasi terbaru yang bertujuan untuk meningkatkan kecepatan dan kualitas model difusi. Ide kunci adalah melatih satu model yang dapat memetakan dari tingkat kebisingan apa pun langsung ke output akhir, bukan memerlukan denoising iteratif.
Ini dicapai melalui fungsi kerugian yang dirancang dengan hati-hati yang memaksakan konsistensi antara prediksi pada tingkat kebisingan yang berbeda. Hasilnya adalah model yang dapat menghasilkan sampel berkualitas tinggi dalam satu pass maju, secara dramatis mempercepat inferensi.
Tips Praktis untuk Melatih Model Difusi
Melatih model difusi berkualitas tinggi dapat menantang. Berikut beberapa tips praktis untuk meningkatkan stabilitas pelatihan dan hasil:
Pemotongan gradien: Gunakan pemotongan gradien untuk mencegah gradien meledak, terutama pada awal pelatihan.
EMA dari bobot model: Simpan rata-rata bergerak eksponensial dari bobot model untuk sampling, yang dapat mengarah ke generasi yang lebih stabil dan berkualitas lebih tinggi.
Augmentasi data: Untuk model gambar, augmentasi sederhana seperti flip horizontal acak dapat meningkatkan generalisasi.
Pengjadwalan kebisingan: Eksperimen dengan jadwal kebisingan yang berbeda (linier, kosinus, sigmoid) untuk menemukan apa yang paling efektif untuk data Anda.
Pelatihan presisi campuran: Gunakan pelatihan presisi campuran untuk mengurangi penggunaan memori dan mempercepat pelatihan, terutama untuk model besar.
Generasi bersyarat: Bahkan jika tujuan akhir Anda adalah generasi tak bersyarat, pelatihan dengan pengondisian (misalnya, pada kelas gambar) dapat meningkatkan kualitas sampel secara keseluruhan.
Mengevaluasi Model Difusi
Mengevaluasi model generatif dengan benar sangat penting tetapi menantang. Berikut beberapa metrik dan pendekatan umum:
Jarak Inception Fréchet (FID)
FID adalah metrik yang banyak digunakan untuk mengevaluasi kualitas dan keragaman sampel gambar yang dihasilkan. Ini membandingkan statistik sampel yang dihasilkan dengan data nyata di ruang fitur dari pengklasifikasi pra-dilatih (biasanya InceptionV3).
Skor FID yang lebih rendah menunjukkan kualitas yang lebih baik dan distribusi yang lebih realistis. Namun, FID memiliki keterbatasan dan tidak boleh menjadi satu-satunya metrik yang digunakan.
Skor Inception
Skor Inception mengukur kualitas dan keragaman sampel gambar yang dihasilkan. Ini menggunakan jaringan Inception pra-dilatih untuk menghitung:
IS = exp(E[KL(p(y|x) || p(y))])
Di mana p(y|x) adalah distribusi kelas kondisional untuk gambar yang dihasilkan x.
Skor Inception yang lebih tinggi menunjukkan kualitas dan keragaman yang lebih baik, tetapi memiliki keterbatasan yang diketahui, terutama untuk dataset yang sangat berbeda dari ImageNet.
Untuk model difusi, kita dapat menghitung log negatif kemungkinan dari data yang dipegang. Ini memberikan ukuran langsung seberapa baik model memenuhi distribusi data nyata.
Namun, NLL dapat komputasional mahal untuk diperkirakan secara akurat untuk data tinggi dimensi.
Evaluasi Manusia
Untuk banyak aplikasi, terutama yang kreatif, evaluasi manusia tetap penting. Ini dapat melibatkan:
Perbandingan sampingan dengan model lain
Evaluasi gaya tes Turing
Evaluasi tugas spesifik (misalnya, penjelasan gambar untuk model teks-ke-gambar)
Meskipun subjektif, evaluasi manusia dapat menangkap aspek kualitas yang metrik otomatis lewatkan.
Model Difusi dalam Produksi
Menggelar model difusi di lingkungan produksi menyajikan tantangan unik. Berikut beberapa pertimbangan dan praktik terbaik:
Optimasi untuk Inferensi
Ekspor ONNX: Konversi model ke format ONNX untuk inferensi yang lebih cepat di berbagai perangkat keras.
Kuantisasi: Gunakan teknik seperti kuantisasi INT8 untuk mengurangi ukuran model dan meningkatkan kecepatan inferensi.
Pengkodean: Untuk model bersyarat, kodekan hasil antara untuk model tak bersyarat untuk mempercepat panduan bebas kelas.
Pengolahan batch: Manfaatkan batching untuk menggunakan sumber daya GPU secara efisien.
Penskalaan
Inferensi terdistribusi: Untuk aplikasi dengan throughput tinggi, implementasikan inferensi terdistribusi di beberapa GPU atau mesin.
Sampling adaptif: Sesuaikan dinamis jumlah langkah sampling berdasarkan perdagangan kualitas-kecepatan yang diinginkan.
Generasi progresif: Untuk output besar (misalnya, gambar resolusi tinggi), hasilkan secara progresif dari resolusi rendah ke tinggi untuk memberikan hasil awal yang lebih cepat.
Keamanan dan Filtrasi
Filtrasi konten: Implementasikan sistem filtrasi konten yang kuat untuk mencegah generasi konten berbahaya atau tidak pantas.
Pengkodean watermark: Pertimbangkan untuk mengintegrasikan watermark tak terlihat ke dalam konten yang dihasilkan untuk keamanan.
Aplikasi
Model difusi telah menemukan kesuksesan dalam berbagai tugas generatif:
Generasi Gambar
Generasi gambar adalah tempat model difusi pertama kali mendapatkan ketenaran. Beberapa contoh terkenal termasuk:
DALL-E 3: Model teks-ke-gambar OpenAI, menggabungkan pengkode teks CLIP dengan dekoder gambar difusi
Stable Diffusion: Model difusi laten sumber terbuka untuk generasi teks-ke-gambar
Imagen: Model teks-ke-gambar difusi Google (GOOGL )
Model-model ini dapat menghasilkan gambar yang sangat realistis dan kreatif dari deskripsi teks, melampaui pendekatan GAN sebelumnya.
Generasi Video
Model difusi juga telah diterapkan pada generasi video:
Model Difusi Video: Menghasilkan video dengan memperlakukan waktu sebagai dimensi tambahan dalam proses difusi
Make-A-Video: Model teks-ke-video difusi Meta
Imagen Video: Model teks-ke-video difusi Google
Model-model ini dapat menghasilkan klip video pendek dari deskripsi teks, membuka kemungkinan baru untuk pembuatan konten.
Generasi 3D
Karya terbaru telah memperluas model difusi ke generasi 3D:
DreamFusion: Generasi teks-ke-3D menggunakan model difusi 2D
Point-E: Model difusi awan titik OpenAI untuk generasi objek 3D
Pendekatan ini memungkinkan penciptaan aset 3D dari deskripsi teks, dengan aplikasi dalam permainan, VR/AR, dan desain produk.
Tantangan dan Arah Masa Depan
Meskipun model difusi telah menunjukkan kesuksesan luar biasa, masih ada beberapa tantangan dan area penelitian masa depan:
Efisiensi Komputasi
Proses sampling iteratif dari model difusi dapat lambat, terutama untuk output resolusi tinggi. Pendekatan seperti difusi laten dan model konsistensi bertujuan untuk mengatasi ini, tetapi perbaikan lebih lanjut dalam efisiensi masih menjadi area penelitian aktif.
Kontrol
Meskipun teknik seperti panduan kelas bebas telah meningkatkan kontrol, masih banyak pekerjaan yang harus dilakukan untuk memungkinkan kontrol yang lebih halus atas output yang dihasilkan. Ini sangat penting untuk aplikasi kreatif.
Generasi Multi-Modal
Model difusi saat ini unggul dalam generasi single-modality (misalnya, gambar atau audio). Mengembangkan model difusi multi-modal yang dapat menghasilkan secara mulus di seluruh modality adalah arah penelitian yang menarik untuk pekerjaan masa depan.
Pemahaman Teoritis
Meskipun model difusi telah menunjukkan hasil empiris yang kuat, masih banyak yang belum dipahami tentang mengapa mereka bekerja dengan baik. Mengembangkan pemahaman teoritis yang lebih dalam dapat mengarah ke perbaikan lebih lanjut dan aplikasi baru.
Kesimpulan
Model difusi mewakili langkah maju dalam AI generatif, menawarkan hasil berkualitas tinggi di berbagai modality. Dengan mempelajari untuk membalik proses penambahan kebisingan, mereka menyediakan pendekatan yang fleksibel dan memiliki dasar teori yang kuat untuk generasi.
Dari alat kreatif hingga simulasi ilmiah, kemampuan untuk menghasilkan data kompleks, tinggi dimensi memiliki potensi untuk mengubah banyak bidang. Namun, penting untuk mendekati teknologi kuat ini dengan pemikiran yang matang, mempertimbangkan baik potensi besar mereka dan tantangan etika yang mereka hadirkan.
Saya telah menghabiskan lima tahun terakhir dengan membenamkan diri dalam dunia Machine Learning dan Deep Learning yang menarik. Minat dan keahlian saya telah memimpin saya untuk berkontribusi pada lebih dari 50 proyek rekayasa perangkat lunak yang beragam, dengan fokus khusus pada AI/ML. Rasa ingin tahu saya yang terus-menerus juga telah menarik saya ke arah Natural Language Processing, sebuah bidang yang saya ingin jelajahi lebih lanjut.