211002 Diary GPT
์ผ๋ง ์ ์ ๋ฆฌ๋ทฐํ๋ Codex๋ฅผ ๋น๋กฏํ Transformer Decoder ๊ธฐ๋ฐ์ Large LM(s)์ ์ฌ๋์ด ์์ฑํ๋ ๊ฒ๊ณผ ์ ์ฌํ ์์ค์ Text Generation์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค. ํ์ง๋ง, LM์ด ํน์ Domain, Style ํน์ Sentiment์ Text๋ฅผ ์์ฑํ๋๋ก ์กฐ์ ํ๋ ๊ฒ์ ๊ฐ๋จํ ์ผ์ด ์๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ํ๋ ์กฐ๊ฑด์ LM์ ๋ช
์์ ์ผ๋ก (Special Token ๋ฑ์ Prompt์ ํจ๊ป) ์ ๋ฌํ๋ ๋ฐฉ์์ ์๊ฐํ ์ ์์ง๋ง, LM์ ์ถ๊ฐ์ ์ธ ํ์ต์ด ํ์ํ๋ค๋ ์ ์์ ํจ์จ์ ์ด์ง ์๋ค. ์ต๊ทผ์๋ ๊ณผ๊ฑฐ ๋ฆฌ๋ทฐํ๋ ๋
ผ๋ฌธ๊ณผ ๋น์ทํ๊ฒ Pre-Trained LM์ ์ถ๊ฐ Parameter Update ์์ด ์ํ๋ ํน์ฑ์ Text๋ฅผ ์์ฑํ๋ ์ฐ๊ตฌ๋ค์ด ์ค์ ์ ์ผ๋ก ์ํ๋๋ ๊ฒ ๊ฐ๋ค. ๋ณธ์ธ์ ์ง๊ธ๊ป ์ฃผ๋ก Transformer Encoder ๊ณ์ด์ Denoising Auto-Encoding LM(s)๋ง์ ์ฌ์ฉํ๊ธฐ์, ์ด๋ฒ ๊ธฐํ์ Text Generation์ ์ ๋๋ก(?) ๊ณต๋ถํ๋ ค ํ๋ค. ๊ทธ๋ฐ ์๋ฏธ์์ ๊ฐ์ฅ ๋ํ์ ์ธ 2ํธ์ ๋
ผ๋ฌธ์ ์ฝ๊ณ ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณธ๋ค..
(Salesforce, 2019) CTRL: A Conditional Transformer Language Model for Controllable Generation
CTRL์ ์ฃผ์ด์ง Domain, Style ๊ทธ๋ฆฌ๊ณ ์ง์์๋ต, ๋ฒ์ญ ๋ฑ์ Task์ ํด๋นํ๋ Text๋ฅผ ์์ฑํ ์ ์๋๋ก ํ์ต๋ LM์ด๋ค. CTRL์ Prompt์ ํจ๊ป ์ ๋ฌ๋ฐ๋ Control Code(s)๋ก๋ถํฐ ์์ฑํ Text์ ํน์ฑ์ ๊ฒฐ์ ํ๋ค. ์๋ฅผ ๋ค์ด, "์ด ์นผ์"์ด๋ผ๋ Prompt๊ฐ ์์ ๋, Horror๋ผ๋ Code๋ฅผ ํจ๊ป ์ ๋ฌํ๋ฉด ๊ณตํฌ์ค๋ฌ์ด ์ฅ๋ฉด์ ๋ฌ์ฌํ Text๋ฅผ ์์ฑํ ๊ฒ์ด๊ณ , Code๊ฐ Reviews์ธ ๊ฒฝ์ฐ์๋ ๊ตฌ๋งคํ ์นผ์ ๋ํ ํ๊ธฐ์ ๊ฐ์ Text๋ฅผ ์์ฑํ๊ฒ ๋๋ ์์ด๋ค. Reviews์ ํจ๊ป Rating: 3.0์ด๋ผ๋ ์ถ๊ฐ Code๋ฅผ ์ ๋ฌํ ์ ์๋๋ฐ, ์ด ๋์๋ ์ ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๋์์ค์ Text๋ฅผ ์์ฑํ๋ค๊ณ ํ๋ค. ์ดํด๋ณธ ๋ฐ์ ๊ฐ์ด Control Code(s)๋ ๋ค์๊ณผ ๊ฐ์ 2์ข
๋ฅ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ด๋ค์ ์กฐํฉํ์ฌ ๋ค์ํ ํน์ฑ์ Text๋ฅผ ์์ฑํ ์ ์๋ค.
โข
Domain Control Code(s): Prompt์ ๋งจ ์์ Prepend๋จ. ์ดํ ๋ชจ๋ Sequence๋ ์ด๋ก๋ถํฐ Propagate๋๊ธฐ ๋๋ฌธ์ ํน๋ณํ ์๋ฏธ์ Token์ผ๋ก ์ทจ๊ธ๋๋ค๊ณ ํจ.
โข
Non-Domain Control Code(s): Rating: 3.0๊ณผ ๊ฐ์ Code.
CTRL์ Training+Inference์์ ์ฃผ๋ชฉํ ๋งํ ์ ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
โข
140GB์ Data๋ก ํ์ต: ์ด ์ค์๋ General Corpus(Wikipedia ๋ฑ), Reddit, QA+Translation Tasks ๋ฑ์ด ํฌํจ๋จ.
โข
Vocab Size๋ 250K๋ก ๋งค์ฐ ํฐ ํธ, ํ์ง๋ง Sequence Length๋ 256, 512๋ก ์์ ํธ. Vocab Size๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ Subwords๋ก์ ๋ถํด๊ฐ ๋ํ ๊ฒ์ด๋ฉฐ, ์ด๋ฅผ ํตํด ์ ์ ์์ Token์ผ๋ก๋ Long Sequence๋ฅผ ์ถฉ๋ถํ ํํํ ์ ์์.
โข
Inference์์ Temperature-Controlled ํน์ Nucleus Sampling๋ณด๋ค Greedyํ์ง๋ง, ์ค๋ณต ์์ฑํ Token์ Penalty๋ฅผ ์ฃผ๋ Penalized Sampling ํ์ฉ. (Sampling ๊ธฐ๋ฒ๋ค์ ์ ์ ๋ฆฌํด ์ค Blog!
)
(Uber, 2019) Plug and Play Language Models: A Simple Approach to Controlled Text Generation
CTRL๊ณผ ๊ฐ์ ๋ฐฉ์์ LM์ด Special Token์ ์ดํดํ ์ ์๋๋ก (์ถ๊ฐ์ ์ธ)ํ์ต์ ์งํํด์ผ ํ๋ ์ ์ฝ์ ๊ฐ๋๋ค. GPT ๊ณ์ด์ Model Size๋ฅผ ์๊ฐํ๋ฉด, ์ด๋ ์๋นํ Resource๋ฅผ ํ์๋ก ํ๋ ์์
์ด๋ค. PPLM์ Pre-Trained LM์ Parameter๋ Updateํ์ง ์๊ณ , Small Size์ Attribute Model์ ํ์ฉํ์ฌ LM์ด ์์ฑํ๋ Text์ ํน์ฑ์ ์กฐ์ ํ๋ค. PPLM์ Text์ Topic๊ณผ Sentiment๋ฅผ ์ค์ ํ ์ ์๊ณ , ๊ฐ๊ฐ Bag-of-Words(BoW), Single-Layer Classifier์ Attribute Model์ ํตํด ์กฐ์ ํ๋ค. ์กฐ๊ธ ๋ ๊ตฌ์ฒด์ ์ธ Process๋ ๋ค์๊ณผ ๊ฐ๋ค.
1.
Pre-Trained LM์ Forward Pass๋ก ๋ค์ Token(Sequence)์ Inferenceํ๊ณ , ์ด๋ฅผ Attribute Model์ ํตํด ์ํ๋ ํน์ฑ์ Likelihood, P(a|x)๋ฅผ Predictํ๋ค.
2.
Attribute Model์ Gradient๋ฅผ ํ์ฉํด P(a|x)๋ฅผ ์ฆ๊ฐ์ํค๋ ๋ฐฉํฅ์ผ๋ก LM์ Latent Representations๋ฅผ Updateํ๋ค.
3.
Update๋ Latent๋ก Inference๋ฅผ ๋ค์ ์ํํ๋ค.
์ ๋ด์ฉ์ ๋
ผ๋ฌธ์ผ๋ก ์ฝ์์ ๋, ์ดํดํ๋ ๋ฐ ๋ณ๋ค๋ฅธ ์ด๋ ค์์ด ์์๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ Code๋ก ๊ตฌํํ๋ค๊ณ ์๊ฐํ๋ ๋ง์ ๊ฐ์ด ์ ์ค์ง ์๋ ๊ฒ์ด๋ค.. (์ด๋ Code๊ฐ ์ด๋ ค์์๊ฐ ์๋๋ผ ๋ด๊ฐ ํนํ ์ฝํ๊ฑฐ๋ ๋ถ์กฑํ ์์๋ฅผ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ด ์๋๊น ์๊ฐํ๋ค!) ๊ณต์ GitHub์ ๋ณด๋ฉด์ ์ถ๊ฐ ๊ณต๋ถ๋ฅผ ํ์๊ณ , ๋ด๊ฐ ์ดํดํ ๊ฒ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
โข
Inference์์ Hugging Face GPT๋ ํ์ฌ Time Step์ Token, x_T์ Cached(์ด์ Time Step๊น์ง ๊ณ์ฐ)๋ Key-Values๊ฐ, H_T๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฐ์, x_(T+1)๊ณผ H_(T+1)์ ์ถ๋ ฅํจ(์๋ฐํ ๋งํ๋ฉด Token์ด ์๋ Logits์ ์ถ๋ ฅ).
โข
๋
ผ๋ฌธ์์ ์ธ๊ธํ๋ LM์ Latent๋ H_T๋ฅผ ๋งํจ.
โข
H_T์ ๋์ผํ Shape์, ๋ชจ๋ Param์ด 0๊ฐ์ธ Tensor, Delta(H_T)๋ฅผ ์์ฑํจ.
โข
Delta(H_T)์ Gradient๋ฅผ ๋ถ์ด๊ณ (requires_grad=True), H_T์ ๋ํด์ค ํ Forward Pass.
โข
Backward Pass๋ฅผ ํตํด Delta(H_T)์ Gradient๋ฅผ ๊ณ์ฐํ๊ณ , Delta(H_T)๊ฐ์ Update.
โข
H_T+Delta(H_T)๋ก Inference๋ฅผ ๋ค์ ์ํํจ.