๐ ๋ณธ ๊ธ์ 2023.08 ์ ์์ฑํ paper review๋ฅผ ๋ค๋ฌ์ด ๋ฐํํ ์์นด์ด๋ธ ๊ธ์ ๋๋ค.
์์ฑ ๋น์ ์ปจํ ์คํธ: X:AI 4๊ธฐ Adv
์๋ณธ ๋ ผ๋ฌธ: https://arxiv.org/abs/2102.12092
Zero-Shot Text-to-Image Generation
ํ ์คํธ to ์ด๋ฏธ์ง ์์ฑ์ ์ ํต์ ์ผ๋ก ๋ ์ข์ ๋ชจ๋ธ ๊ฐ์ ์ ์ฐพ๋ ๊ฒ์ ์ง์คํ๋ค. ์ด๋ฌํ ๊ฐ์ ์ ๋ณต์กํ ๊ตฌ์กฐ, ๋ณด์กฐ ๋ก์ค ๋๋ ์ถ๊ฐ์ ๋ณด๋ฅผ ์๋ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ autoregressive์ transformer ๊ธฐ๋ฐ ๋ฐฉ์์ ์๊ฐํฉ๋๋ค. ์ถฉ๋ถํ ๋ฐ์ดํฐ๋ฅผ ํตํด ์ฐ๋ฆฌ์ ์ ๊ทผ์ zero-shot์ ๋ํด์๋ ํจ๊ณผ์ ์ ๋๋ค.
์ฐ๋ฆฌ๋ 120์ต๊ฐ์ ํ๋ผ๋ฏธํฐ autoregressive transformer๋ฅผ 2์ต 5์ฒ๋ง๊ฐ ์ด๋ฏธ์ง ํ ์คํธ ํ์ด ๋ฐ์ดํฐ๋ฅผ ์ธํฐ๋ท์์ ์์งํ์ฌ ์ธ์ด๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค. MS-COCO dataset์ ํ์ต ๋ผ๋ฒจ์ ์ฌ์ฉํ์ง ์๊ณ ํ๊ฐ๋ฅผ ์งํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ๋ค๋ฅธ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๋ฌผ ๋ณด๋ค 90%๋๊ฒ ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค๊ณ ์ฌ๋๋ค์ ์ํด ์ ํ๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ ๊ธฐ์ด ์์ค์ ์ด๋ฏธ์ง to ์ด๋ฏธ์ง ๋ฒ์ญ ๋ํ ๊ฐ๋ฅํฉ๋๋ค.

์ฐ๋ฆฌ์ ๋ชฉํ๋ ํ ์คํธ์ ์ด๋ฏธ์ง ํ ํฐ์ ํ๋๋ก ๋ง๋ค์ด transformer๋ฅผ autoregressiveํ๊ฒ ํ์ต ์ํค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฏธ์ง์ ํฝ์ ์ ์ง์ ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ ์์์ ํ์๋ก ํฉ๋๋ค. likelihood ๋ฐฉ์์ ์ธ์ ํฝ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ๋ ๊ฒฝํฅ์ด ์์ด์ ๋ํ ์ผํ ํน์ง ๋ถ๋ถ์ ํฌ์ฐฉํ๋๋ฐ ๋น์ฉ์ด ์๋น๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด two-stage ํ์ต ๋ฐฉ์์ ๊ตฌ์ฑํฉ๋๋ค.
Stage 1

์ฐ๋ฆฌ๋ discrete variational autoencoder(dVAE)๋ก 256 256 RGB ์ด๋ฏธ์ง๋ฅผ 32 32 ๊ฒฉ์ ์ด๋ฏธ์ง ํ ํฐ์ผ๋ก ํ์ต์์ผ ๋ณํ์ํต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ํ ํฐ์ 8192๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด๋ transformer์ context size๋ฅผ 192๋ถ์ 1๋ก ์ค์ด๋ ํจ๊ณผ๋ฅผ ๊ฐ์ ธ๋ค ์ค๋๋ค.
Stage 2
์ฐ๋ฆฌ๋ BPE-encoded text 256 ํ ํฐ์ 1024 ์ด๋ฏธ์ง ํ ํฐ๊ณผ ์ฐ๊ฒฐ์ํค๊ณ autoregressive transformer๋ฅผ ๊ฒฐํฉํ๋ฅ ๋ถํฌ๋ฅผ ํ์ต์ํต๋๋ค.

