Lewati ke konten utama

Apa Itu Flow Matching? Panduan untuk Model AI Generatif

Flow matching melatih model generatif untuk mengubah noise menjadi data dengan mempelajari medan vektor yang menggerakkan sampel sepanjang jalur probabilitas yang dipilih, gagasan yang sama yang mendorong continuous normalizing flows dan diffusion models modern.
Diperbarui 18 Sep 2026  · 15 mnt baca

Jelajahi dengan AI

ChatGPTClaudePerplexity

Pernah melihat istilah "flow matching" di setiap model gambar dan video baru, tetapi tidak tahu apa maksudnya?

Kebanyakan penjelasan langsung masuk ke persamaan diferensial atau menyebutnya sebagai "diffusion, namun lebih baik." Keduanya tidak memberi tahu Anda apa yang dipelajari model. Stable Diffusion 3 dan Flux sama-sama menggunakan flow matching, dan keduanya menghasilkan gambar hanya dalam beberapa langkah sementara diffusion klasik butuh puluhan.

Inilah gagasan umumnya: alih-alih mempelajari contoh individual, model mempelajari medan kecepatan yang memberi tahu setiap sampel harus bergerak ke arah mana dan seberapa cepat. Setelah Anda memahami itu, proses pelatihan, matematika di baliknya, dan hubungannya dengan diffusion akan terasa masuk akal.

Dalam artikel ini, saya akan memandu Anda melalui intuisi di balik flow matching, bagaimana cara melatihnya, matematikanya (dengan ringan), dan bagaimana perbandingannya dengan diffusion models.

Jika Anda baru di AI untuk data gambar, baca 10 Model Vision-Language Teratas di 2026 kami untuk menemukan model mutakhir saat ini untuk penalaran visual, analisis gambar, dan computer vision.

Apa Itu Flow Matching?

Flow matching adalah sebuah tujuan pelatihan (training objective), bukan arsitektur model.

Pembedaan ini penting karena Anda bisa memasangkannya dengan transformer atau hampir jaringan apa pun — yang membuatnya disebut flow matching adalah apa yang dilatih jaringan untuk diprediksi, bukan seperti apa bentuk jaringannya.

Dan yang dilatih untuk diprediksi adalah medan vektor yang bergantung waktu. Secara sederhana, itu adalah fungsi yang memberi tahu arah mana dan seberapa cepat sebuah sampel harus bergerak pada setiap titik sepanjang jalurnya dari distribusi sumber ke distribusi target. Saat Anda melatih continuous normalizing flows dengan cara ini, Anda mendapatkan model yang mengubah distribusi sederhana menjadi yang kompleks, selangkah demi selangkah.

Saya suka memecah intuisinya menjadi empat gagasan:

  • Mulai yang sederhana: Mulai dari distribusi yang mudah Anda sampel, seperti noise Gaussian
  • Tentukan jalur: Hubungkan setiap sampel noise ke titik data target sepanjang jalur yang mulus
  • Pelajari geraknya: Latih jaringan untuk memprediksi bagaimana sebuah sampel harus bergerak sepanjang jalur itu, di setiap titik waktu
  • Ikuti alirannya: Setelah terlatih, mulai dari noise dan ikuti medan vektor yang dipelajari untuk menghasilkan sampel baru

Jika Anda tipe visual, bayangkan awan partikel yang tersebar tanpa pola. Flow matching mengajari setiap partikel arah mana harus bergerak dan seberapa cepat, sehingga seluruh awan perlahan membentuk pola terstruktur (bentuk distribusi target Anda).

Saat Anda menjalankannya pada dataset gambar, "pola terstruktur" berarti foto yang koheren alih-alih noise acak.

Bagaimana Flow Matching Bekerja

Pelatihan dan generasi adalah dua fase terpisah di sini, dan kebingungan sering terjadi saat orang mengira keduanya sama.

