Post

DiT (Diffusion Transformer)

DiT (Diffusion Transformer)

๐Ÿ“„ ๊ด€๋ จ ๋…ผ๋ฌธ: [ICCV 2023] Scalable Diffusion Models with Transformers

DiT๋Š” ๊ธฐ์กด ๋””ํ“จ์ „ ๋ชจ๋ธ์—์„œ ํ‘œ์ค€์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋˜๋˜ U-Net ๋ฐฑ๋ณธ์„ Transformer ์•„ํ‚คํ…์ฒ˜๋กœ ๋Œ€์ฒดํ•œ ๋ชจ๋ธ์ด๋‹ค.

DiT ๋ชจ๋ธ์˜ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

fig1

DiT ๋˜ํ•œ LDM์ฒ˜๋Ÿผ latent ๊ณต๊ฐ„์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, VAE ์ธ์ฝ”๋”๋ฅผ ๊ฑฐ์นœ feature๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.

Patchify

์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ ๋…ธ์ด์ฆˆ๊ฐ€ ์„ž์ธ latent $x_t \in \mathbb{R}^{C \times I \times I}$๋ฅผ ViT์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ $p \times p$ ํฌ๊ธฐ์˜ ํŒจ์น˜๋“ค $x_{t,i}$๋กœ ๋ถ„ํ• ํ•œ๋‹ค.

์ดํ›„ ๊ฐ ํŒจ์น˜๋“ค์„ Flattenํ•˜๊ณ  Linear Projection์„ ๊ฑฐ์ณ 1์ฐจ์› ํ† ํฐ ์‹œํ€€์Šค๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

\[\vx_{t,i}=\text{MLP}(x_{t,i}) \tag{1}\]

fig2

Positional Embedding

ํŠธ๋žœ์Šคํฌ๋จธ๋Š” ์ž…๋ ฅ ํ† ํฐ์˜ ์ˆœ์„œ๋ฅผ ๋ณธ์งˆ์ ์œผ๋กœ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ํ† ํฐ ์‹œํ€€์Šค์— ์œ„์น˜ ์ •๋ณด๋ฅผ ๋”ํ•ด์ค€๋‹ค.

๋…ผ๋ฌธ ์›๋ณธ์—์„œ๋Š” 2D Sine-Cosine ์ž„๋ฒ ๋”ฉ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

Conditioning ๋ฐฉ์‹

๋…ผ๋ฌธ์—์„œ๋Š” Noise timestep $t$์™€ ์กฐ๊ฑด $c$ (ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ, ํด๋ž˜์Šค ๋ผ๋ฒจ ๋“ฑ)๋ฅผ ๋„คํŠธ์›Œํฌ์— ๊ฐ€์žฅ ํšจ๊ณผ์ ์œผ๋กœ ์ฃผ์ž…ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ Conditioning ๋ฐฉ๋ฒ•์„ ์‹คํ—˜ํ•˜์˜€๋‹ค.

\[\ve_{t}=\text{Embed}(t)\quad,\quad\ve_{c}=\text{Embed}(c) \tag{2}\]

๋…ผ๋ฌธ์—์„œ ์ตœ์ข…์ ์œผ๋กœ ์„ ํƒํ•œ ๋ฐฉ๋ฒ•์€ adaLN-Zero์ด๋‹ค.

In-Context Conditioning

Timestep ์ž„๋ฒ ๋”ฉ๊ณผ Condition ์ž„๋ฒ ๋”ฉ์„ patch token sequence์— ๋‹จ์ˆœํžˆ concatํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

\[\begin{bmatrix} \vx_{t,1}, & \vx_{t,2}, & \cdots, & \vx_{t,T}, & \ve_{t}, & \ve_{c} \end{bmatrix} \tag{3}\]
  • ์žฅ์ : ํ‘œ์ค€ ViT Block์„ ๊ตฌ์กฐ์  ์ˆ˜์ • ์—†์ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋ชจ๋ธ์— ์ถ”๊ฐ€๋˜๋Š” ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งค์šฐ ์ž‘๋‹ค.
  • ๋‹จ์ : 3๊ฐ€์ง€ ๋ฐฉ์‹ ์ค‘ ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ๋–จ์–ด์ง„๋‹ค.

Cross-Attention Block