q๋ dVAE encoder์์ ์์ฑ๋ ์ด๋ฏธ์ง ํ ํฐ์ ๋ํ ๋ถํฌ๋ฅผ ๋ํ๋ ๋๋ค.
๋ ์ด๋ฏธ์ง ํ ํฐ์ ๋ฐ๋ผ dVAE decoder์์ ์์ฑ๋ RGB ์ด๋ฏธ์ง ๋ถํฌ๋ฅผ ๋ํ๋ ๋๋ค.
p๋ ํธ๋์คํฌ๋จธ์์ ํ ์คํธ์ ์ด๋ฏธ์ง ํ ํฐ๊ฐ์ ๊ฒฐํฉ ๋ถํฌ๋ฅผ ๋ํ๋ ๋๋ค.
๊ฐ 1์ผ ๋๋ก ์ ์์ง๋ง, ์ค์ ๋ก ๋ ํฐ ๊ฐ์ด ์ ์ฉํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ํ์ต ์คํ ์ด์ง์์, ์ฐ๋ฆฌ๋ ์ด๋ฏธ์ง์ ๋ํด์๋ง dVAE๋ฅผ ํ์ต์ํจ๋ค. ์ฐ๋ฆฌ๋ ์ด๊ธฐ prior p๋ฅผ uniform categorical distribution๋ก ์ค์ ํ์ฌ 8192 ๊ฐ์ง์ ๊ฐ์ ๊ฐ๋๋ก ์ค์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ 32 * 32 ๊ฒฉ์ ๊ฐ์ ๋ํ์ฌ ์ด๋ฅผ ํ๋ผ 8192 ๊ฐ์ผ๋ก ํ๋ผ๋ฏธํฐํ ์ํจ๋ค.
ELB๋ ์ด์ ์ต์ ํํ๊ธฐ์ ์ด๋ ค์์ง๋ค. q๊ฐ ์ด์ฐ๋ถํฌ์ด๊ธฐ์ ์ฐ๋ฆฌ๋ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ต๋ํ์ํค๊ธฐ ์ํด ๋ค์ ํ๋ผ๋ฏธํฐํ๋ฅผ ์ํฌ ์ ์๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด online cluster assignment procedure + straight-through estimator๋ฅผ ์ฌ์ฉํ๋ค. ๋์ ์ฐ๋ฆฌ๋ gumbel-sofrmax relaxtion์ ์ฌ์ฉํ์ฌ ๋์ ๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ rโ0์ด ๋ ์๋ก ๋ถ์์ ํด์ง๋ค. ๊ทธ๋ฆฌ๊ณ likelihood๋ log-laplace distribution์ ์ฌ์ฉํ์ฌ ํ๊ฐ๋์ด์ง๋ค. relaxed ELB๋ Adam์ ์ฌ์ฉํ์ฌ ์ต๋ํ์ํจ๋ค.
ํ์ต์ ์์ ์ํค๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ฐ๋ฆฌ๋ ฯ์ ๋ฅผ ๊ณ ์ ํ๊ณ ํ ์คํธ์ ์ด๋ฏธ์ง ํ ํฐ์ ๋ํ ์ฌ์ ๋ถํฌ๋ฅผ ELB๋ฅผ ์ต๋ํ์ํค๊ธฐ ์ํด ํ์ต์ ์งํํ๋ค. ์ด๋ฏธ์ง์ ํ ์คํธ ์์์ ์ฐ๋ฆฌ๋ ํ ์คํธ๋ฅผ BPE encode๋ฅผ ํตํด 16384 vocabulary๋ก ์ต๋ 256 tokens์ ๋ง๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง๋ 8192 ํฌ๊ธฐ์ vocabulary๋ก 32 * 32 = 1024 tokens์ ์์ฑํ๋ค. ์ด๋ฏธ์ง ํ ํฐ์ dVAE encoder logits์์ argmax sampling์ ํตํด ์ป์ด์ง๋ค. ์ต์ข ์ ์ผ๋ก ํ ์คํธ์ ์ด๋ฏธ์ง ํ ํฐ์ ํ๋์ ๋ฐ์ดํฐ๋ก ์ฐ๊ฒฐ๋๋ค.

ํธ๋์คํฌ๋จธ๋ 64๊ฐ์ self-attention layers์์ ์ด๋ฏธ์ง ํ ํฐ์ด ๋ชจ๋ ํ ์คํธ ํ ํฐ์ ์ฐธ์กฐํ๋ ๋์ฝ๋๋ง ์๋ ๋ชจ๋ธ์ด๋ค. ๋ชจ๋ธ์์ ์ฌ์ฉ๋๋ self-attention mask๋ ์ด 3๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค.

