Popatrz kiedyś uważnie, jak model pisze odpowiedź. Token po tokenie, od lewej do prawej, równiutko jak maszyna do pisania. I jest w tym jedno ukryte okrucieństwo: on nie może się cofnąć. Postawił słowo — zostaje. Zdanie skręciło nie tam, gdzie trzeba? Trudno, brnie dalej, bo cała jego natura polega na tym, że patrzy tylko wstecz i zgaduje, co będzie następne. Nigdy do przodu, nigdy w bok, nigdy „a wróćmy do środka i to popraw".
A teraz pomyśl, jak ty piszesz. Rzucasz szkielet myśli, wracasz do drugiego akapitu, wpychasz słowo w środek pierwszego zdania, wykreślasz koniec, bo nie pasuje do początku. Skaczesz. Cały czas widzisz całość i dłubiesz w niej z każdej strony naraz. To dwa zupełnie różne sposoby dochodzenia do tego samego tekstu — i okazuje się, że oba da się w modelu zaszyć. Ten pierwszy nazywa się autoregresja i siedzi w każdym GPT, Llamie i Qwenie, jakiego ściągnąłeś. Ten drugi to dyfuzja — i przez długi czas był ciekawostką, na którą poważni ludzie machali ręką.
Aż ktoś sprawdził, kiedy dyfuzja zaczyna wygrywać. I odpowiedź brzmi: dokładnie tam, gdzie siedzisz ty — na małym korpusie, który trzeba przemielić wiele razy.
Dwa sposoby, żeby model nauczył się mówić
Autoregresja jest prosta do wytłumaczenia, bo działa jak zgadywanka w ciemno. Model dostaje kawałek tekstu i ma jedno zadanie: przewidź następny token. Potem ten token doklejasz, podajesz z powrotem i pytasz znowu. I znowu. Zdanie rośnie od lewej do prawej jak sopel. Uwaga w środku jest przyczynowa — każdy token widzi tylko to, co przed nim, bo tak uczono go zgadywać. To cała tajemnica ery, w której żyjemy.
Dyfuzja podchodzi do tego od drugiej strony i szczerze — pierwszy raz brzmi jak wariactwo.
Bierzesz gotowe zdanie i psujesz je: losowo zamieniasz część tokenów na specjalny znak
[MASKA]. Raz zamaskujesz co dziesiąty, raz prawie wszystkie. Model ma odgadnąć, co
schowałeś — naraz, na wszystkich pozycjach, patrząc na całość w obie strony. A potem, przy
generowaniu, odpalasz to od stanu, w którym wszystko jest zamaskowane, i odsłaniasz
tekst po kawałku, w kolejności pewności: najpierw tam, gdzie model jest najbardziej
przekonany, potem coraz dalej. Tekst nie tyle powstaje, co kondensuje się z szumu, jak
zdjęcie wychodzące z rozmycia.1
Jak to działa? Kluczowa różnica jest jedna: dyfuzja jest dwukierunkowa. Nie ma maski przyczynowej, każda pozycja widzi wszystkie inne. Model może „naprawić środek", bo w ogóle nie myśli w kategoriach lewo-prawo. To ta sama swoboda, którą masz ty, gdy skaczesz po tekście — tyle że wpisana w architekturę.
Najpierw zła wiadomość: na czystej jakości autoregresja prowadzi
Powiedzmy sobie uczciwie, bo inaczej cała reszta zabrzmi jak marketing. Jeśli weźmiesz oba podejścia, dasz im tyle samo parametrów i tyle samo danych i zmierzysz surową jakość modelowania języka — autoregresja wygrywa. I to nie odrobinę.
Miarą jest perplexity — najprościej mówiąc: między iloma równie prawdopodobnymi słowami model średnio się waha przy każdym tokenie. Perplexity 20 znaczy „jestem tak niepewny, jakbym losował spośród dwudziestu opcji"; perplexity 2 — „waham się między dwiema". Im niżej, tym pewniej i tym lepiej (dla skali: model rzucający monetą przy słowniku ośmiu tysięcy tokenów miałby perplexity około 8000). Na standardowym zbiorze OpenWebText dobrze dostrojony model dyfuzyjny — MDLM, praca z recenzją z NeurIPS 2024 — schodzi do 23,21. Wcześniejszy dyfuzyjny SEDD miał 24,10, więc to postęp. Ale porządny model autoregresyjny na tych samych danych siedzi na 17,54.2 To jest przepaść, nie zaokrąglenie. Przez lata właśnie ta liczba kazała wszystkim traktować dyfuzję tekstu jako akademicką zabawę: ładna idea, gorszy wynik, po co.
Gdyby historia kończyła się tutaj, nie pisałbym tego wpisu. Ale ktoś zadał lepsze pytanie.
Zwrot akcji: a co, gdy danych jest MAŁO?
Cała ta zabawa w „tyle samo danych" ma cichy skutek uboczny: zakłada, że danych masz w bród i każdy token widzisz raz. Tymczasem świat idzie w drugą stronę. Publicznie dostępnych, napisanych przez ludzi tekstów jest skończenie wiele, a prognozy mówią, że przy obecnym tempie wyczerpiemy je około 2028 roku.3 Compute rośnie, danych nie przybywa. Coraz częściej nie pytamy „ile danych", tylko „ile razy mogę bezpiecznie przemielić te, które mam".
I dokładnie to sprawdzili Prabhudesai i współpracownicy w pracy z NeurIPS 2025 — z tytułem, który mówi wszystko: Diffusion Beats Autoregressive in Data-Constrained Settings. Wytrenowali oba typy modeli, wielokrotnie powtarzając ten sam ograniczony korpus, i zmierzyli, kto dłużej wyciąga korzyść z powtórek. Wyniki są zaskakująco czyste:
- Przy małym budżecie obliczeń, blisko punktu Chinchilli, autoregresja startuje lepiej — tak jak pokazywały liczby perplexity przed chwilą.
- Ale gdy zaczynasz powtarzać dane przez epoki, przewaga się odwraca. Dyfuzja schodzi niżej na walidacji i wypada lepiej na zadaniach.
- W jednym z ich reżimów pula unikalnych danych jest ustawiona na 100 milionów tokenów (tyle mniej więcej ma niewielki, ale realny korpus) i mielona w kółko. Autoregresja wyciska z tego maksimum przy jakichś 50 epokach — czyli obejrzawszy te dane 50 razy — i potem się przejada, zaczyna zapamiętywać zamiast uogólniać. Dyfuzja bije swój najlepszy wynik dopiero przy 500 epokach.3
Pięćset epok. Dziesięć razy dłużej można karmić model tymi samymi danymi, zanim zacznie się psuć.
Dlaczego? Bo maska to darmowa augmentacja
Sekret nie jest magiczny, jest wręcz elegancki. Autoregresja zawsze zadaje modelowi to samo pytanie: co jest następnym tokenem. Przy każdej epoce ten sam tekst, ten sam kierunek, to samo zadanie. Po kilkudziesięciu powtórkach model zwyczajnie wkuwa — bo nic nowego już z tego zdania nie wyciśnie.
Dyfuzja za każdym razem maskuje inaczej. Raz schowa początek, raz środek, raz co drugie słowo. Ten sam fragment tekstu staje się za każdą epoką innym zadaniem — inną łamigłówką do rozwiązania. To jest jak darmowa augmentacja danych, wpisana w samo objective. Model nigdy nie widzi dokładnie tej samej próbki dwa razy, więc dłużej ma się czego uczyć, zanim zacznie kuć na pamięć.3 Dwukierunkowość dokłada swoje: przewidywanie zasłoniętego środka z obu stron to trudniejsze, bogatsze zadanie niż wieczne „zgadnij następne".
I tu robi się ciekawie dla ciebie. Bo kto trenuje na małym, ustalonym korpusie, który z checią przemieli wiele razy? Nie OpenAI z całym internetem. Ty — jeśli kiedyś siądziesz do trenowania własnego modelu na swoim zbiorze: korpusie jednego autora, archiwum forum, tekstach w niszowym języku. To jest twój reżim, nie ich.
Trzecia droga: block diffusion, czyli suwak między światami
Zanim rzucisz się przepisywać wszystko na dyfuzję — jest haczyk, i jest sprytne wyjście.
Haczyk: czysta dyfuzja gubi dwie rzeczy, które w autoregresji masz za darmo. Po pierwsze, KV-cache — sztuczkę, dzięki której model przy generowaniu nie przelicza w kółko całej historii. Dyfuzja co krok zmienia cały bufor, więc nie ma czego cache’ować, i inferencja jest droższa. Po drugie, zmienną długość — dyfuzja musi z góry wiedzieć, ile tokenów wygeneruje, podczas gdy autoregresja gada, aż powie „koniec".
Sprytne wyjście nazywa się block diffusion (BD3-LM, praca z ICLR 2025) i jest dokładnie tym, na co wygląda: suwakiem między autoregresją a dyfuzją. Dzielisz tekst na bloki. Między blokami idziesz autoregresyjnie, lewo do prawa — więc odzyskujesz KV-cache i możesz generować dowolnie długo. Wewnątrz bloku robisz dyfuzję — więc zostaje ci dwukierunkowość i równoległość. Ustawiasz długość bloku na jeden i masz czysty autoregresyjny model; ustawiasz na całą sekwencję i masz czystą dyfuzję. Wszystko pomiędzy to hybryda. BD3-LM tym trickiem ustanowił najlepszą perplexity wśród modeli dyfuzyjnych, mocno domykając lukę do autoregresji.4
Czyli mapa jest taka: autoregresja — najlepsza surowa jakość i najprostsza inferencja. Czysta dyfuzja — najwięcej wyciska z małych danych i generuje najrównoleglej. Block diffusion — próbuje wziąć jedno i drugie.
Zrób to sam (no, prawie)
Najlepsze jest to, że to nie jest już zabawa tylko dla laboratoriów. Dyfuzyjny model językowy da się wytrenować od zera na jednej domowej karcie — objective to kilkanaście linii kodu, a szkielet transformera zostaje ten sam, tylko zdejmujesz maskę przyczynową. Kod wszystkich trzech podejść leży otwarty: LLaDA pokazała, że dyfuzja skaluje się do 8 miliardów parametrów trenowanych od zera i dogania Llamę 3 na benchmarkach (MMLU 65,9 kontra 65,4) — z zastrzeżeniem, że to na razie preprint, nie praca z recenzją.1 MDLM daje czysty, minimalny punkt startu, a BD3-LM — wariant blokowy z gotowymi wagami.24
Jeśli miałbyś to kiedyś odpalić u siebie, zapamiętaj jedną rzecz z tego wpisu: dyfuzja nie jest „lepsza" ani „gorsza" od autoregresji w próżni. Wygrywa albo przegrywa w zależności od tego, ile masz unikalnych danych i ile razy zamierzasz je przemielić. Masz internet i jeden przebieg? Bierz autoregresję. Masz mały, cenny zbiór, który chcesz wycisnąć do dna przez setki epok? Wtedy maska, która za każdym razem pyta inaczej, zarobi na siebie z nawiązką.
Kiedy studnia wyschnie
Jest w tym wszystkim pewna ironia losu. Przez dekadę autoregresja wygrywała, bo danych było tyle, że pytanie „ile razy je powtórzyć" w ogóle nie miało sensu — brało się kolejny bilion tokenów i szło dalej. Dyfuzja czekała w kącie ze swoją dziwną sztuczką maskowania, do niczego niepotrzebna, bo po co augmentować dane, których masz w nadmiarze.
Ale internet nie rośnie w nieskończoność, a karty graficzne owszem. Zbliżamy się do momentu, w którym wygra nie ten model, który przeczyta najwięcej, tylko ten, który z każdego przeczytanego zdania wyciśnie najwięcej. I wtedy okaże się, że ta dziwna sztuczka — psuć tekst, żeby nauczyć się go składać z powrotem, za każdym razem inaczej — nie była ciekawostką. Była zapasem na czasy, gdy studnia zacznie wysychać.
Nie i in., Large Language Diffusion Models (LLaDA), arXiv:2502.09992 (preprint, nierecenzowany) — pierwszy dyfuzyjny model językowy trenowany od zera na skali 8B, konkurencyjny z LLaMA3-8B (MMLU 65,9 vs 65,4; TruthfulQA 46,4 vs 44,0), bijący GPT-4o na zadaniu odwróconego wiersza dzięki dwukierunkowości. Traktować jako mocną przesłankę, nie zweryfikowany fakt. arxiv.org/abs/2502.09992. ↩︎ ↩︎
Sahoo i in., Simple and Effective Masked Diffusion Language Models (MDLM), NeurIPS 2024 — Rao-Blackwellizowane objective jako mieszanka klasycznych strat MLM; na OpenWebText perplexity 23,21 (MDLM) wobec 24,10 (SEDD) i 17,54 (model autoregresyjny), czyli nowy stan sztuki wśród dyfuzji przy wciąż istniejącej luce do AR. openreview.net/pdf?id=JESNfpRIGj. ↩︎ ↩︎
Prabhudesai, Wu, Zadeh, Fragkiadaki, Pathak, Diffusion Beats Autoregressive in Data-Constrained Settings, NeurIPS 2025, arXiv:2507.15857 — autoregresja przewodzi przy małym compute (blisko optimum Chinchilli), lecz przy powtarzaniu danych przez epoki dyfuzja schodzi niżej na walidacji i lepiej wypada na zadaniach; w reżimie 100M tokenów dyfuzja osiąga minimum przy ~500 epokach wobec ~50 dla autoregresji; mechanizm to niejawna augmentacja przez różne maski/kolejności; praca podaje nowe prawa skalowania dyfuzji i próg compute, powyżej którego dyfuzja wygrywa. Prognoza wyczerpania publicznych danych ~2028. arxiv.org/abs/2507.15857. ↩︎ ↩︎ ↩︎
Arriola, Gokaslan, Chiu, Yang, Qi, Han, Sahoo, Kuleshov, Block Diffusion: Interpolating Between Autoregressive and Diffusion Language Models (BD3-LM), ICLR 2025 (Oral) — autoregresja między blokami, dyfuzja wewnątrz bloku; długość bloku interpoluje między oboma paradygmatami; odzyskuje KV-cache, generację zmiennej długości i równoległe próbkowanie; najlepsza perplexity wśród modeli dyfuzyjnych. arxiv.org/abs/2503.09573. ↩︎ ↩︎