Selama pelatihan:

  • Sampelkan titik data: Pilih satu titik dari set pelatihan Anda — target yang akan dituju sampel
  • Sampelkan noise: Pilih satu titik dari distribusi sumber yang sederhana, biasanya noise Gaussian
  • Pilih waktu: Pilih t acak antara 0 dan 1
  • Bangun titik antara: Gabungkan titik data dan sampel noise sesuai t, berdasar jalur probabilitas yang menghubungkan keduanya
  • Dapatkan kecepatan target: Tentukan arah dan kecepatan yang seharusnya dimiliki titik antara itu pada waktu t, berdasarkan jalur yang Anda pilih
  • Latih jaringan: Ajari jaringan untuk memprediksi kecepatan tersebut, dengan masukan titik antara dan waktu

Generasi tidak memerlukan titik data.

Anda mulai dari noise dan mengintegrasikan medan vektor yang dipelajari ke depan dalam waktu, selangkah kecil demi selangkah, hingga Anda mendapat sampel dari distribusi data.

Itulah idenya — Anda memprediksi kecepatan saat pelatihan, dan mengikutinya saat generasi.

Memahami Medan Vektor dan Jalur Probabilitas

Ada dua gagasan yang menjadi inti dari objective flow matching — medan vektor dan jalur probabilitas. Setelah Anda memahami keduanya, fungsi rugi di bagian berikutnya akan masuk akal.

Medan vektor

Medan vektor adalah apa yang diprediksi jaringan. Pada titik mana pun di ruang dan momen waktu mana pun, ia memberi Anda arah dan kecepatan — bagaimana sebuah sampel pada titik itu harus bergerak agar lebih dekat ke distribusi data.

Sebagai contoh, bayangkan Anda berdiri di sungai. Di mana pun Anda berdiri, arus mendorong dengan cara tertentu, dan seberapa kuat serta ke arahnya bergantung pada posisi tepat Anda dan momen waktunya. Medan vektor melakukan hal yang sama untuk sampel Anda — ia memberikan arah dan kecepatan untuk setiap titik di ruang, pada setiap titik waktu.

Jalur probabilitas

Jalur probabilitas adalah rangkaian distribusi yang dilalui sampel dalam perjalanannya dari noise ke data. Pada t = 0, Anda men-sampel dari distribusi sumber, biasanya noise Gaussian. Pada t = 1, Anda men-sampel dari distribusi data target. Semua yang di antaranya adalah distribusi perantara, dan jalur probabilitas mendeskripsikan bagaimana satu berubah menjadi yang berikutnya.

Medan vektor dan jalur probabilitas saling terhubung langsung karena medan vektor menggerakkan sampel sepanjang jalur probabilitas, dari satu distribusi perantara ke berikutnya, hingga mencapai distribusi data.

Diagram jalur probabilitas

Diagram jalur probabilitas

Objective Flow Matching

Objective flow matching mengubah medan vektor dan jalur probabilitas menjadi satu loss regresi.

Setiap langkah pelatihan membandingkan dua kecepatan. Pertama adalah kecepatan target — arah dan kecepatan pergerakan sampel pada titik tersebut sepanjang jalur probabilitas yang dipilih. Kedua adalah kecepatan prediksi model — tebakan jaringan untuk arah dan kecepatan yang sama, berdasarkan sampel dan waktu saat ini. Pelatihan membuat keduanya semirip mungkin.

Berikut fungsi loss-nya:

Fungsi loss flow matching

Fungsi loss flow matching

Berikut arti setiap istilahnya:

  • v_θ(x_t, t): Kecepatan yang diprediksi model pada titik x_t dan waktu t

  • u_t(x_t): Kecepatan target pada titik dan waktu yang sama, berdasarkan jalur probabilitas yang dipilih

  • 𝔼[...]: Rata-rata atas banyak nilai acak t dan x_t

  • ‖ · ‖^2: Selisih kuadrat antara dua kecepatan — mean squared error biasa

Penurunan lengkapnya tidak terlalu relevan di sini. Yang penting adalah jaringan memprediksi satu vektor pada satu titik dan waktu, dan Anda membandingkannya dengan target yang diketahui. Itu saja!

Conditional Flow Matching

Jalur probabilitas marginal yang menghubungkan seluruh distribusi noise ke seluruh distribusi data bukanlah sesuatu yang bisa langsung Anda tulis.

Menghitung kecepatan target pada titik tertentu berarti memperhitungkan setiap sampel data yang bisa menghasilkannya — integral atas seluruh dataset Anda, bukan sesuatu yang dihitung setiap langkah pelatihan.

