Trefon.
← Wszystkie notatki 11 min

Modele dyfuzyjne: od szumu do obrazów, a teraz do tekstu

Jak modele dyfuzyjne generują, ucząc się usuwać szum: proces w przód w jednym wzorze, dlaczego celem treningu jest przewidywanie szumu, jak próbkowanie zeszło z 1000 kroków do kilku, classifier-free guidance (CFG), 48-krotna kompresja w dyfuzji latentnej, szkielety oparte na transformerach i flow matching oraz dyfuzja dla tekstu.

Jacek Trefon
  • deep dive
  • dyfuzja
  • modele generatywne
  • architektura

Modele językowe generują po jednym tokenie, od lewej do prawej. Modele dyfuzyjne generują wszystko naraz: zaczynają od czystego szumu i raz za razem usuwają jego niewielką część. Zdominowały generowanie obrazów i wideo, a teraz testuje się je na tekście. Poniżej matematyka, bez ogólników.

Proces w przód: niszczenie danych według harmonogramu

Weź obraz x₀ i dodawaj do niego odrobinę szumu gaussowskiego, raz za razem, przez T kroków, aż zostanie sam szum. Przy harmonogramie szumu β_t każdy krok wygląda tak:

q(x_t | x_{t−1}) = N( √(1 − β_t) · x_{t−1} ,  β_t · I )

Przydatna własność polega na tym, że do dowolnego kroku możesz przeskoczyć bezpośrednio. Przy ᾱ_t = Π (1 − β_s):

x_t = √ᾱ_t · x₀  +  √(1 − ᾱ_t) · ε          ε ~ N(0, I)

Każdy poziom szumu dzieli od czystego obrazu jedna linijka arytmetyki. DDPM (Ho, Jain i Abbeel, 2020) używał T = 1000 kroków.

Trening: przewiduj szum

Model generatywny musi nauczyć się procesu odwrotnego: na podstawie zaszumionego x_t i kroku t oszacować szum, który został dodany. Trening jest niemal zawstydzająco prosty:

  1. wybierz obraz i losowy krok t;
  2. wylosuj szum ε i zbuduj x_t ze wzoru powyżej;
  3. trenuj sieć ε_θ(x_t, t), żeby przewidywała ε, minimalizując zwykły błąd średniokwadratowy.

DDPM pokazał, że ten cel treningu jest uproszczoną postacią pełnoprawnego ograniczenia wiarygodności i że w praktyce działa lepiej. Równoważne ujęcie pochodzi z modeli score-based (Song i Ermon, 2019; Song i in., 2021): sieć uczy się gradientu logarytmu gęstości danych na każdym poziomie szumu, a ten gradient wskazuje w stronę bardziej prawdopodobnych obrazów.

Próbkowanie: od 1000 kroków do kilku

Przy generowaniu zaczynasz od czystego szumu x_T i krok po kroku stosujesz wyuczony model odszumiający, aż wrócisz do x₀. Przy 1000 krokach DDPM to 1000 przebiegów sieci na obraz, przez co pierwsze modele dyfuzyjne były wolne.

Liczba kroków szybko spadła:

  • DDIM (Song, Meng i Ermon, 2020): deterministyczny sampler, który na tym samym wytrenowanym modelu pomija większość kroków; dziesiątki kroków zamiast tysiąca.
  • Lepsze solwery ODE traktują próbkowanie jak całkowanie równania różniczkowego i potrzebują tylko kilkudziesięciu przebiegów.
  • Destylacja do modeli kilkukrokowych trenuje ucznia, który przeskakuje od szumu do obrazu w bardzo niewielu krokach: destylacja progresywna (progressive distillation) i modele spójności (consistency models; Song i in., 2023).

Guidance: podążanie za promptem

Model text-to-image jest warunkowany promptem c. Classifier-free guidance (CFG; Ho i Salimans, 2022) trenuje tę samą sieć zarówno z promptem, jak i bez niego, losowo pomijając warunek. Przy próbkowaniu ekstrapoluje, odsuwając się od predykcji bezwarunkowej:

ε̂ = ε_θ(x_t, ∅) + w · ( ε_θ(x_t, c) − ε_θ(x_t, ∅) )

Waga guidance w wymienia różnorodność na zgodność z promptem. To suwak „CFG scale” w każdym narzędziu do generowania obrazów, a samo guidance kosztuje dwa przebiegi sieci na krok.

