Week 18 ํ์ต ์ ๋ฆฌ
Generative AI
๋ํ ์ธ์ด ๋ชจ๋ธ(LLM)์ด๋?
๋ํ ์ธ์ด ๋ชจ๋ธ(LLM, Large Language Model)์ ์์ญ์ต ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๊ตฌ์ฑ๋์ด ๋ฐฉ๋ํ ์ฌ์ ํ์ต ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ จ๋ ๋ฒ์ฉ ์ธ์ด ๋ชจ๋ธ์ ๋๋ค. ๋ํ์ ์ธ ์๋ก๋ OpenAI์ ChatGPT, Meta์ LLaMA, MISTRAL AI์ Mistral, Upstage์ Solar ๋ฑ์ด ์์ต๋๋ค. ๊ณผ๊ฑฐ์๋ GPT-1, GPT-2, BERT์ ๊ฐ์ pretrained language model์ด ๊ฐ ํ์คํฌ์ ๋ง๊ฒ fine-tuning์ ๊ฑฐ์ณ ์ฌ์ฉ๋์์ผ๋, LLM์ ํ๋์ ๋ชจ๋ธ๋ก ๋ค์ํ ํ์คํฌ๋ฅผ ์ํํ ์ ์๋ค๋ ์ ์์ ํฐ ๋ณํ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
LLM์ ๋์ ์๋ฆฌ
LLM์ Zero-shot learning๊ณผ Few-shot learning์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํฉ๋๋ค.
- Zero-shot learning: ๋ชจ๋ธ์ด ์ฌ์ ํ์ต๋ ์ง์๊ณผ prompt๋ง์ผ๋ก ํ์คํฌ๋ฅผ ์ดํดํ๊ณ ์ํํ๋ ๋ฐฉ์์ ๋๋ค.
- Few-shot learning: ๋ชจ๋ธ์ด prompt์ ํจ๊ป ์ ๊ณต๋ ๋ช ๊ฐ์ง ์์(demonstration)๋ฅผ ํตํด ํ์คํฌ๋ฅผ ์ดํดํ๊ณ ์ํํฉ๋๋ค.
Prompt๋?
LLM์๊ฒ ์ํ๋ ์์
๊ณผ ์ค์ ์
๋ ฅ๊ฐ์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋ชจ๋ธ์ ํ์คํฌ ์ํ ๋ฐ ์ถ๋ ฅ๋ฌธ์ ์ ์ดํฉ๋๋ค.
Prompt๋ ๋ค์ ์ธ ๊ฐ์ง ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Instruction: ํ์คํฌ ์ํ์ ์ํ ๊ตฌ์ฒด์ ์ง์๋ฌธ
- Demonstration: ํด๋น ํ์คํฌ์ ์ ๋ ฅ-์ถ๋ ฅ ์ ์์
- Input: ์ค์ ํ์คํฌ ์ํ์ ์ํ ์ ๋ ฅ๋ฌธ
์์
[Instruction] ์ ์์๋ ์ํ ๋ฆฌ๋ทฐ์ ๋ํ ๋ถ์ ๊ฒฐ๊ณผ์ผ. ์์๋ฅผ ๋ณด๊ณ ์๋ ๋ฆฌ๋ทฐ์ ๊ฐ์ฑ์ ๋ถ์ํด์ค.
[Demonstration]
๋ฆฌ๋ทฐ : ๋ฌ๋ ํ์ ๋ด๋ด ์์์ด ๋์ด์ง ์์ ์ํ
๊ฐ์ฑ : ๊ธ์
[Input]
๋ฆฌ๋ทฐ : ๋๋ฌด ๊ธธ๊ณ ์ง๋ฃจํ๋ค.
๊ฐ์ฑ :
LLM์ ์ํคํ ์ฒ
๋๋ถ๋ถ์ LLM์ Transformer ๊ตฌ์กฐ๋ฅผ ๋ณํํ ๋ ๊ฐ์ง ๋ชจ๋ธ ๊ตฌ์กฐ๋ฅผ ์ฑํํฉ๋๋ค.
1. Encoder-Decoder ๊ตฌ์กฐ
- ๋์ ์๋ฆฌ:
- Encoder: ์ ๋ ฅ ๋ฌธ์ฅ์ ์ดํด
- Decoder: ์ดํดํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๋ฌธ์ฅ ์์ฑ
- ์์: T5(Text-to-Text Transfer Transformer)
- ํ์ต ๋ฐฉ๋ฒ:
- Span Corruption: ์ ๋ ฅ ๋ฌธ์ฅ์ ์ผ๋ถ๋ฅผ masking ์ฒ๋ฆฌํ ํ, masking id์ ํจ๊ป ๋ณต์ ๋ฌธ์ฅ์ ํ์ต
2. Decoder-Only ๊ตฌ์กฐ
- ๋์ ์๋ฆฌ:
์ ๋ ฅ๋ ํ ํฐ ๋จ์๋ก ๋ค์ ํ ํฐ์ ์์ธกํ๋ฉฐ ๋ฌธ์ฅ์ ์์ฑํฉ๋๋ค. - ํน์ง:
๋๋ถ๋ถ์ LLM์ด causal decoder ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฐ์ค๋ฌ์ด ๋ฌธ์ฅ ์์ฑ์ ์ํํฉ๋๋ค.
Corpus ๊ตฌ์ถ
LLM์ ์ฌ์ ํ์ต์ ์ํด์๋ ๋๊ท๋ชจ ํ
์คํธ ๋ฐ์ดํฐ ์งํฉ์ธ Corpus๊ฐ ํ์ํฉ๋๋ค.
์์ ๋ฐ์ดํฐ์๋ ์์ค, ํ์ค ํํ, ์ค๋ณต ๋ฐ์ดํฐ, ๊ฐ์ธ ์ ๋ณด ๋ฑ ํ์ต์ ๋ถํ์ํ ๋ด์ฉ์ด ํฌํจ๋ ์ ์์ผ๋ฏ๋ก, ์ ์ ๊ณผ์ ์ ํตํด ๊นจ๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
Instruction Tuning
LLM์ ์๋ต ํ์ง์ ๋์ด๊ธฐ ์ํด instruction tuning ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค. ์ด๋ ์ฌ์ฉ์์ ๋ค์ํ ์ ๋ ฅ์ ๋ํด ์์ ํ๊ณ ๋์์ด ๋๋ ๋ต๋ณ์ ์์ฑํ๋๋ก fine-tuningํ๋ ๊ณผ์ ์ผ๋ก, ์ธ ๊ฐ์ง ๋จ๊ณ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Supervised Fine-Tuning (SFT):
- Prompt์ Demonstration์ ํ์ฉํ์ฌ ์ง๋ ํ์ต์ ์งํํฉ๋๋ค.
- Reward Modeling:
- LLM์ด ์์ฑํ ๋ต๋ณ์ helpfulness(์ง๋ฌธ ์๋์ ๋ง๋ ์ ์ฉ์ฑ)์ safety(์์ ์ฑ)๋ฅผ ํ๊ฐํ์ฌ ์ ์๋ฅผ ์ฐ์ถํฉ๋๋ค.
- Reinforcement Learning with Human Feedback (RLHF):
- PRO ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ ์ฌ์ฉํด ๋์ ์ ์๋ฅผ ๋ฐ์ ๋ต๋ณ์ ๋์ฑ ๊ฐํํ๋๋ก ํ์ตํฉ๋๋ค.
์ด๋ฌํ ๊ณผ์ ์ ํตํด instruction tuning์ ์งํํ๋ฉด, ์ฌ์ฉ์ ์ง์ ํธ์๋๊ฐ ๋์์ง๊ณ ๊ฑฐ์ง ์ ๋ณด ์์ฑ(ํ ๋ฃจ์๋ค์ด์ ) ๋น๋๊ฐ ๊ฐ์ํ๊ฒ ๋ฉ๋๋ค.
๊ธฐ์กด์ ์ธ์ด ๋ชจ๋ธ ํ์ต ๋ฐฉ๋ฒ๋ก ๊ณผ In-Context Learning
๊ณผ๊ฑฐ์๋ target task์ ๋ง์ถฐ ๋ชจ๋ธ ์ ์ฒด ๋๋ ์ผ๋ถ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ fine-tuning ๋ฐฉ๋ฒ์ด ์ฃผ๋ก ์ฌ์ฉ๋์์ต๋๋ค.
- ๋ฐฉ๋ฒ๋ก ์ข
๋ฅ:
- Feature-based approach:
- ์ฌ์ ํ์ต ๋ชจ๋ธ์์ embedding์ ์ถ์ถ ํ, ๋ณ๋์ classifier๋ฅผ ํ์ต
- Fine-tuning I:
- output layer๋ง ์ ๋ฐ์ดํธ
- Fine-tuning II:
- ๋ชจ๋ layer๋ฅผ ์ ๋ฐ์ดํธ์ฑ๋ฅ์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ๋ง์ด ์ ๋ฐ์ดํธํ ์๋ก ํฅ์๋์ง๋ง, fine-tuning II๊ฐ ๊ฐ์ฅ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ๋์ training efficiency๋ ๋จ์ด์ง๋๋ค.
- Feature-based approach:
๋ํ In-Context Learning (ICL) ๋ฐฉ์์ ๋ช ๊ฐ์ง ์์๋ฅผ prompt๋ก ์ ๊ณตํจ์ผ๋ก์จ ์๋ก์ด ํ์คํฌ๋ฅผ ์ํํ๋ ๋ฐฉ์์ธ๋ฐ, ์ด ๊ฒฝ์ฐ ๋ชจ๋ธ์ ๊ฐ์ค์น๋ ์ ๋ฐ์ดํธ๋์ง ์์ต๋๋ค. ๋จ, ICL์ ๋ฌด์์ label์๋ ๋ชจ๋ธ์ด ์ ๋ฐ์ํ๋ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๊ฐ ์์ด ์ ๋ขฐ์ฑ ์ธก๋ฉด์์ ํ๊ณ๊ฐ ์์ต๋๋ค.
PEFT (Parameter-Efficient Fine-Tuning)
๋ชจ๋ธ ์ ์ฒด๋ฅผ ์ ๋ฐ์ดํธํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ (๊ธฐ์ต ์์ค, ๋ง๋ํ ์์ ์๋ชจ ๋ฑ)๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PEFT ๋ฐฉ๋ฒ์ด ๊ณ ์๋์์ต๋๋ค. PEFT๋ ์ ์ฒด ํ๋ผ๋ฏธํฐ ์ค ์ผ๋ถ๋ง ์ ๋ฐ์ดํธํ๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก, ๋ํ์ ์ธ 4๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
1. Adapter Tuning
- ๊ตฌ์กฐ:
- ๊ธฐ์กด ๋ชจ๋ธ์ ๊ฐ ๋ ์ด์ด์ ํ์ต ๊ฐ๋ฅํ ์์ Feed Forward Network(FFN)๋ฅผ ์ฝ์ ํฉ๋๋ค.
- Transformer์ ๋ฒกํฐ๋ฅผ ์์ ์ฐจ์์ผ๋ก ์์ถ ํ ๋น์ ํ ๋ณํ์ ๊ฑฐ์ณ ์๋ ์ฐจ์์ผ๋ก ๋ณต์ํ๋ ๋ณ๋ชฉ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ๋จ์ :
- ๋ณ๋ชฉ ๋ ์ด์ด ์ถ๊ฐ๋ก inference latency(์ถ๋ก ์ง์ฐ)๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค.
Adapter Tuning ๊ตฌํ ์์:
def transformer_block_with_adapter(x):
residual = x
x = SelfAttention(x)
x = FFN(x) # Adapter
x = LN(x + residual)
residual = x
x = FFN(x) # transformer FFN
x = FFN(x) # Adapter
x = LN(x + residual)
return x
2. Prefix Tuning
- ๊ตฌ์กฐ:
- ๊ฐ ๋ ์ด์ด์ ํ์ต ๊ฐ๋ฅํ prefix(๊ฐ์์ embedding)๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ํน์ง:
- ๊ฐ ํ์คํฌ๋ฅผ ์ํ ๋ฒกํฐ๋ฅผ ์ต์ ํํ์ฌ ๊ธฐ์กด ๋ชจ๋ธ๊ณผ ๊ฒฐํฉํฉ๋๋ค.
Prefix Tuning ๊ตฌํ ์์:
def transformer_block_for_prefix_tuning(x):
soft_prompt = FFN(soft_prompt)
x = concat([soft_prompt, x], dim=seq)
return transformer_block(x)
3. Prompt Tuning
- ๊ตฌ์กฐ:
- ์ ๋ ฅ ๋ ์ด์ด์ ํ์ต ๊ฐ๋ฅํ prompt vector๋ฅผ ํตํฉํฉ๋๋ค.
- ํน์ง:
- ์์ฐ์ด prompt๋ฅผ ์ง์ ์ถ๊ฐํ๋ ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ, embedding layer๋ฅผ ์ต์ ํํ์ฌ target task์ ๋ง๊ฒ ํ๋ํฉ๋๋ค.
Prompt Tuning ๊ตฌํ ์์:
def soft_prompted_model(input_ids):
x = Embed(input_ids)
x = concat([soft_prompt, x], dim=seq)
return model(x)
4. Low-Rank Adaptation (LoRA)
- ๊ตฌ์กฐ:
- ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ ๊ณ ์ ํ๊ณ , ํ์ต ๊ฐ๋ฅํ low-rank ํ๋ ฌ์ ์ฝ์ ํฉ๋๋ค.
- ํน์ง:
- ํ๋ ฌ์ ์ฐจ์์ ๋ฎ์ถฐ ์ถ๊ฐ ํ๋ผ๋ฏธํฐ๋ง ํ์ตํ ๋ค ๊ธฐ์กด ๋ชจ๋ธ์ ํฉ์ณ ์ถ๊ฐ ์ฐ์ฐ ์์ด ํ์ฉํ ์ ์์ต๋๋ค.
- ์ฅ์ :
- ๊ธฐ์กด ๋ฐฉ๋ฒ๋ณด๋ค ๋์ ์ฑ๋ฅ๊ณผ ํจ์จ์ฑ์ ๋ณด์ด๋ฉฐ, ํ์ฌ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ PEFT ๋ฐฉ์์ ๋๋ค.
LoRA ๊ตฌํ ์์:
def lora_linear(x):
h = x @ W # regular linear
h += x @ W_A @ W_B # low-rank update
return scale * h
LLM์ ํ๊ฐ ๋ฐฉ๋ฒ
LLM์ด ๋ค์ํ ํ์คํฌ๋ฅผ ์ผ๋ง๋ ์ ์ํํ๋์ง๋ฅผ ํ๊ฐํ๊ธฐ ์ํ ์ฌ๋ฌ ๋ฐ์ดํฐ์ ๊ณผ ํ๊ฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์ฃผ์ ํ๊ฐ ๋ฐ์ดํฐ์
-
MMLU (Massive Multitask Language Understanding):
- 57๊ฐ ์ด์์ ํ์คํฌ(์๋ฌผ, ์ ์น, ์ํ, ๋ฌผ๋ฆฌํ, ์ญ์ฌ, ์ง๋ฆฌ, ํด๋ถํ ๋ฑ)๋ก ๊ตฌ์ฑ๋ ํ๊ฐ ๋ฐ์ดํฐ์ .
- ๊ฐ๊ด์ ํํ๋ก ์ ๋ต ๋ณด๊ธฐ๋ฅผ ์์ฑํ์ฌ ํ๊ฐํฉ๋๋ค.
-
HellaSwag:
- ๋ชจ๋ธ์ด ์ผ๋ฐ ์์์ ๋ณด์ ํ๊ณ ์๋์ง ํ๊ฐํ๋ ๋ฐ์ดํฐ์ .
- ์ฃผ์ด์ง ๋ฌธ์ฅ์ ์์ฐ์ค๋ฌ์ด ์ด์ด์ง๋ ๋ฌธ์ฅ์ ์ ํํ๋ ๋ฐฉ์์ ๋๋ค.
-
HumanEval:
- ์ฝ๋ ์์ฑ ๋ฅ๋ ฅ์ ํ๊ฐํ๋ ๋ฐ์ดํฐ์ ์ผ๋ก, ํจ์๋ช ๊ณผ docstring์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋ ์ฝ๋์ ๊ฒฐ๊ณผ๋ฌผ์ ๊ฒ์ฆํฉ๋๋ค.
ํ๊ฐ ํ๋ ์์ํฌ
-
LLM-Evaluation-Harness:
- MMLU, HellaSwag ๋ฑ ๋ค์ํ ํ๊ฐ ๋ฐ์ดํฐ์ ์ ๋ถ๋ฌ์ ์๋์ผ๋ก ํ๊ฐํ ์ ์๋ ํ๋ ์์ํฌ์ ๋๋ค.
-
G-Eval:
- LLM์ ์ฐฝ์์ ๊ธ์ฐ๊ธฐ ๋ฅ๋ ฅ(์๊ธฐ์๊ฐ์ ์์ , ๊ด๊ณ ๋ฌธ๊ตฌ ์์ฑ, ์ดํฌ ๋ณ๊ฒฝ ๋ฑ)์ ํ๊ฐํฉ๋๋ค.
- AutoCoT(๋ชจ๋ธ ์ค์ค๋ก ์ถ๋ก ๋จ๊ณ๋ฅผ ๊ตฌ์ถํ๋ ํ๋กฌํํธ ๋ฐฉ์)์ ํตํด ํ๊ฐ ๋จ๊ณ๋ฅผ ์ ์ํ๊ณ , ์ธ๊ฐ ํ๊ฐ ์ ์์์ ์๊ด๊ด๊ณ๋ฅผ ์ธก์ ํฉ๋๋ค.
๊ฒฐ๋ก
๋ํ ์ธ์ด ๋ชจ๋ธ(LLM)์ ๋ฐฉ๋ํ ํ๋ผ๋ฏธํฐ์ ๋ค์ํ ํ์ต ๊ธฐ๋ฒ์ ํตํด ํ๋์ ๋ชจ๋ธ๋ก ์ฌ๋ฌ ํ์คํฌ๋ฅผ ์ํํ ์ ์๋ ํ์ ์ ์ธ ๊ธฐ์ ์ ๋๋ค.
- ํ์ต ๋ฐฉ์: Zero-shot, Few-shot learning ๋ฐ In-Context Learning
- ๋ชจ๋ธ ์ํคํ ์ฒ: Encoder-Decoder์ Decoder-Only ๊ตฌ์กฐ
- ํ์ธํ๋ ๊ธฐ๋ฒ: ์ ํต์ ์ธ fine-tuning ๋ฐฉ์๊ณผ PEFT (Adapter, Prefix, Prompt, LoRA)
- ํ๊ฐ ๋ฐฉ๋ฒ: MMLU, HellaSwag, HumanEval ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ์ ๊ณผ ํ๊ฐ ํ๋ ์์ํฌ ํ์ฉ
GAN๊ณผ ๋ค์ํ ์ด๋ฏธ์ง ์์ฑ ๋ชจ๋ธ ๊ธฐ์ ์ ๋ฆฌ
์ด ํฌ์คํธ์์๋ ๊ธฐ๋ณธ์ ์ธ GAN(Generative Adversarial Networks)๋ถํฐ ์ต์ ์์ฑ ๋ชจ๋ธ์ ์ด๋ฅด๊ธฐ๊น์ง, ๋ค์ํ ์ด๋ฏธ์ง ์์ฑ ๊ธฐ๋ฒ๊ณผ ๊ทธ ํ์ต ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ํ๊ฐ ์งํ์ ๋ํด ์ดํด๋ด ๋๋ค. ๊ฐ ๋ชจ๋ธ์ ํน์ง๊ณผ ์์ค ํจ์, ๊ทธ๋ฆฌ๊ณ paired/unpaired ๋ฐ์ดํฐ์ ๊ฐ๋ ๊น์ง ์์ธํ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค.
3 1. GAN (Generative Adversarial Networks)
- ๊ธฐ๋ณธ ๊ฐ๋
:
GAN์ **์์ฑ์(generator)**์ **ํ๋ณ์(discriminator)**๊ฐ ์ ๋์ ์ผ๋ก ํ์ตํ๋ ๊ตฌ์กฐ์ ๋๋ค.- ํ๋ณ์: ์ ๋ ฅ ์ด๋ฏธ์ง๊ฐ ์ค์ (real) ์ด๋ฏธ์ง์ธ์ง ์์ฑ๋(fake) ์ด๋ฏธ์ง์ธ์ง๋ฅผ ๊ตฌ๋ถํ๋๋ก ํ์ตํฉ๋๋ค.
- ์์ฑ์: ์ ์ฌ ๋ณ์ zzz๋ฅผ ์ ๋ ฅ๋ฐ์ ํ์ต ๋ฐ์ดํฐ์ ๋ถํฌ๋ฅผ ๋ชจ๋ฐฉํ๋ ์ง์ง ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค.
- ํ์ต ๋ฐฉ์:
- ํ๋ณ์๋ ์ง์ง์ ๊ฐ์ง๋ฅผ ์ ๋ถ๋ฅํ๋๋ก (maximize)
- ์์ฑ์๋ ํ๋ณ์๊ฐ ์์ง ๋ชปํ๋๋ก (minimize) ํ์ตํฉ๋๋ค.
2. ์กฐ๊ฑด๋ถ GAN (cGAN)
- ์ ์:
๊ธฐ๋ณธ GAN์ ์กฐ๊ฑด(condition)์ ์ถ๊ฐํ์ฌ, ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ฐ๋ผ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์๋๋ก ํ ๋ชจ๋ธ์ ๋๋ค.
3. Pix2Pix
- ๊ฐ๋
:
- cGAN์ ํ ์ข ๋ฅ๋ก, ์กฐ๊ฑด ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ชจ๋ธ์ ๋๋ค.
- ํ์ต์ ์ํด paired image ์, ์ฆ ๋ณํ ์ ํ์ 1:1 ๋์ ์ด๋ฏธ์ง๊ฐ ํ์ํฉ๋๋ค.
- ์: ๊ตฌ๋ ์ค์ผ์น์ ํด๋น ๊ตฌ๋์ ์ค์ ์ฌ์ง, ์ฅํ ์ค์ผ์น์ ์ค์ ์ฅํ ์ฌ์ง
4. CycleGAN
- ๋๊ธฐ:
- Pix2Pix์ฒ๋ผ paired ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ํด๊ฒฐ์ฑ
:
- Unpaired image๋ฅผ ์ฌ์ฉํ์ฌ ํ์ตํ๊ณ , cycle consistency loss๋ฅผ ๋์ ํ์ฌ ๋ณํ์ ์ผ๊ด์ฑ์ ํ๋ณดํฉ๋๋ค.
- Cycle Consistency Loss:
- ์์ด๋์ด:
- ๋๋ฉ์ธ XXX์ ์ด๋ฏธ์ง๋ฅผ ๋๋ฉ์ธ YYY๋ก ๋ณํํ ํ ๋ค์ XXX๋ก ๋ณต์ํ์ ๋, ์๋ณธ๊ณผ ์ต๋ํ ์ ์ฌํด์ผ ํ๋ค.
- ๋ฐ๋๋ก
์์๋ ๋์ผํ ์์น์ ์ ์ฉํฉ๋๋ค.
- ๊ตฌ์ฑ:
๋ณํ ์์ฑ์ GGG ๋ณํ ์์ฑ์ FFF - ๋๋ฉ์ธ
ํ๋ณ์ โ, ๋๋ฉ์ธ ํ๋ณ์ โ - ์ ์ฒด ๋ชฉ์ ํจ์๋ **adversarial loss
**์ **cycle consistency loss ( โ)**๋ก ๊ตฌ์ฑ๋์ด, paired ๋ฐ์ดํฐ ์์ด๋ ๋ณํ ์ ๋ขฐ์ฑ์ ํ๋ณดํฉ๋๋ค.
- ์์ด๋์ด:
5. Paired Image vs. Unpaired Image
- Paired Image:
- ์ ์: ๋ณํ ์ ํ์ 1:1๋ก ์ ํํ๊ฒ ๋์๋๋ ์ด๋ฏธ์ง ์
- ์์: ๊ตฌ๋ ์ค์ผ์น โ ํด๋น ๊ตฌ๋์ ์ค์ ์ฌ์ง
- ํน์ง: ์ง์ ์ ์ธ ๋์ ์ ๋ณด๋ก ๋ชจ๋ธ์ด ๋ช ํํ๊ฒ ํ์ตํ ์ ์์
- Unpaired Image:
- ์ ์: ๋ ์ด๋ฏธ์ง๊ฐ 1:1๋ก ์ง์ ๋์๋์ง ์๋ ์
- ์์: ์ค์ ์ฑ์ ์ฌ์ง โ ์ฒ์ ์ ํ ์ด๋ฏธ์ง, ๋ฎ์ ๊ฐ ์ฌ์ง โ ๋ฐค์ ์ ํ ์ ํ ์ด๋ฏธ์ง
- ํน์ง: ์ง์ ์ ์ธ ๋งค์นญ์ ์์ง๋ง, ๋๋ฉ์ธ(์: ์ค์ ์ฌ์ง vs. ์ ํ)์ ๋ถํฌ ์ฐจ์ด๋ฅผ ํ์ตํ๋ ๋ฐ ์ฌ์ฉ๋จ
6. StarGAN
- ๋ชฉ์ :
ํ๋์ ์์ฑ ๋ชจ๋ธ๋ก ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. - ์ฃผ์ ์์ค ํจ์ ๊ตฌ์ฑ:
- **ํ๋ณ์
: ** โ: adversarial loss : classification loss์ ์ค์๋๋ฅผ ์กฐ์ ํ๋ ๊ฐ์ค์น โ: ์ค์ ์ด๋ฏธ์ง์ ๋๋ฉ์ธ ๋ถ๋ฅ ์์ค
- ์์ฑ์
โ: โ โ: ์์ฑ๋ ์ด๋ฏธ์ง์ ์ฌ๋ฐ๋ฅธ ๋๋ฉ์ธ ๋ถ๋ฅ ์์ค โ: reconstruction (cycle consistency) loss์ ๊ฐ์ค์น : cycle consistency loss
- **ํ๋ณ์
7. ProgressiveGAN
- ๋ชฉ์ :
๊ณ ํด์๋ ์ด๋ฏธ์ง ์์ฑ์ ์ํ ํ์ต ๋น์ฉ์ ๋ฎ์ถ๊ณ , ๋จ๊ณ์ ์ผ๋ก ํด์๋๋ฅผ ์ฆ๊ฐํ๋ ๋ชจ๋ธ์ ๋๋ค. - ํน์ง:
- ์ ํด์๋ ์ด๋ฏธ์ง ์์ฑ๋ถํฐ ์์ํ์ฌ ์ ์ง์ ์ผ๋ก ํด์๋๋ฅผ ๋์ด๋ ๋ฐฉ์
- ์์ ํด์๋์ ํฐ ํด์๋์ ๊ฒฐ๊ณผ๋ฅผ weighted sum์ผ๋ก ๊ณ์ฐํ์ฌ ์ฌ์ฉ
8. StyleGAN
-
๊ฐ๋ :
- ProgressiveGAN์ ํ์ฅ์ผ๋ก, ์ด๋ฏธ์ง์ style (์์, ํค, ๋๋น, ํ ์ค์ฒ, ํจํด, ๋ํ ์ผ ๋ฑ)์ ์ ์ดํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
-
์ฃผ์ ๊ณผ์ :
- ๊ธฐ๋ณธ ๋๋ค ๋
ธ์ด์ฆ ๋ฒกํฐ zzz๋ฅผ ๋น์ ํ ๋ณํ์ ํตํด ์๋ก์ด latent space WWW๋ก ๋งคํ
- ๋งคํ ํจ์ fff๋ ๋ฐ์ดํฐ ๋ถํฌ์ ๋ง์ถฐ ์ฝํ์ ํด์ํฉ๋๋ค.
- WWW์ affine transform์ ์ ์ฉํ์ฌ ์คํ์ผ ์ ๋ณด ฮณ\gammaฮณ์ ฮฒ\betaฮฒ๋ฅผ ๊ณ์ฐ
- **Adaptive Instance Normalization (AdaIN)**์ ํตํด ๊ฐ ๋ ๋ฒจ์ ์คํ์ผ์ ์ฃผ์ ํฉ๋๋ค.
AdaIN ๊ณต์: AdaIN(x,ฮณ,ฮฒ)=ฮณ(xโฮผ(x)ฯ(x))+ฮฒ\text{AdaIN}(x,\gamma,\beta) = \gamma \left(\frac{x - \mu(x)}{\sigma(x)}\right) + \betaAdaIN(x,ฮณ,ฮฒ)=ฮณ(ฯ(x)xโฮผ(x)โ)+ฮฒ
- ์ ํด์๋ ๋ ๋ฒจ์์๋ global style, ๊ณ ํด์๋ ๋ ๋ฒจ์์๋ local style ์ ์ด
- ๊ธฐ๋ณธ ๋๋ค ๋
ธ์ด์ฆ ๋ฒกํฐ zzz๋ฅผ ๋น์ ํ ๋ณํ์ ํตํด ์๋ก์ด latent space WWW๋ก ๋งคํ
9. AutoEncoder ๊ณ์ด ๋ชจ๋ธ
9-1. AutoEncoder
- ๊ตฌ์กฐ:
- Encoder gฯg_\phigฯโ: ์
๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์ ์ฐจ์ latent space๋ก ๋งคํํ์ฌ ์ ์ฌ ๋ณ์
์์ฑ - Decoder fฮธf_\thetafฮธโ:
๋ฅผ ์ ๋ ฅ ๋ฐ์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋ณต์
- Encoder gฯg_\phigฯโ: ์
๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์ ์ฐจ์ latent space๋ก ๋งคํํ์ฌ ์ ์ฌ ๋ณ์
- ๋ชฉ์ ํจ์:
- ์ฃผ๋ก reconstruction loss (MSE ํน์ MAE)๋ฅผ ์ฌ์ฉ
9-2. Variational AutoEncoder (VAE)
- ํน์ง:
- AutoEncoder์ ์ ์ฌํ์ง๋ง, latent space์ ๋ถํฌ๋ฅผ ๊ฐ์ ํ์ฌ ํ์ต
- ๋ชฉ์ ํจ์:
- Reconstruction loss์ ํจ๊ป latent ๋ถํฌ๋ฅผ ์ ๊ทํํ๊ธฐ ์ํ KL divergence๋ฅผ ์ถ๊ฐ
9-3. VQ-VAE (Vector Quantized-Variational AutoEncoder)
- ๊ฐ๋
:
- ์ฐ์์ ์ธ latent space ๋์ ๊ณ ์ ๋ ํฌ๊ธฐ์ codebook์์ ์ด์ฐ์ ์ธ ๋ฒกํฐ๋ฅผ ์ ํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํํ
- ํ๋ก์ธ์ค:
- Encoder๊ฐ ์
๋ ฅ xxx๋ฅผ ์์ถํ์ฌ latent vector
์์ฑ - Vector Quantization:
๋ฅผ ์ฌ์ ์ ์๋ codebook ๋ด ๊ฐ์ฅ ๊ฐ๊น์ด ์ด์ฐ ๋ฒกํฐ๋ก ๋งคํ - Decoder๋ ์์ํ๋ ๋ฒกํฐ
๋ฅผ ์ฌ์ฉํด ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณต์
- Encoder๊ฐ ์
๋ ฅ xxx๋ฅผ ์์ถํ์ฌ latent vector
- ์์ค ํจ์ ๊ตฌ์ฑ:
โ: ์ฌ๊ตฌ์ฑ ์ค์ฐจ โ: Encoder์ ์ถ๋ ฅ ๊ฐ codebook ๋ฒกํฐ ์ ๊ฐ๊น์์ง๋๋ก ์ ๋ : ์ฝ๋๋ถ ๋ฒกํฐ๊ฐ ์ ๊ทผ์ ํ๋๋ก ์กฐ์ (์ญ์ ํ ์ฐจ๋จ ํฌํจ)
10. Diffusion Model ๊ณ์ด
10-1. DDPM (Denoising Diffusion Probabilistic Models)
- ์๋ฆฌ:
- Forward process: ์ ๋ ฅ ์ด๋ฏธ์ง์ ์ ์ง์ ์ผ๋ก Gaussian noise๋ฅผ ์ถ๊ฐํด latent ๊ณต๊ฐ์ผ๋ก ๋งคํ
- Reverse process: ์ถ๊ฐ๋ ๋ ธ์ด์ฆ๋ฅผ ์ถ์ , ์ ๊ฑฐํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ณต์
10-2. DDIM (Denoising Diffusion Implicit Models)
- ๋ชฉ์ :
- DDPM์ sampling step์ด ๋ง์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- ํน์ง:
- ๋ช ๋จ๊ณ ์ด์ ์ ์ ๋ณด๋ฅผ ๊ณ ๋ คํ๋ deterministic(๋น๋ง๋ฅด์ฝํ) ๋ฐฉ์์ผ๋ก ๋ ธ์ด์ฆ ์ ๊ฑฐ๋ฅผ ์ํ, ๋ ์ ์ ๋จ๊ณ๋ก ๊ณ ํ์ง ์ํ๋ง ๊ฐ๋ฅ
10-3. Classifier Guidance & Classifier-free Guidance
- Classifier Guidance (CFG):
- ๋ ธ์ด์ฆ ์ ๊ฑฐ ์, ํน์ ํด๋์ค์ ์ํ ํ๋ฅ ์ด ๋์์ง๋๋ก ์กฐ์ ํ๋ ๋ฐฉ๋ฒ
- ๋จ์ : diffusion pipeline์ classifier๋ฅผ ์ถ๊ฐํด์ผ ํ๋ฏ๋ก ๋ณต์ก๋๊ฐ ์์นํ๊ณ , ๋ชจ๋ step์ classifier๊ฐ ํ์
- Classifier-free Guidance:
- conditional score์ unconditional score๋ก ๋ถํดํ์ฌ, ๋ณ๋์ classifier ์์ด class์ ๋ํ guidance๋ฅผ ๊ฐ์ค์น๋ก ์กฐ์ ํ ์ ์๊ฒ ํจ
11. Latent Diffusion Model (LDM)
- ๊ฐ๋
:
- ๊ธฐ์กด์ diffusion model์ pixel space์์ ์ฒ๋ฆฌํ์ง๋ง, LDM์ latent space์์ diffusion์ ์ํํ์ฌ ๊ณ์ฐ ํจ์จ์ฑ์ ๊ทน๋ํํฉ๋๋ค.
- ํ๋ก์ธ์ค:
- Encoder๋ฅผ ํตํด ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ latent space๋ก ๋ณํ
- latent space์์ ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐยท์ ๊ฑฐํ ํ, Decoder๋ฅผ ํตํด ์๋ณธ ์ด๋ฏธ์ง ๊ณต๊ฐ์ผ๋ก ๋ณต์
- Cross attention์ ํ์ฉํด ์กฐ๊ฑด(condition) embedding์ ๋ฐ์
12. Stable Diffusion
- ๊ฐ์:
- LDM์ ๊ธฐ๋ฐ์ผ๋ก ํ text-to-image ์์ฑ ๋ชจ๋ธ๋ก, ํ ์คํธ ํ๋กฌํํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ณ ํ์ง ์ด๋ฏธ์ง๋ฅผ ์์ฑํฉ๋๋ค.
- ๊ตฌ์กฐ ๋ฐ ์๋ ๋ฐฉ์:
- Image Information Creator:
- latent space์์ U-Net ๊ตฌ์กฐ๊ฐ noise ์์ธก์ ๋ด๋น
- input latent์ noise ์ฃผ์ ์ ๋๋ฅผ noise scheduler๋ฅผ ํตํด noisy latent ์์ฑ
- noisy latent, time embedding, ๊ทธ๋ฆฌ๊ณ text encoder์ token embedding(ํฌ๋ก์ค ์ดํ ์ ํ์ฉ)์ ๊ฒฐํฉํ์ฌ ๋ ธ์ด์ฆ๋ฅผ ์์ธก
- Conditioning:
- ํ ์คํธ ์ ๋ ฅ์ CLIP text encoder๋ฅผ ํตํด embedding์ผ๋ก ๋ณํ๋๊ณ , latent space์์ noisy latent์ ๊ฒฐํฉํ์ฌ ์กฐ๊ฑด์ ๋ถํฉํ๋ ์ด๋ฏธ์ง ์์ฑ ์ ๋
- Image Information Creator:
Stable Diffusion์ ํ์ต ๊ณผ์
- ์
๋ ฅ ๋ฐ์ดํฐ ์ธ์ฝ๋ฉ:
- ์ด๋ฏธ์ง์ ํ ์คํธ๋ฅผ ๊ฐ๊ฐ์ encoder๋ฅผ ํตํด latent space๋ก ๋ณํ
- ๋
ธ์ด์ฆ ์ถ๊ฐ:
- image latent์ noise scheduler๋ฅผ ์ฌ์ฉํ์ฌ randomํ timestep๋งํผ ๋ ธ์ด์ฆ ์ถ๊ฐ
- U-Net ํ์ต:
- noisy latent, token embedding, time step์ ์ ๋ ฅ๋ฐ์ U-Net์ด ๋ ธ์ด์ฆ๋ฅผ ์์ธก
- ์์ธก๋ ๋ ธ์ด์ฆ์ ์ค์ ๋ ธ์ด์ฆ ๊ฐ์ ์ฐจ์ด๋ฅผ MSE loss๋ก ๊ณ์ฐํ์ฌ ํ์ต
Stable Diffusion์ Inference
- Text-to-Image Task:
- Gaussian noise ์ํ์์ ์์ํ์ฌ, text์ token embedding์ ๋ฐํ์ผ๋ก iterativeํ๊ฒ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐ
- ์ต์ข latent๋ฅผ Decoder๋ฅผ ํตํด ์ด๋ฏธ์ง๋ก ๋ณต์
- Inpainting Task:
- ๊ธฐ์กด ์ด๋ฏธ์ง์์ ๋ณํ๋ latent์ noise๋ฅผ ๊ฐํ noisy latent์์ ์์
- time step ์กฐ์ ๋ก input ์ด๋ฏธ์ง์ ์ํฅ ์ ๋๋ฅผ ์กฐ์ ํ, ๋์ผํ noise ์ ๊ฑฐ ๊ณผ์ ์ ํตํด ์ด๋ฏธ์ง ์์ฑ
Stable Diffusion 2 ๋ฐ XL
- Stable Diffusion 2:
- ์์ฑ ์ด๋ฏธ์ง ํด์๋๊ฐ ๊ธฐ์กด 512ร512์์ 768ร768๋ก ํฅ์
- text encoder๋ฅผ CLIP์์ OpenCLIP์ผ๋ก ์ ๋ฐ์ดํธ
- v-prediction์ ๋์ ํ์ฌ ๋ ธ์ด์ฆ์ ์๋ณธ ๋ฐ์ดํฐ ๊ฐ ํผํฉ ์ ๋(velocity)๋ฅผ ์์ธก
- super-resolution upscaler diffusion model ์ถ๊ฐ๋ก 2048ร2048 ์ด์์ ๊ณ ํด์๋ ์์ฑ ๋ฐ depth guided image generation ์ง์
- Stable Diffusion XL (SDXL):
- ๋ณด๋ค ํ์ค์ ์ธ ์ด๋ฏธ์ง ์์ฑ
- 2-stage ๋ชจ๋ธ (base + refiner)
- ๋ ๊ฐ์ text encoder ์ฌ์ฉ
- ์ ๋ฐฉํ์ ๋ฒ์ด๋ ๋ค์ํ ๋น์จ์ ์ด๋ฏธ์ง ์์ฑ ๊ฐ๋ฅ
- SDXL Turbo: Adversarial Diffusion Distillation์ ์ ์ฉํด ์ถ๋ก ์๋ ํฅ์ (one-step generation)
13. ์ด๋ฏธ์ง ์์ฑ ๋ชจ๋ธ ํ๊ฐ ์งํ
13-1. Inception Score
- ๋ชฉ์ :
- ์์ฑ๋ ์ด๋ฏธ์ง์ **fidelity(์ง)**์ diversity๋ฅผ ํ๊ฐ
- ์๋ฆฌ:
- ์์ฑ ์ด๋ฏธ์ง๊ฐ ํน์ ํด๋์ค์ ์น์ฐ์น likelihood ๋ถํฌ๋ฅผ ๋ณด์ด๋ฉด fidelity๊ฐ ๋๋ค๊ณ ํ๋จ
- ๋ค์ํ ํด๋์ค๊ฐ ์์ฑ๋๋ฉด marginal distribution์ด ๊ท ์ผํด์ ธ diversity๊ฐ ๋๋ค๊ณ ํ๊ฐ
- ๋ ๋ถํฌ์ KL divergence๋ฅผ ๊ณ์ฐํ์ฌ score๊ฐ ํด์๋ก ์ข์ ๊ฒฐ๊ณผ
13-2. FID (Frechet Inception Distance) Score
- ์๋ฆฌ:
- Inception Network๋ฅผ ํตํด ์ถ์ถํ ์ค์ ์ด๋ฏธ์ง์ ์์ฑ ์ด๋ฏธ์ง์ embedding ๊ฐ Frechet distance๋ฅผ ๊ณ์ฐ
- FID score๊ฐ ๋ฎ์์๋ก ์ค์ ์ ์์ฑ ์ด๋ฏธ์ง ๊ฐ์ ๋ถํฌ ์ฐจ์ด๊ฐ ์์, ๋ ๋์ ํ์ง์ ์๋ฏธ
13-3. CLIP Score
- ๋ชฉ์ :
- ์ด๋ฏธ์ง์ ์บก์ (ํ ์คํธ) ์ฌ์ด์ ์๊ด ๊ด๊ณ๋ฅผ ํ๊ฐ
- ๋ฐฉ๋ฒ:
- CLIP ๋ชจ๋ธ์ ์ฌ์ฉํด ์ด๋ฏธ์ง์ ์บก์ ์ embedding์ ์์ฑํ๊ณ , ๋ embedding์ cosine similarity๋ฅผ ๊ณ์ฐ
- ์ ์ฌ๋๊ฐ ๋์์๋ก ์ด๋ฏธ์ง์ ํ ์คํธ ๊ฐ ์ผ์น๋๊ฐ ๋๋ค๊ณ ํ๊ฐ
๊ฒฐ๋ก
๋ณธ ํฌ์คํธ์์๋ GAN์ ๊ธฐ๋ณธ ๊ฐ๋
๋ถํฐ ์์ํ์ฌ, ์กฐ๊ฑด๋ถ GAN, Pix2Pix, CycleGAN, StarGAN, ProgressiveGAN, StyleGAN๊ณผ ๊ฐ์ ๋ค์ํ ์์ฑ ๋ชจ๋ธ๊ณผ AutoEncoder ๊ณ์ด, Diffusion Model, ๊ทธ๋ฆฌ๊ณ ์ต์ Stable Diffusion๊น์ง ํญ๋๊ฒ ๋ค๋ฃจ์์ต๋๋ค.
๋ํ, ๊ฐ ๋ชจ๋ธ์ ํ์ต ์ ๋ต(์: cycle consistency, classifier guidance, latent diffusion)๊ณผ ํ๊ฐ ์งํ(Inception, FID, CLIP score)์ ๋ํด์๋ ์ ๋ฆฌํ์ฌ, ์ด๋ฏธ์ง ์์ฑ ๋ชจ๋ธ์ ์ ์ฒด์ ์ธ ํ๋ฆ๊ณผ ์ต์ ๊ธฐ์ ๋ํฅ์ ํ๋์ ํ์
ํ ์ ์๋๋ก ํ์์ต๋๋ค.