DiT block์—์„œ Self-Attention ๋’ค์— Cross-Attention layer๋ฅผ ์ถ”๊ฐ€ํ•ด, Conditioning์„ key์™€ value๋กœ, Input token์„ query๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • ์žฅ์ : ๊ธฐ์กด LDM์—์„œ ์‚ฌ์šฉ๋œ ํ‘œ์ค€์ ์ธ Conditioing ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜์—ฌ ์ง๊ด€์ ์ด๋‹ค.
  • ๋‹จ์ : 3๊ฐ€์ง€ ๋ฐฉ์‹ ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ถ”๊ฐ€ (๋Œ€๋žต 15%์˜ Gflops ์˜ค๋ฒ„ํ—ค๋“œ)ํ•˜๋ฉฐ, ์—ฐ์‚ฐ ๋น„์šฉ์ด ๊ฐ€์žฅ ํผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  adaLN-Zero ๋ฐฉ์‹๋ณด๋‹ค FID๊ฐ€ ๋‚ฎ๋‹ค.

adaLN-Zero (Adaptive LayerNorm with Zero-initialization)

Adaptive LayerNorm

Transformer block ๋‚ด๋ถ€์˜ LayerNorm ์—ฐ์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ๋‹ค.

\[y=\gamma\odot\frac{x-\mu}{\sqrt{\sigma^2+\epsilon}}+\beta \tag{4}\]

Adaptive LayerNorm์€ ํ‘œ์ค€ Layer Norm์„ ์กฐ๊ฑด๋ถ€๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ์กฐ๊ฑด ์ž„๋ฒ ๋”ฉ์˜ ํ•ฉ์œผ๋กœ๋ถ€ํ„ฐ scale parameter $\gamma$, $\alpha$์™€ shift parameter $\beta$๋ฅผ ํšŒ๊ท€ํ•ด๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

\[\gamma,\beta,\alpha=\text{MLP}(\ve_{t}+\ve_{c}) \tag{5}\]

์ฆ‰, ์ด MLP๋Š” ์ž…๋ ฅ๋œ $t$๋‚˜ $c$์— ๋งž์ถฐ, ๊ฐ ํ† ํฐ์ด ์–ด๋–ป๊ฒŒ ์ •๊ทœํ™”๋˜์–ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋„คํŠธ์›Œํฌ ์Šค์Šค๋กœ ์กฐ์ •ํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ฐ scale parameter $\gamma$์™€ $\alpha$๋Š” ์ ์šฉ๋˜๋Š” ์œ„์น˜์™€ ๋ชฉ์ ์ด ๋‹ค๋ฅด๋‹ค.

  • $\gamma$ : Sub-Block์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— LayerNorm ์—ฐ์‚ฐ ๋‚ด๋ถ€์—์„œ ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ์— ์ง์ ‘ ๊ณฑํ•ด์ง€๋ฉฐ, Condition์„ ๋ฐ์ดํ„ฐ์— ์ฃผ์ž…ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • $\alpha$ : Sub-Block์—์„œ ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ์™€ ์›๋ณธ ๋ฐ์ดํ„ฐ์˜ Residual Connection ์ง์ „์— ๊ณฑํ•ด์ง€๋ฉฐ, ์—ฐ์‚ฐ ๋ธ”๋ก์˜ ์ถœ๋ ฅ๊ฐ’์„ ์›๋ณธ์— ์–ผ๋งŒํผ ๋ฐ˜์˜ํ• ์ง€ ์กฐ์ ˆํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
\[x_{l+1} = x_{l} + \alpha \odot \text{SubBlock}(\text{adaLN}(x_{l}, \gamma, \beta)) \tag{6}\]

Zero-initialization

Zero-initialization์€ Residual Connection ์ง์ „์— ๊ณฑํ•ด์ง€๋Š” scale parameter $\alpha$๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์ด ๋•๋ถ„์— ํ•™์Šต ๊ทน์ดˆ๊ธฐ์—๋Š” Sub-Block ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ 0์ด ๋˜์–ด ๋ฌด์‹œ๋˜๊ณ , ๋„คํŠธ์›Œํฌ ์ „์ฒด๊ฐ€ ๋ฐ์ดํ„ฐ ์›๋ณธ์„ ๊ทธ๋Œ€๋กœ ํ†ต๊ณผ์‹œํ‚ค๋Š” Identity function์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ํ•™์Šต ๋ถˆ์•ˆ์ •์„ฑ์„ ๋ง‰๋Š”๋‹ค.