Conditional flow matching mengatasinya dengan melakukan pengondisian pada sampel individual alih-alih jalur penuh. Alih-alih menghitung medan vektor untuk seluruh jalur marginal, Anda memilih satu titik data dan satu titik noise, lalu membangun jalur probabilitas hanya untuk pasangan tersebut. Saat Anda membuat jalur kondisional itu sederhana, misalnya garis lurus antara kedua titik, kecepatan target memiliki bentuk tertutup yang bisa langsung dihitung.

Melatih jaringan pada kecepatan kondisional yang sederhana per pasangan ini, dirata-ratakan di cukup banyak pasangan, akan memberi Anda medan vektor yang sama seperti yang diinginkan objective marginal yang sulit dihitung. Anda tidak pernah secara langsung menghitung jalur marginal — sebagai gantinya, Anda mendekatinya secara tidak langsung, satu jalur kondisional yang mudah pada satu waktu.

Versi kondisional inilah yang hampir semua orang latih. Formulasi marginal membuat matematikanya bekerja, tetapi formulasi kondisional adalah yang bekerja dalam praktik.

Flow Matching vs Diffusion Models

Diffusion dan flow matching sering dibandingkan karena alasan yang kuat — sebagian besar "diffusion models" yang telah Anda kenal kini berjalan dengan objective flow matching. Itu tidak berarti flow matching menggantikan diffusion. Artinya, diffusion ternyata merupakan satu kasus spesifik dalam kerangka yang lebih besar, dan flow matching adalah versi umumnya.

Mari mulai dari apa yang diprediksi masing-masing jaringan. Model diffusion memprediksi noise. Diberi sampel ber-noise dan langkah waktu, model memprediksi noise yang dicampurkan, lalu menghapusnya, selangkah demi selangkah. Flow matching sebagai gantinya memprediksi kecepatan. Diberi sampel dan langkah waktu, ia memprediksi arah mana dan seberapa cepat sampel itu harus bergerak menuju distribusi data.

Jalur probabilitas adalah bagian yang paling membedakan keduanya.

Model diffusion menetapkan satu proses pen-noise-an spesifik di awal, biasanya menambahkan noise Gaussian pada jadwal tetap, dan segala sesuatu lainnya mengikuti dari pilihan tunggal itu. Dalam flow matching, Anda memilih jalur apa pun yang menghubungkan noise ke data, dan objective bekerja dengan cara yang sama apa pun jalur yang Anda pilih. Jalur bergaya diffusion Gaussian adalah salah satu opsi. Garis lurus antara noise dan data adalah opsi lain, dan itu sangat berpengaruh pada seberapa cepat Anda dapat melakukan sampling.

Dua prediksi ini tidak sebegitu berbeda seperti kelihatannya.

Prediksi noise pada model diffusion dan prediksi kecepatan pada model flow matching adalah dua sudut pandang dari objek dasar yang sama, terhubung melalui skor distribusi pada setiap titik waktu. Perbedaannya ada pada cara mereka menghasilkan. Sampling diffusion bersifat stokastik secara default, artinya setiap langkah denoising menambahkan sedikit keacakan kembali (meski varian deterministik seperti DDIM ada). Flow matching sebaliknya — formulasi alaminya adalah ODE deterministik, sehingga noise awal yang sama menghasilkan keluaran yang sama setiap kali, dan varian stokastik juga ada di sisi ini.

Sampling pada kedua kasus berarti menyelesaikan persamaan diferensial selangkah demi selangkah, bergerak dari noise menuju data.

Model diffusion cenderung butuh puluhan langkah kecuali Anda menggunakan sampler cepat atau distilasi. Flow matching, terutama saat dilatih pada jalur garis lurus, cenderung butuh jauh lebih sedikit langkah tanpa itu semua — jalur lurus memiliki kecepatan konstan, yang jauh lebih mudah diikuti akurat oleh solver daripada jalur melengkung.

Jalur itu sendiri adalah tempat flow matching unggul.

Model diffusion dibatasi oleh proses pen-noise-an yang menjadi dasar turunannya. Flow matching memperlakukan jalur sebagai pilihan desain, dan pilihan berbeda datang dengan trade-off yang berbeda.

 