ํ ์คํธ to ํ ์คํธ ์ดํ ์ ์ ๋ํด์๋ ํ์ค์ ๋ง์คํฌ ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง to ์ด๋ฏธ์ง์ ๋ํ ์ดํ ์ ์ row, column, covolution attention ๋ง์คํฌ๋ฅผ ์ฌ์ฉํ๋ค. ์ฐ๋ฆฌ๋ text ํ ํฐ์ 256๊ฐ๋ก ์ ํ์ ๋์๋ค. ๊ทธ๋ ๊ธฐ์ ํ ์คํธ์ ์ด๋ฏธ์ง ํ ํฐ ์ฌ์ด padding์ด ํ์ํ ๊ณต๊ฐ์ ์ด๋ป๊ฒ ํด์ผํ๋๊ฐ์ ๋ํด์๋ ๊ทธ ์ฌ์ด๋ฅผ -inf๋ฅผ ์ค์ ํ๋ ๋ฐฉ์์ด ์๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์์น๋ง๋ค ๊ฐ๊ธฐ ๋ค๋ฅธ special padding token์ ์ฌ์ฉํด ํ์ต์ ์งํํ๋ค. ์ด ํ ํฐ์ text token์ด ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๋ ์ฌ์ฉํ๋ค. ์ด๋ฌํ ๋ฐฉ์์ validation loss๋ฅผ ๋๊ฒ ๋ง๋ค์ง๋ง out-of-distribution captions์์๋ ์ ์๋ํ๋ค.
์ฐ๋ฆฌ๋ ํ ์คํธ์ ์ด๋ฏธ์ง ํ ํฐ์ ๋ํด ๊ฐ ๋ฐฐ์น ๋ฐ์ดํฐ์ ์์ ๋ฐ๋ผ ํฌ๋ก์ค ์ํธ๋กํผ๋ฅผ ์ ๊ทํ์์ผฐ๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ์ง ๋ชจ๋ธ๋ง์ ์ง์คํ๊ธฐ์ text์๋ 8๋ถ์ 1 ๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง์๋ 8๋ถ์ 7 loss๋ฅผ ๋์๋ค. ๋ชฉ์ ํจ์๋ adam + exponentially weighted iterate averaging์ ์ฌ์ฉํ๋ค.
์ฐ๋ฆฌ์ 12์ต๊ฐ์ ํ๋ผ๋ฏธํฐ์ ์ฃผ๋ ์คํ์ MS-COCO์ ํ์ฅ์ธ 330๋ง๊ฐ์ ์ด๋ฏธ์ง ํ ์คํธ ํ์ด ์ ๋ฐ์ดํฐ์ธ Conceptual Captions์์ ์ด๋ฃจ์ด์ก๋ค. ํ๋ผ๋ฏธํฐ๋ฅผ 120์ต๊ฐ๋ก ํค์ฐ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ 2์ต 5์ฒ๋ง๊ฐ์ ํ ์คํธ ์ด๋ฏธ์ง ํ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ธํฐ๋ท์์ ์ถ์ถํด ์์ฑํ๋ค. ์ด ๋ฐ์ดํฐ๋ MS-COCO๋ฅผ ํฌํจํ์ง ์์ง๋ง Conceptual Captions์ YFCC100M์ ์ผ๋ถ๋ถ์ ํฌํจํ๋ค. MS-COCO๋ ๋์ค์ ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์ ํ์ต ๋ฐ์ดํฐ๋ MS-COCO์์ ์ผ๋ถ ๊ฒน์น ์ ์๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฑฐ๋ฅผ ์กฐ์ ํ๊ธฐ ์ํด ๋ดค์ง๋ง ๋ฑํ ์์ง๋ ์์๋ค.
GPU memory๋ฅผ ์ ์ฝํ๋ฉฐ ์ฒ๋ฆฌ๋์ ๋๋ฆฌ๊ธฐ ์ํด ๋๋ถ๋ถ์ ํ๋ผ๋ฏธํฐ์, ์ ๋ฐ์ดํธ, ํ์ฑํ ํจ์ ๋ฑ์ 16-bit ํ์์ผ๋ก ์ ์ฅ๋๋ค. ๊ทธ๋ฆฌ๊ณ activation checking point๋ฅผ ์ ์ฅํ๊ณ ์ญ์ ํ ๊ณผ์ ์ resblocks ๋ด์์ activations๋ฅผ ์ฌ์ฐ์ฐํ๋ค. 16-bit ํ์์ 10์ต๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ์ฐ ์์ด ํ์ต์ํค๋ ๊ฒ์ด ์ด๋ ค์ด ๋ถ๋ถ์ด์๋ค. 16 bit ๊ธฐ์ธ๊ธฐ์์ ํ์ต์ํค๋ ๊ฒ์ ๋ฌธ์ ๋ ์ธ๋ํ๋ก์ฐ ๋๋ฌธ์ผ๋ก ๋ณด์๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด per-resblock gradient scaling์ ์ฌ์ฉํ๋ค.

