Robocikowo>ROBOCIKOWO
Architektura

DiT

2023AktywnyOpublikowano: 8 czerwca 2026Aktualizacja: 8 czerwca 2026Opublikowany
Architektura modelu dyfuzyjnego używająca Transformera zamiast U-Net jako sieci odszumiającej, operująca na patchach przestrzeni latentnej. Szkielet SD3, PixArt, Sora.
Kluczowa innowacja
Zastąpienie konwolucyjnej U-Net w modelach dyfuzyjnych czystym Transformerem operującym na patchach latentu, co daje lepszą skalowalność (wzrost jakości monotoniczny z FLOPs) i prostszą architekturę.
Kategoria
Architektura
Poziom abstrakcji
Wzorzec
Poziom operacji
Element architekturyModel
Zastosowania
Generacja obrazów z tekstu (Stable Diffusion 3, PixArt-α/Σ, Flux, Hunyuan-DiT)Generacja wideo (OpenAI Sora, Latte, CogVideoX)Klasowo-warunkowana generacja (ImageNet — oryginalny DiT)Generacja 3D i multi-viewGeneracja audio w przestrzeni latentnejSkalowalne modele generatywne z prawami skalowania

Jak działa

Wejściem DiT jest zaszumiony latent z_t (np. 32×32×4 z VAE Stable Diffusion). (1) Patchify: latent jest dzielony na patche p×p (p=2,4,8) i każdy jest linearnie projektowany na token o wymiarze d, tworząc sekwencję T = (h/p)·(w/p) tokenów. (2) Positional embedding: dodawane są (zwykle sinusoidalne lub uczone) embeddingi pozycji 2D. (3) Conditioning: krok t i warunek c są kodowane i wstrzykiwane do każdego bloku. Najlepszy wariant adaLN-Zero parametryzuje skalowanie i przesunięcie LayerNorm (γ, β) oraz bramki rezydualne (α) jako funkcje (t,c), z α zainicjalizowanym na zero (każdy blok startuje jako identyczność). (4) Bloki Transformera: standardowe self-attention + MLP nad tokenami patchy. (5) Decode: finalna LayerNorm + linear projektuje tokeny z powrotem na patche szumu/kowariancji, które są rearanżowane w latent ε. Inferencja działa jak w każdym modelu dyfuzyjnym — iteracyjne odszumianie schedulerem, z CFG dla warunkowania. MMDiT (SD3) rozszerza to o osobne strumienie tokenów tekstu i obrazu łączone w blokach attention.

Rozwiązany problem

Konwolucyjna U-Net w modelach dyfuzyjnych ma ograniczoną skalowalność — wzrost jakości nasyca się przy zwiększaniu parametrów, a indukcyjne biasy konwolucji utrudniają wykorzystanie ogromnych budżetów obliczeniowych. DiT pokazuje, że czysty Transformer skaluje się znacznie lepiej (jakość rośnie monotonicznie z FLOPs), korzystając z tych samych praw skalowania co LLM-y.

Komponenty

Patchify layerKonwersja latentu na sekwencję tokenów

Dzieli latent na patche p×p i linearnie projektuje każdy na token wymiaru d. Mniejszy p → więcej tokenów → wyższa jakość ale większy koszt.

INZaszumiony latent z VAE.
OUTSekwencja T tokenów patchy.
adaLN-Zero conditioningWarunkowanie na krok t i klasę/tekst c

Adaptive LayerNorm regresujący skalę/przesunięcie (γ,β) oraz bramki rezydualne (α) z embeddingu (t,c). α inicjalizowane na 0 → każdy blok startuje jako identyczność, stabilizując trening.

adaLN-Zero (najlepszy)Z bramkami rezydualnymi inicjalizowanymi na zero.
In-context conditioningWarunki jako dodatkowe tokeny w sekwencji.
Cross-attention conditioningOsobne bloki cross-attention (jak w U-Net SD).

Oficjalna

Transformer blocksPrzetwarzanie tokenów przez self-attention + MLP

Standardowe bloki Transformera (multi-head self-attention + feed-forward). Globalny receptive field nad wszystkimi patchami od pierwszej warstwy.

Positional embeddingKodowanie pozycji 2D patchy