Diffusion models

Flow matching

Apa yang diprediksi jaringan

Noise yang ditambahkan di setiap langkah

Kecepatan menuju distribusi data

Jalur probabilitas

Ditetapkan oleh proses pen-noise-an spesifik

Dipilih secara bebas; garis lurus umum digunakan

Objek dasar

Skor dari distribusi ber-noise

Medan vektor bergantung waktu, terkait dengan skor

Generasi

Stokastik secara default namun ada varian deterministik

Deterministik secara default namun ada varian stokastik

Langkah sampling

Sering puluhan tanpa trik tambahan

Sering jauh lebih sedikit, terutama dengan jalur yang lebih lurus

Pilihan jalur

Ditetapkan oleh proses maju (forward)

Pilihan desain terbuka — diffusion adalah salah satu instansinya

Flow matching dibandingkan dengan diffusion models

Flow Matching vs. Metode Generatif Terkait

Diffusion bukan satu-satunya metode yang dibandingkan dengan flow matching. Ada tiga lagi yang perlu Anda ketahui

Flow matching vs. continuous normalizing flows

Continuous normalizing flows hadir terlebih dahulu, dan flow matching tumbuh langsung dari masalah saat melatihnya.

Continuous normalizing flow adalah jenis model yang dihasilkan flow matching — jaringan yang mendefinisikan transformasi kontinu antar distribusi melalui sebuah ODE. Melatihnya dengan cara asli berarti menyelesaikan ODE tersebut ke depan dan menghitung likelihood yang tepat di setiap langkah, yang berarti melacak bagaimana transformasi mengubah kerapatan probabilitas sepanjang jalur. Perhitungan itu mahal, dan makin parah seiring jaringan membesar.

Flow matching menghindari semua itu. Ia melakukan regresi langsung pada kecepatan target yang diketahui alih-alih menyelesaikan ODE dan menghitung likelihood selama pelatihan. Tidak ada simulasi yang diperlukan. Anda tetap berakhir dengan continuous normalizing flow, hanya saja Anda tidak membayar biaya pelatihan yang dulu untuk sampai ke sana.

Flow matching vs. score matching

Score matching melatih jaringan untuk memprediksi skor — gradien dari log kerapatan probabilitas — pada setiap tingkat noise. Itulah objective di balik diffusion models yang sudah Anda kenal.

Flow matching melatih jaringan untuk memprediksi kecepatan. Keduanya terkait secara matematis, artinya di bawah pilihan jalur tertentu, Anda dapat mengonversi yang satu ke yang lain. Namun mereka merepresentasikan hal yang berbeda. Skor menggambarkan bentuk distribusi probabilitas pada waktu yang tetap. Kecepatan menggambarkan bagaimana sebuah sampel harus bergerak saat waktu berubah.

Score matching bertanya tentang geometri. Flow matching bertanya tentang gerak.

Flow matching vs. rectified flow

Rectified flow adalah sebuah pilihan spesifik di dalam flow matching.

Flow matching memungkinkan Anda memilih jalur probabilitas apa pun yang menghubungkan noise ke data. Rectified flow memilih satu — garis lurus, dan melangkah lebih jauh dengan prosedur iteratif bernama "reflow" yang meluruskan jalur yang sudah dipelajari model terlatih, sehingga model putaran kedua membutuhkan lebih sedikit langkah integrasi saat generasi.

Itulah mengapa kedua istilah sering muncul berdampingan dalam makalah yang sama. Stable Diffusion 3 dan Flux sama-sama menggunakan flow matching dengan pilihan jalur yang mendekati rectified flow. Namun menyamakan flow matching dan rectified flow melewatkan intinya. Flow matching adalah kerangkanya. Rectified flow adalah salah satu jalur yang dapat Anda pilih di dalamnya.

Flow Matching dalam AI Generatif Modern