Dyfuzja latentna: nie odszumiaj pikseli

Uruchamianie sieci na każdym pikselu w każdym kroku jest drogie. Dyfuzja latentna (Rombach i in., 2022), podstawa Stable Diffusion, najpierw trenuje autoenkoder, który kompresuje obrazy do dużo mniejszej przestrzeni latentnej, a potem prowadzi dyfuzję w tej przestrzeni. Obraz RGB 512 × 512 ma 786 432 wartości; jego reprezentacja latentna 64 × 64 × 4 ma 16 384, czyli 48× mniej. Model odszumiający wykonuje swoją pracę 48× taniej, a dekoder jeden raz zamienia końcową reprezentację latentną z powrotem na piksele.

Szkieletem sieci został transformer

Wczesne modele dyfuzyjne używały konwolucyjnych sieci U-Net. Diffusion Transformers (DiT, Peebles i Xie, 2023) zastąpiły je transformerem działającym na fragmentach (patches) reprezentacji latentnej, a autorzy stwierdzili, że skaluje się on tak jak transformery: więcej obliczeń, przewidywalnie lepsze obrazy. Stable Diffusion 3 używa szkieletu opartego na transformerze. Modele wideo traktują klipy jako sekwencje fragmentów czasoprzestrzennych; według opisu OpenAI Sora to transformer dyfuzyjny.

Uogólniono też cel treningu. Flow matching i rectified flow (Lipman i in., 2023; Liu i in., 2023) uczą się pola prędkości, które przenosi szum w dane po bardziej prostoliniowych ścieżkach. Prostsze ścieżki wymagają mniej kroków próbkowania, a Stable Diffusion 3 jest trenowany metodą rectified flow.

Dyfuzja dla tekstu

Tekst jest dyskretny, więc do słowa nie dodasz szumu gaussowskiego. Modele językowe oparte na dyfuzji maskowanej zastępują szum maskowaniem: dane psuje się, maskując rosnący odsetek tokenów, a model trenuje się tak, żeby z powrotem je uzupełniał. Generowanie zaczyna się od w pełni zamaskowanej sekwencji i odsłania tokeny w kilku rundach, po wiele naraz. Model LLaDA (Nie i in., 2025) pokazał, że to podejście działa w skali 8B, a w 2025 roku poszły w jego ślady systemy komercyjne, takie jak Mercury od Inception i Gemini Diffusion od Google.

Atutem jest równoległość. W każdym kroku powstaje wiele tokenów zamiast jednego, co uderza w ograniczone pamięcią dekodowanie po jednym tokenie na przebieg, które hamuje modele autoregresyjne (ten sufit wyjaśnia notatka o dekodowaniu). Czy dyfuzja dorównuje jakością modelom autoregresyjnym w rozumowaniu i długich tekstach, wciąż pozostaje otwartym pytaniem. To jak dotąd najciekawsze wyzwanie rzucone generowaniu od lewej do prawej.

Zasady, których się trzymam

  1. Kroki to pokrętło kosztu. Większość opóźnienia systemu dyfuzyjnego to liczba przebiegów sieci razy koszt każdego z nich; licz jedno i drugie.
  2. Pracuj w przestrzeni latentnej, chyba że masz powód, żeby tego nie robić. To największy pojedynczy zysk wydajności.
  3. Guidance podwaja pracę na krok. Przy włączonym CFG licz w budżecie dwa przebiegi na krok.

Źródła: Ho, Jain i Abbeel, DDPM (2020). Song, Meng i Ermon, DDIM (2020). Song i in., Score-Based Generative Modeling through SDEs (2021). Ho i Salimans, Classifier-Free Diffusion Guidance (2022). Rombach i in., Latent Diffusion Models (2022). Peebles i Xie, DiT (2023). Lipman i in., Flow Matching (2023). Song i in., Consistency Models (2023). Nie i in., LLaDA (2025). Współczynnik kompresji latentnej policzono dla obrazu 512 × 512 i 4-kanałowego autoenkodera, który zmniejsza rozdzielczość 8×.

Masz podobny problem?

Opisz swój problem

30-minutowa rozmowa techniczna z inżynierem, który to buduje. Bez działu sprzedaży, bez slajdów.