Sinusoidalne lub uczone embeddingi pozycji dodawane do tokenów patchy (Transformer sam w sobie jest permutacyjnie niezmienniczy).

Final linear decoderProjekcja tokenów z powrotem na latent szumu

LayerNorm + linear mapujący każdy token na patch przewidywanego szumu (i opcjonalnie kowariancji), rearanżowany w latent ε.

Implementacja

Pułapki implementacyjne
Kwadratowy koszt attention przy małym patch sizeWysoka

Zmniejszenie p z 8 do 2 zwiększa liczbę tokenów 16×, a koszt attention 256× — łatwo przekroczyć pamięć.

Rozwiązanie:Większy patch + lepszy VAE, flash-attention, token merging, rozdzielczościowy curriculum.
Niestabilność treningu bez adaLN-ZeroŚrednia

Naiwne warunkowanie (in-context, cross-attn) trenuje się gorzej i mniej stabilnie niż adaLN-Zero.

Rozwiązanie:Użyć adaLN-Zero z bramkami rezydualnymi inicjalizowanymi na zero.
Brak indukcyjnego biasu lokalnościŚrednia

DiT wymaga więcej danych i obliczeń niż U-Net by nauczyć się lokalnych korelacji, których konwolucja dostarcza za darmo.

Rozwiązanie:Pretraining na dużych zbiorach, większy budżet obliczeniowy, ewentualnie hybrydowe bloki conv.

Ewolucja

Oryginalny paper · 2023 · ICCV 2023 · William Peebles
Scalable Diffusion Models with Transformers
William Peebles, Saining Xie
2022
DiT — preprint i prawa skalowania
Punkt przełomowy

Peebles & Xie pokazują, że Transformer zastępujący U-Net skaluje się monotonicznie z FLOPs i pobija U-Net na ImageNet.

2023
PixArt-α — wydajny T2I DiT

Chen i in. trenują DiT text-to-image przy ułamku kosztu SD, z cross-attention dla tekstu.

2024
Sora — DiT dla wideo (spacetime patches)
Punkt przełomowy

OpenAI opisuje Sorę jako diffusion transformer operujący na czasoprzestrzennych patchach latentu wideo.

2024
SD3 — MMDiT (multimodal diffusion transformer)
Punkt przełomowy

Stability AI wprowadza MMDiT z osobnymi strumieniami tokenów tekstu i obrazu oraz rectified flow.

2024
Flux — duży otwarty DiT

Black Forest Labs wydaje Flux, czołowy otwarty model oparty na DiT/MMDiT (12B).

Hiperparametry (konfigurowalne osie)

Patch size pKrytyczna

Rozmiar patcha (2, 4, 8). Mniejszy p → więcej tokenów → wyższa jakość, kwadratowo większy koszt.

Model size (depth × width)Krytyczna

Konfiguracje DiT-S/B/L/XL analogiczne do ViT. Skalowanie poprawia FID monotonicznie.

Conditioning methodWysoka

adaLN-Zero vs in-context vs cross-attention. adaLN-Zero osiągnął najlepsze wyniki.

Number of tokens TWysoka

Wynika z rozdzielczości latentu i patch size. Koszt attention rośnie O(T²).

Złożoność obliczeniowa

Złożoność czasowa: O(T² · d) per krok odszumiania, T = liczba patchy, d = wymiar modelu.

Paradygmat wykonania

Tryb główny
Gęsty

Cały Transformer jest aktywny na każdy krok odszumiania (z wyjątkiem wariantów MoE-DiT).

Wzorzec aktywacji
Wszystkie ścieżki aktywne

Równoległość

Poziom równoległości
W pełni równoległy

Trening i pojedynczy krok inferencji są w pełni równoległe po tokenach (jak w każdym Transformerze). Sekwencyjne pozostają tylko kroki odszumiania dyfuzji — wspólne dla wszystkich modeli dyfuzyjnych.

Zakres
TreningInferencjaPomiędzy urządzeniami

Wymagania sprzętowe

Podstawowe

Czysty Transformer to matmul-heavy obciążenie idealne dla tensor cores; korzysta z flash-attention i optymalizacji LLM-owych.

Podstawowe

Transformer dobrze paralelizuje się na TPU (XLA); duże treningi DiT/MMDiT korzystają z TPU/wielu GPU.