Flow matching kini berjalan di beberapa sistem generatif terbesar yang diproduksi.

  • Pembuatan gambar adalah tempat flow matching pertama kali muncul dalam skala besar. Stable Diffusion 3 beralih dari formulasi gaya DDPM lama ke flow matching, dan Flux dari Black Forest Labs membangun pendekatan serupa rectified flow. Keduanya mendapatkan sampling yang lebih cepat dan berkualitas lebih tinggi dari ide jalur lurus yang dibahas di atas.
  • Pembuatan video adalah tempat kebebasan memilih jalur Anda sendiri masuk akal, karena video mahal untuk disampling bahkan satu frame saja, apalagi puluhan pada setiap langkah denoising. Movie Gen Video dari Meta, model 30 miliar parameter, mengganti U-Net diffusion biasa dengan Transformer yang dilatih dengan objective flow matching. Beberapa generator video besar yang dirilis sejak itu menggunakan pendekatan yang sama di dalam ruang laten encoder video terlatih, dengan alasan yang sama — lebih sedikit langkah sampling berarti penghematan nyata pada skala tersebut.
  • Pembuatan audio dan ucapan juga diuntungkan dari flow matching. Voicebox milik Meta menggunakannya untuk pembuatan ucapan multibahasa pada 2023, dan komponen audio Movie Gen menghasilkan soundtrack dan efek suara dengan cara yang sama, tersinkron dengan videonya. Sistem TTS terbuka seperti F5-TTS membangun langsung di atas flow matching dengan diffusion transformer, menghasilkan ucapan alami tanpa model durasi atau penyelaras fonem terpisah.
  • Pembuatan multimodal lebih sering muncul bukan sebagai teknik terpisah melainkan manfaat dari menggunakan satu objective di mana-mana. Movie Gen sendiri dibingkai sebagai rangkaian foundation model media — video, audio, personalisasi, dan penyuntingan — semuanya dilatih dengan objective flow matching yang sama.

Semua ini karena loss regresi mudah diimplementasikan dan diskalakan. Dan karena jalur adalah pilihan desain, tim yang membangun sistem berparameter miliaran dapat memilih jalur yang butuh lebih sedikit langkah sampling, dan itu penting ketika setiap langkah berbiaya komputasi pada skala tersebut.

Contoh Sederhana Flow Matching

Sejauh ini semuanya bersifat konseptual. Sekarang saya akan memandu Anda melalui ide yang sama pada dataset 2D nyata, cukup kecil untuk melihat setiap langkahnya.

Distribusi noise adalah Gaussian 2D standar, berpusat di titik asal. Distribusi target adalah tiga klaster Gaussian yang tersusun segitiga — cukup sederhana untuk dipelajari cepat oleh jaringan kecil, namun cukup terstruktur sehingga Anda benar-benar bisa menilai apakah hasilnya tepat.

Contoh flow matching sederhana

Contoh flow matching sederhana

Panel pertama adalah tempat setiap sampel dimulai — noise tersebar tanpa struktur. Panel kedua adalah medan vektor itu sendiri, dievaluasi pada grid di pertengahan pelatihan. Perhatikan bagaimana panah sudah mengarah ke salah satu dari tiga klaster, jauh sebelum sampel mana pun sampai di sana. Panel ketiga menunjukkan apa yang terjadi saat Anda mulai dari noise baru dan mengikuti medan itu hingga t = 1 — tiga klaster muncul, sangat cocok dengan panel keempat.

Tak ada yang melibatkan hal di luar yang sudah dibahas sebelumnya — distribusi sumber, distribusi target, medan vektor yang dipelajari, dan solver ODE yang menghubungkan ketiganya. Lanjut ke kode.

Flow Matching dalam Python

Berikut implementasi PyTorch kecil dari contoh yang sama, menggunakan sumber noise dan target tiga klaster yang sama.

Mulailah dengan dua distribusi dan cara men-sampelnya:

import torch
import torch.nn as nn

torch.manual_seed(0)

# Three Gaussian clusters as the target ("data") distribution
centers = torch.tensor([[0.0, 3.0], [-2.6, -1.6], [2.6, -1.6]])

def sample_target(n):
    idx = torch.randint(0, 3, (n,))
    return centers[idx] + 0.4 * torch.randn(n, 2)

def sample_source(n):
return torch.randn(n, 2)

Jaringannya sendiri menerima sebuah titik dan langkah waktu, lalu memprediksi kecepatan:

class VelocityNet(nn.Module):
    def __init__(self, hidden=64):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(3, hidden), nn.ReLU(),
            nn.Linear(hidden, hidden), nn.ReLU(),
            nn.Linear(hidden, 2),
        )

def forward(self, x, t):
    return self.net(torch.cat([x, t], dim=1))

Pelatihan men-sampel satu batch titik sumber, titik target, dan langkah waktu di setiap langkah, lalu menginterpolasi antara keduanya dan melakukan regresi pada kecepatan yang dihasilkan:

model = VelocityNet()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)

for step in range(3000):
    # source (noise) points
    x0 = sample_source(256) 
    # target (data) points
    x1 = sample_target(256) 
    # random time steps
    t = torch.rand(256, 1) 

    # interpolate along a straight-line path
    xt = (1 - t) * x0 + t * x1 
    # target velocity for that path
    target_v = x1 - x0 

    pred_v = model(xt, t)
    loss = ((pred_v - target_v) ** 2).mean()

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

Generasi menyelesaikan ODE yang dipelajari dengan integrasi Euler biasa. Anda hanya butuh loop yang mengambil langkah-langkah kecil dari t = 0 ke t = 1:

@torch.no_grad()
def generate(model, n_samples, n_steps=100):
    x = sample_source(n_samples)
    dt = 1.0 / n_steps
    for i in range(n_steps):
        t = torch.full((n_samples, 1), i * dt)
        x = x + model(x, t) * dt 
    return x