๋ชจ๋ธ์ ๊น์ด๊ฐ ๊น์ด์ง ์๋ก ๊ธฐ์ธ๊ธฐ ๊ฐ์ ์ ์ ๋ ์์์ง๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ 16-bit์ ํ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด ์ฝ๊ฒ 0์ ๊ฐ์ผ๋ก ๋ฐ์ฌ๋ฆผ ๋์ด์ง๋ค. ์ด๋ฐ ํ์์ underflow๋ผ ๋งํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด mixed precision์ ํ์ตํ๋ค. ๊ทธ๋ฌ๋ mixed precision์ 5bit๋ก ๊ตฌ์ฑ๋์ด์ ธ ์๋ค. ์ด๋ ์ธ์ด ๋ชจ๋ธ์์ ์ถฉ๋ถํ์ง๋ง text to image ์์๋ ์ถฉ๋ถํ์ง ์๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ชจ๋ธ์ ๊ฐ๊ฐ์ resblock๋ง๋ค ๋ค๋ฅธ gradient scale์ ์ฌ์ฉํ๋ค. ์์ ๊ทธ๋ฆผ์์ ์ค์ ์ ์์ ํ ์ ์ ์ ์ญ์ ํ๋ฅผ ๋ํ๋ธ๋ค. residual block์ ๊ธฐ์ธ๊ธฐ๋ ๋ค์ด๊ฐ ๋ scale๋ก ๊ธฐ์ธ๊ธฐ๋ฅผ ํค์ด ํ ๋ํด์ง๋ ์ง์ ์ผ๋ก ๊ฐ ๋ ๋ค์ scaling์ ์ทจ์ํ์ฌ ๋ํ๋ ๋ฐฉ์์ด๋ค. ์ด๋ฅผ ํตํด underflow ํ์์ ๊ทน๋ณตํ๊ณ ์ ํ๋ค.
์ฐ๋ฆฌ์ 120์ต๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง ๋ชจ๋ธ์ 24GB๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ NVIDIA์ V100์ ๋๋ ์์น์ด๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด parameter sharding์ ์ฌ์ฉํ๋ค. ์ด๋ compute-intensive ์ฐ์ฐ์ผ๋ก ๋ด๋ถ ๋จธ์ ์ํต๊ฐ ์ผ๊ธฐ๋๋ ์ง์ฐ์ ์์ ์ค๋ค.
๋ชจ๋ธ์ ํ์ตํ๊ธฐ ์ํ ํด๋ฌ์คํฐ์์์ bandwidth์ ๊ฑฐ๋ฆฌ๋ ๊ฐ์ GPU ๋ด์ bandwidth ๋ณด๋ค ์งง๋ค. ์ด๋ gradient ์ทจํฉ ๊ณผ์ ์ ๋น์ฉ์ด ์ ๊ฐ๋์ด์ง๋ค. ๋ํ powerSGD๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์ธ๊ธฐ๋ฅผ ์์ถ์ํจ๋ค. ์ด์ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ์๋์ ๊ฐ์ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
์ญ์ ํ ๊ณผ์ ์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ถ์ ์์ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๋ค.
Error buffer๋ฅผ 0์ผ๋ก ๋ง๋๋ instance๋ฅผ ์ต์ํ ์ํจ๋ค.?
์์น์ ์์ ์ฑ์ ๋ํ๋ค.
Underflow๋ฅผ ํํผํ ์ ์๋ค.


์ ์ฌ์ง์ zero-shot ํ๊ฐ๋ฅผ ๋ค๋ฅธ ๋ชจ๋ธ๋ค๊ณผ ํจ๊ป ํ๊ฐํ ๊ฒ์ด๋ค.

๋ํ, ์ฌ๋๋ค์ ์ง์ ์ ์ธ ํ๊ฐ๋ก ์ ์ฑ ํ๊ฐ๋ฅผ ์งํํ๊ณ ์ด๋ ์ฐ๋ฆฌ์ ๋ชจ๋ธ์ด ์๋์ ์ด์๋ค.


์ฐ๋ฆฌ๋ autoregressive model์ ๊ธฐ๋ฐํ text to image์ ๊ฐ๋จํ ๋ฐฉ์์ ์ดํด๋ดค๋ค. ์ฐ๋ฆฌ๋ ๋๋ฉ์ธ ํนํ๋ zero-shot์ด๋ ๋ค์ํ ๊ณณ์์ ํฐ ๊ท๋ชจ์ ํ์ต์ด ์ผ๋ฐํ๋ฅผ ์ ํด์ฃผ๋ ๊ฒ์ ๋ณด์๋ค.
๐ ๊ด๋ จ ๊ธ