samples = generate(model, n_samples=600)
`

Visualisasi sampel yang dihasilkan

Visualisasi sampel yang dihasilkan

Dan itulah seluruh alurnya! Sampling, interpolasi, regresi, integrasi. Tidak ada yang berubah jika Anda menggunakan jaringan yang lebih besar, jalur berbeda, atau dataset berdimensi lebih tinggi — hanya skalanya.

Kelebihan dan Keterbatasan Flow Matching

Semua ini tidak membuat flow matching menjadi peningkatan universal atas diffusion. Ini adalah trade-off, sama seperti pilihan desain lainnya.

Berikut kapan ini menjadi opsi yang baik dan kapan tidak.

Kelebihan

  • Objective regresi langsung: Tidak ada estimasi skor, tidak ada batas likelihood, dan tidak ada adversarial loss yang harus diseimbangkan — hanya perbandingan antara kecepatan prediksi dan target yang diketahui
  • Pilihan jalur probabilitas: Anda tidak terbatas pada satu proses pen-noise-an; jalur garis lurus, jalur bergaya diffusion, atau kustom semuanya cocok dalam objective yang sama
  • Cocok alami untuk model waktu-kontinu: Flow matching melatih continuous normalizing flows tanpa komputasi likelihood mahal yang dulu diperlukan
  • Lebih sedikit langkah sampling: Jalur lebih lurus berarti solver ODE butuh lebih sedikit langkah untuk tetap akurat, yang tampak sebagai generasi yang lebih cepat dalam praktik
  • Bekerja lintas tipe data: Objective yang sama melatih model gambar, video, audio, dan multimodal — tidak ada matematika yang berubah dengan modalitas

Keterbatasan

  • Integrasi ODE bisa mahal: Setiap langkah sampling tetap berarti satu forward pass melalui jaringan, dan itu terakumulasi pada skala video atau audio
  • Kualitas bergantung pada jalur dan jaringan: Jalur probabilitas yang dipilih buruk atau jaringan yang kurang terlatih tetap menghasilkan sampel buruk, termasuk pada jalur garis lurus
  • Belajar matematikanya butuh waktu: Jalur probabilitas, medan vektor, dan formulasi waktu-kontinu membutuhkan latar belakang lebih dibanding gambaran denoising sederhana
  • Model besar tetap berbiaya seperti model besar: Flow matching menurunkan biaya per langkah pada sistem seperti Movie Gen atau Flux, tetapi melatih dan menjalankan jaringan berparameter miliaran tetap menuntut apa pun pendekatannya

Kesimpulan

Flow matching mengajarkan model bagaimana sampel harus bergerak dari distribusi sederhana menuju distribusi data. Semua hal lain yang saya jelaskan di artikel ini ada untuk membuat satu ide itu dapat dilatih.

Dua gagasan melakukan sebagian besar pekerjaan di sini. Jalur probabilitas menghubungkan noise ke data melalui rangkaian distribusi perantara. Medan vektor mendeskripsikan bagaimana sampel harus bergerak pada titik mana pun sepanjang jalur itu, pada momen waktu apa pun. Jaringan mempelajari medan vektor tersebut, kecepatannya, dan proses generasi hanya mengikuti aliran yang dihasilkan dari noise ke data.

Tidak ada yang berdiri terpisah dari yang sebelumnya. Flow matching adalah cara sistem modern melatih continuous normalizing flows tanpa komputasi likelihood lama, dan diffusion models ternyata merupakan salah satu kasus spesifik di dalamnya.

Jika diffusion models, normalizing flows, atau AI generatif secara umum menarik bagi Anda, inilah yang bisa Anda pelajari selanjutnya:


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist yang berbasis di Kroasia. Penulis Tekno Teratas dengan lebih dari 700 artikel yang telah diterbitkan, menghasilkan lebih dari 10 juta tayangan. Penulis buku Machine Learning Automation with TPOT.

Flow Matching FAQs

Apa itu flow matching?

Flow matching adalah metode pelatihan untuk model generatif, bukan arsitektur model. Alih-alih belajar menghasilkan contoh spesifik, jaringan mempelajari medan vektor — fungsi yang memberi tahu sampel mana pun harus bergerak ke arah mana dan seberapa cepat pada titik dan waktu tertentu. Jika Anda mulai dari noise, ikuti medan itu hingga t = 1, Anda mendapatkan sampel dari distribusi data.

Bagaimana flow matching berbeda dari diffusion models?

Model diffusion memprediksi noise dalam sampel dan menghapusnya selangkah demi selangkah, mengikuti proses pen-noise-an tetap. Flow matching memprediksi kecepatan sebagai gantinya, dan memungkinkan Anda memilih jalur probabilitas yang menghubungkan noise ke data — misalnya garis lurus, bukan jadwal Gaussian tetap. Diffusion ternyata merupakan satu pilihan jalur spesifik di dalam kerangka flow matching yang lebih luas, bukan metode terpisah yang bersaing dengannya.

Apakah flow matching sebuah arsitektur model?

Bukan, ini adalah objective pelatihan. Anda bisa memasangkannya dengan transformer atau hampir jaringan apa pun — yang membuatnya disebut flow matching adalah apa yang dilatih jaringan untuk diprediksi, bukan seperti apa bentuk jaringannya. Itulah mengapa Anda akan melihat objective yang sama di balik model gambar, video, dan audio yang dibangun di atas arsitektur yang sangat berbeda.

Apa itu conditional flow matching, dan mengapa penting?

Bekerja langsung dengan jalur probabilitas penuh yang menghubungkan setiap titik noise ke setiap titik data tidaklah praktis, karena kecepatan target sejatinya harus memperhitungkan seluruh dataset Anda sekaligus. Conditional flow matching mengatasinya dengan mengondisikan pada pasangan noise-data individual, masing-masing dengan jalur sederhana dan kecepatan yang bisa dihitung. Jika Anda merata-ratakan pelatihan jaringan atas cukup banyak pasangan ini, Anda akhirnya mendekati medan vektor yang sama seperti yang dituju objective penuh, tanpa pernah menghitungnya secara langsung.

Model dunia nyata apa yang menggunakan flow matching?

Stable Diffusion 3 dan Flux sama-sama menggunakan flow matching untuk pembuatan gambar. Movie Gen milik Meta menerapkannya pada video dan audio, dan model ucapan seperti Voicebox dan F5-TTS menggunakan objective yang sama untuk text-to-speech. Daya tarik pada skala tersebut bermuara pada loss regresi yang mudah dilatih, ditambah pilihan jalur yang sering kali membutuhkan lebih sedikit langkah sampling.

Topik
Kecerdasan Buatan

Belajar AI dengan DataCamp

Kursus

Memahami Kecerdasan Buatan

2 Hr
421.5K
Pelajari konsep dasar Kecerdasan Buatan seperti machine learning, deep learning, NLP, AI generatif, dan lainnya.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow