A new spectrum of model learning, Fine-tuning โจ
์ด๋ฒ ํฌ์คํ ์์ ๋ค๋ค๋ณด๊ณ ์ ํ๋ ๋ด์ฉ์ ๋ชจ๋ธ์ fine-tuning ๋ฐฉ์์ ๋ํด์์ด๋ค. ์ฌ์ค ํฌ์คํ ์ ์์๊ฐ ๋ฌด์ธ๊ฐ ์๋ชป๋์๋ค๋ ์ฌ์ค์ ๋๋ผ๊ณ ์๊ธฐ๋ ํ๋ฐ, ๊ทธ ์ ์ ์ํด๋ฅผ ๋ถํํ๋ค..!! ๐ ์ ๋ฒ ์๊ฐ์ ํ๋ผ๋ฏธํฐ ํจ์จ์ ์ธ fine-tuning์ ์์๋ณด๋ฉด์ fine-tuning์ ํจ์จ์ ์ผ๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ดค๋๋ฐ, ๊ทธ๋ ๋ค๋ฉด fine-tuning์ ์ข ๋ ํจ๊ณผ์ ์ผ๋ก ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น? ๋น์ฐํ ์๋ค!! ์ด๋ฒ ํฌ์คํ ์์๋ fine-tuning method๊ฐ ์ด๋ป๊ฒ ๋ณํ ํด๋๊ฐ๋์ง์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค.
์, ๊ทธ๋ ๋ค๋ฉด fine-tuning์ด ๋ฌด์์ผ๊น? ์ ๋ฒ ํฌ์คํ ์์ ๋งํ๋ ๊ฒ์ฒ๋ผ ์ง๊ธ์ ์๋ง์ language model๋ค์ pre-training & fine-tuning์ด๋ผ๋ ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํ๊ณ ์๋ค. ์๋ง์ ์์ ๋ฐ์ดํฐ์์ pre-training์ ๊ฑฐ์น๊ณ ๋์จ ๋ชจ๋ธ์ pre-training ๋๋ณด๋ค๋ ํจ์ฌ ๋ ์ ์ ์์ domain-specificํ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด์ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์กฐ์ ํด๋๊ฐ๋ฉฐ ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ fine-tuning์ด๋ผ ํ๋ค. ๐ ๊ทธ๋ ๋ค๋ฉด ์ ๊ทธ๋๋ ๋น๊ต์ ์งง์ fine-tuning์ ์ข ๋ ํจ๊ณผ์ ์ผ๋ก ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น? ์ด์ ๊ฐ์ ๊ณ ๋ฏผ์ ํตํด ๋์จ method๋ค์ด in-context learning, instruction-tuning, RLHF ๊ฐ์ ๋ฐฉ์๋ค์ด๋ค.
Original Fine-tuning method (GPT & BERT)๐
์์ ๋งํ ๊ฒ์ฒ๋ผ ์ง๊ธ์ ๋ง์ ๋ชจ๋ธ๋ค์ pre-training & fine-tuning method๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด pre-training & fine-tuning mechanism์ ์ด๋์ ์ฒ์ ์๊ฐ๋์์๊น? NLP๋ฅผ ์ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ์ ๋ค์ด๋ณธ ์ ์ด ์์ ์ ๋๋ก ์ ๋ช ํ ๋ชจ๋ธ์ธ GPT์ BERT๋ก๋ถํฐ ์ฒ์ ์๊ฐ๋์๋ค! ๐ฅณ GPT์ ๋ ผ๋ฌธ์ธ 'Improving Language Understanding by Generative Pretraining(2018)'๊ณผ BERT์ ๋ ผ๋ฌธ์ธ 'Bidirectional Encoder Representations from Transformers(2018)'์์๋ ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก fine-tuning์ ์ํํ์๋ค.
- GPT(Generative Pretraining Transformer): ๋จ๋ฐฉํฅ Transformer Decoder architecture๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ฅ์ ์์ฑํ๋ LM์ผ๋ก, ๋ง์ ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ก๋ถํฐ pre-trainํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ language task์์ fine-tuning์ ์ํํ์์.
- BERT(Bi-directional Encoder Representation Transformer): ์๋ฐฉํฅ์ผ๋ก ๋ฌธ๋งฅ์ ํ์ตํ๋ Transformer Encoder architecture๋ก pre-trained model์ ์ฌ์ฉํ์ฌ ๋ค์ํ ์์ฐ์ด ์ฒ๋ฆฌ task์์ fine-tuning์ ์ํํจ.
์ด๋ ๊ฒ ๊ธ๋ก๋ง ๋ณด๋ฉด ์ ๋๋ก ์ดํด๊ฐ ๊ฐ์ง ์์ผ๋ ๊ฐ ๋ ผ๋ฌธ์์ ์๊ฐํ ๊ทธ๋ฆผ๋ค๊ณผ ํจ๊ป ๋ณด๋ฉด์ ์ข ๋ ์์ธํ ์ดํดํด๋ณด์. ๋จผ์ GPT ๋ ผ๋ฌธ์์ ์๊ฐ๋ ๊ทธ๋ฆผ๋ถํฐ ๋ด๋ณด๋๋ก ํ์. ์ด ๊ทธ๋ฆผ์ด ๋ฑํ GPT์ pre-training & fine-tuning mecahnism์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๊ทธ๋ฆผ์ ์๋์ง๋ง, ๋๊ฐ ๊ทธ์ ๋น์ทํ ๋๋์ ๋ฐ์ ์ ์๋ ๊ทธ๋ฆผ์ด๊ธฐ์ ํ ๋ฒ ์ดํด๋ณด๋ ค๊ณ ํ๋ค! ๐ ์๋ ์ฌ์ง์ ์ผ์ชฝ ๋ถ๋ถ์์๋ GPT ๋ชจ๋ธ์ architecture๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๊ณ , ์ค๋ฅธ์ชฝ์์๋ ๊ฐ task์ ๋ฐ๋ฅธ ์๋ก ๋ค๋ฅธ ํํ์ input์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค. ์ด๋ ๋ฏ ์ฌ๋ฌ ์์ฐ์ด ๋ฐ์ดํฐ์์ ํ์ต์ ๊ฑฐ์น ๋ค ํน์ task์ ๋ํด์ ๋ค์ ํ์ต์ ํจ์ผ๋ก์จ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์กฐ์ ํ๋ ๊ณผ์ ์ fine-tuning์ด๋ผ ํ๋ ๊ฒ์ด๋ค! ๐คฉ

BERT์ fine-tuning์ GPT์ fine-tuning๊ณผ ์๋นํ ์ ์ฌํ๋ฐ... ๊ฐ ์๋๋ผ ์ฌ์ค fine-tuning ์์ฒด๋ ๊ฑฐ์ ๋ชจ๋ ๋ชจ๋ธ์ ๋ํด์ ๋น์ทํ ๋ชจ์์๋ฅผ ๊ฐ์ถ๋ค. fine-tuning ํ๋ task์ ๋ชจ๋ธ architecture์ ๋ฐ๋ผ์ ์กฐ๊ธ์กฐ๊ธ์ฉ์ ์ฐจ์ด์ ์ ๊ฐ์ง ๋ฟ์ด์ง, ๊ทธ ๋ผ๋ ์์ฒด๋ ๋ฐ๋์ง ์๋๋ค. ๊ทธ๋๋ BERT์ fine-tuning์ ์ดํด๋ณด๋ฉด ๋ค์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. GPT์ fine-tuning๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก pre-trained model์ ํน์ task ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ fine-tuning ์ํค๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์กฐ์ ํด๋๊ฐ๋ ๋ฐฉ์์ด๋ค! ๐

GPT์ BERT์ ๋ํด์ ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋๋ค! ๐
In-context Learning (GPT-2 & GPT-3) ๐
original fine-tuning์ ๋ค๋ฅผ ์ด์ fine-tuning ๋ฐฉ์์ ๋ฐ๋ก in-context learning์ด๋ค. in-context learning์ GPT-2๋ฅผ ์๊ฐํ ๋ ผ๋ฌธ 'Language Models are Unsupervised Multitask Learners(2019)'์์ ์ฒ์ ์๊ฐ๋์๋ค. ์ด in-context learning์ ํน์ ์์ ์ ์ํํ ๋ ์ฃผ์ด์ง ๋ฌธ๋งฅ์ ๊ณ ๋ คํ๊ณ ์ดํดํ์ฌ ๋ ๋์ ์ฑ๋ฅ์ ์ด๋์ด๋ผ ์ ์๋๋ก ํ๋ ๋ฐฉ์์ด๋ค. in-context learning์ ํ๋ ๋ฐฉ์์ ์ด๋ ต์ง ์์๋ฐ task์ ๋ํ task์ ๋ํ ์์๋ฅผ ์ ๋ ฅ์ผ๋ก ํจ๊ป ์ฃผ๋ฉด ๋๋ค. ๐ (n-shot learning์ ๋ฐ๋ผ์ ์์๋ฅผ ์ฃผ๋์ง ์ ์ฃผ๋์ง๋ ๋ฌ๋ผ์ง๋๋ค!)

In-context Learning์ ๋ชจ๋ธ์๊ฒ ์ฃผ์ด์ง๋ example์ ์์ ๋ฐ๋ผ์ ๋ถ๋ฅด๋ ์ด๋ฆ์ด ๋ฌ๋ผ์ง๊ฒ ๋๋๋ฐ, ์ฐ์ GPT-2์์๋ unsupervised learning์ ์ฌ์ฉํ์๊ธฐ ๋๋ฌธ์ ์์ฐ์ค๋ zero-shot learning์ ์ฌ์ฉํ์๋ค. ์ด๋ฅผ ํ ๋๋ก ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฆ ๋ถ์ผ ์ ์๋ค!
- Zero-shot Learning: example์ ์๊ฐ 0์ธ in-context learning 0๏ธโฃ
- One-shot Learning: example์ ์๊ฐ 1์ธ in-context learning 1๏ธโฃ
- Few-shot Learning: example์ ์๊ฐ 1๋ณด๋ค๋ ๋ง์ง๋ง ์ ์ ์์ธ in-context learning ๐ค
GPT-2์ ํ์ ๋ชจ๋ธ์ธ GPT-3์ ๋ ผ๋ฌธ 'Language Models are Few-shot Learners(2020)' ์์๋ GPT-2์ zero-shot learning์์ ๋ฒ์ด๋ few-shot learning์ ์ ๋ณด์ด๋ฉฐ ๋ณธ๊ฒฉ์ ์ธ in-context learning์ ๋ฌธ์ ์ด์๋ค! ๐ช GPT-2์ GPT-3์์ ์ ๋ณด์ธ in-context learning์ ์์ง๊น์ง๋ ๋ง์ language model๋ค์ ํ์ต ๋ฐฉ์์ผ๋ก ๊ตณ๊ฑดํ๊ฒ ์๋ฆฌ๋ฅผ ๋งค๊นํ๊ณ ์๋ค.

์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด ๊ธฐ๋ณธ์ ์ผ๋ก in-context learning์ task description์ด ์ฃผ์ด์ง๊ณ , ์ต์ข ์ ์ผ๋ก ๋ชจ๋ธ๋ก๋ถํฐ output์ ์ป๊ธฐ ์ํ input์ธ prompt๊ฐ ํจ๊ป ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ zero-shot, one-shot, few-shot์ ๋ฐ๋ผ์ ๊ทธ์ ๊ฑธ๋ง์ example๋ค์ด ์ฃผ์ด์ง์ผ๋ก์จ ๋ชจ๋ธ์ ์ด๋ฅผ ์ฐธ๊ณ ํด output์ ์ถ๋ ฅํด ๋ด๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ณผ์ฐ ๋ช ๊ฐ์ ์์ฐ์ด๋ฅผ ํฌํจํ prompt๋ฅผ ์ถ๊ฐํ๋ in-context learning์ ์ข์ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค ์ ์์์๊น? ๊ฒฐ๊ณผ๋ถํฐ ๋งํ์๋ฉด,, ๊ทธ๋ ๋ค!! ๋ค์์ GPT-3 ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด in-context learning์ ํตํด ํ์คํ ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ์ป์ ์ ์์๊ณ , one-shot์ ๊ฒฝ์ฐ์๋ ์์ฐ์ด prompt๊ฐ ์์ ๋์ ์์ ๋ ์๋นํ ์ฑ๋ฅ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์คฌ๋ค! ๐ฒ

์ด๋ฒ ์น์ ์์ ์์๋ณธ in-context learning์ fine-tuning์ ๋์ฒดํ ์์ ํ ์๋ก์ด ๋ฐฉ๋ฒ์ ์๋๊ณ , ๊ธฐ์กด์ fine-tuning์ ๋ถ๊ฐ์ ์ผ๋ก ์์ฐ์ด prompt๋ฅผ ์ถ๊ฐํ์ฌ ์ข ๋ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๋ฐฉ์์ fine-tuning์ด๋ผ๊ธฐ ๋ณด๋ค๋ prompt-tuning์ ๋ ๊ฐ๊น๋ค๊ณ ๋ณผ ์ ์๋ค. in-context learning์ ํตํด prompt-tuning์ ํจ๊ณผ๋ฅผ ์๊ฒ ๋๊ณ , ๋์ค์ prompt-tuning์ ํตํด LM์ ์ฑ๋ฅ์ ๊ฐ์ ์ํค๊ณ ์ ํ ๋ง์ ๋ ผ๋ฌธ๋ค์ด ๋์ค๊ฒ ๋์๋ค. (๊ถ๊ธํ๋ค๋ฉด ์ด ํฌ์คํ ์ ํ์ธํด๋ณด์๊ธธ!) ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ in-context learning์ ํฅํ์ ์ ์๋ instruction-tuning์ ๋ฐํ์ด ๋์ด์ฃผ์๋ค! ๐
GPT-2์ GPT-3์ ๋ํด์ ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋๋ค! ๐
Instruction-tuning (FLAN) ๐
์์ ์ค๋ช ํ original fine-tuning method๋ ์๋นํ ํจ๊ณผ์ ์ธ ๋ชจ์ต์ ๋ณด์ฌ์คฌ๊ณ , ์ฌ๊ธฐ์ ์ถ๊ฐ์ ์ผ๋ก prompting์ ๊ฑฐ์น in-context learning์ ๊ธฐ์กด์ fine-tuning์ ๋นํด ์ข ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ๋ณด์ฌ์คฌ๋ค. ํ์ง๋ง, ์ด method๋ค์ ๋ณด๋ฉด ํ ๊ฐ์ง ๊ณตํต์ ์ ๊ฐ์ง๊ณ ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ฐ๋ก test๋ฅผ ์ํํ task์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ fine-tuning์ ํ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ง์ฝ fine-tuning ์์ target task์ ๋ํด์ ํ์ต์ ํ์ง ์๊ณ ๋ target task๋ฅผ ์ํํ ์ ์๊ฒ ๋๋ค๋ฉด ์ด๋จ๊น? '์ด๊ฑด ๋ ๋ฌด์จ ๋ฑ๋ด์ง๊ฐ์ ์๋ฆฌ์ง? fine-tuning์ target task์ ๋ํด์ ์ถ๊ฐ์ ์ผ๋ก ํ์ตํจ์ผ๋ก์จ target task๋ฅผ ๋ ์ ์ํํ ์ ์๊ฒ ๋์์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์ง๊ธ๊น์ง ์ค๋ช ํ ๊ฑฐ ์๋์ผ?'๋ผ๊ณ ์๊ฐํ ์๋ ์๊ฒ ์ง๋ง, ์ฐ๋ฆฌ์ LM์ ์ฐ๋ฆฌ์ ์๊ฐ๋ณด๋ค ํจ์ฌ ๋ ์ ๋ฅํ๊ธฐ์ ์ด๊ฒ์ด ๊ฐ๋ฅํ๋ค!
์์์ ๋งํ ์ด๋ฐ ๋ฅ๋ ฅ์ ์ป๊ธฐ ์ํด์ ์ ์๋ ๋ฐฉ๋ฒ์ด Instruction-tuning์ด๋ค. ์ด instruction-tuning์ ๊ตฌ๊ธ์์ ์๊ฐํ ๋ชจ๋ธ์ธ FLAN์ ์๊ฐํ ๋ ผ๋ฌธ 'FLAN: Finetuned Language Models Are Zero-Shot Learners(2021)' ์์ ์ฒ์ ์๊ฐ๋์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด instruction-tuning์ ์์ธํ๊ฒ ๋ฌด์์ธ ๊ฑธ๊น? FLAN ๋ ผ๋ฌธ์ ์๋ ๊ธฐ์กด fine-tuning๊ณผ in-context learning, instruction-tuning ๋น๊ต ๊ทธ๋ฆผ์ ๋ณด๋ฉด์ ํ ๋ฒ ํ์ ํด ๋ณด๋๋ก ํด๋ณด์! ๐

๋จผ์ ๊ธฐ์กด์ fine-tuning ๋ฐฉ์์ target task์ ๋ํด์ fine-tuning์ ๊ฑฐ์นจ์ผ๋ก์จ LM์ target task์ ๋ํ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๋ ๋ฐฉ์์ด๋ค. ๋ ๋ฒ์งธ๋ก Prompting(in-context learning)์ few-shot prompting๊ณผ prompt engineering์ ํตํด target task์ ๋ํด์ ์ถ๋ก ์ ํ ์ ์๊ฒ ๋์์ค๋ค. ๋ง์ง๋ง์ผ๋ก instruction-tuning์ target task๊ฐ ์๋ ๋ค๋ฅธ task๋ค์ ๋ํด์ instruction + input + output ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ tuning ํจ์ผ๋ก์จ target task์ ๋ํด ์ถ๋ก ํ ์ ์๊ฒ ํด ์ค๋ค. ํ ๋ง๋๋ก ์ฌ๋ฌ task๋ฅผ ์ํํจ์ผ๋ก์จ target task๋ฅผ ์ํํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅผ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ์์ธ ๊ฒ์ด๋ค. FLAN์์ ์ ์ํ instruction-tuning ๋ฐฉ์์ ๋ํด์ ๋ค์ ๊ทธ๋ฆผ์ ํตํด ๋์ฑ ์์ธํ๊ฒ ์์๋ณด๋๋ก ํ์.

instruction-tuning ์ด๋ฆ์ ๊ฑธ๋ง๊ฒ task์ ๋ํ instruction, input, target์ ์ ๊ณตํ๊ณ , ์ด ๋ฐ์ดํฐ๋ค์ ๋ํด ํ์ต์ ํ๋ ๋ฐฉ์์ผ๋ก instruction-tuning์ ์งํ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ ๊ฒ target task์ ๋ค๋ฅธ task์ ๋ํ instruction, input, target ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด์ ํ์ต์ํจ๋ค๊ณ ํด์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ์ ๋ง ํฅ์๋์์๊น? ๊ทธ ์ ๋ต์ ๋ค์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์์ ๊ฒ์ด๋ค! ๐

์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด FLAN์ instruction-tuning์ ํ์คํ ํจ๊ณผ์ ์ธ method๋ผ๋ ๊ฒ์ ์ ์ ์๋ค. ํ์ฌ๋ ๊ธฐ์กด์ fine-tuning์์ ๋ฒ์ด๋ instruction-tuning์ ๋ง์ด ์ฌ์ฉํ๋ ์ถ์ธ์ด๋ค. (ex. Alpaca, WizardLM, etc.) FLAN์ ๋ํด ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ์๊ธธ ๋ฐ๋๋๋ค!
Reinforcement Learning from Human Feedback(RLHF) ๐งโ๐ซ
์ง๊ธ๊น์ง๋ LM์๊ฒ ๊ธฐ๋ณธ์ ์ธ ์์์ ๊ฐ๋ฅด์น๋ ๋๋์ด์๋ค๋ฉด, ์ด๋ฒ์ ์์๋ณด๊ณ ์ ํ๋ RLHF๋ ์ด์ง ๋ค๋ฅธ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ๋ชจ๋ธ์ ํ์ต์ํค๋ ๋ฐฉ์์ด๋ค. RLHF๋ฅผ ํ์ด์ ์จ๋ณด๋ฉด 'Reinforcement Learning from Human Feedback', ์ฆ ์ฌ๋์ ํผ๋๋ฐฑ์ผ๋ก๋ถํฐ ๊ฐํํ์ต์ ํ๋ ๊ฒ์ด๋ค. ๊ธฐ์กด์ fine-tuning method๋ค์ ์ฌ๋์ ๊ฐ์ญ์์ด ๋ชจ๋ธ ์ค์ค๋ก ํ์ตํ ๊ฒ์ ๋ฐํด, RLHF๋ ์ฌ๋์ ํผ๋๋ฐฑ์ ํ์๋ก ํ๋ค. ์ ๊ทธ๋์ผ ํ๋ ๊ฑธ๊น? ๊ทธ๊ฒ์ ๋ฐ๋ก RLHF๊ฐ ๋ชจ๋ธ์ด ์ฑํ ์ ๋์ฑ ํนํ๋๋๋ก ๋ง๋ค๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
RLHF๋ฅผ ์ฒ์์ผ๋ก ์๊ฐํ๊ณ ๋ฐ์ ๋ ๊ณผ์ ์ ์ดํด๋ณด๋ฉด ๋ ๋ง์ ๋ ผ๋ฌธ๋ค์ด ์กด์ฌํ๋๋ฐ ๊ฐ์ฅ ์ ๋ช ํ๊ฒ ์๋ ค์ ธ ์๋ ChatGPT ์ง์ ์ ๋ชจ๋ธ์ธ InstructGPT์ ์๊ฐํ ๋ ผ๋ฌธ์ธ 'Training language models to follow instructions with human feedback(2022)'์ ๋ํด์ ์๊ธฐํด๋ณด๋ฉฐ RLHF์ ๋ํด ์๊ธฐํด๋ณด๊ณ ์ ํ๋ค. InstructGPT์์ ์ฌ์ฉ๋ RLHF์ ํ๋ก์ธ์ค๋ ๋ค์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.

InstructGPT์ ์ ์ฒด์ ์ธ RLHF ํ๋ก์ธ์ค๋ฅผ ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- SFT: labeler๋ก๋ถํฐ prompt์ ๋ํ answer๋ฅผ ์์งํ๊ณ , ์ด ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ๋ชจ๋ธ์ ์ง๋ ํ์ตํจ.
- Reward Modeling: ํ๋์ prompt์ ๋ํด ์ฌ๋ฌ ๋ชจ๋ธ๋ค์ output์ ์์งํ๊ณ , ์ด output์ labeler๋ค์ด ํ๊ฐํ๊ฒ ํ์ฌ, ์ด ํ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด reward model์ ํ์ต์ํด.
- RL with PPO: policy๊ฐ output์ ์์ฑํ๊ณ , ํ์ต๋ reward model์ output์ ๋ํ reward๋ฅผ ๊ณ์ฐํ ๋ค, ์ด reward์ PPO๋ฅผ ํ์ฉํ์ฌ policy๋ฅผ ์ ๋ฐ์ดํธํจ.
๊ณผ์ ์ด ๋ณต์กํ๊ฒ ๋๊ปด์ง ์๋ ์์ง๋ง, ๋ค์ ์๊ฐํด ๋ณด๋ฉด ๊ฒฐ๊ตญ, ์ฌ๋์ ํผ๋๋ฐฑ์ ํตํด ํ์ต๋ reward model์ ํ์ฉํ์ฌ ๋ชจ๋ธ์ output์ reward๋ฅผ ๋งค๊ธฐ๊ณ , ์ด reward๋ฅผ PPO๋ฅผ ํ์ฉํ์ฌ policy ์ ๋ฐ์ดํธ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์ด ๋ ๋์ output์ ๋ด๋์ ์ ์๋๋ก ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐ๋ผ์ ๋น์ฐํ๊ฒ๋ RLHF๋ฅผ ๊ฑฐ์น ๋ชจ๋ธ์ ์ฑํ ๋ฅ๋ ฅ์ด ํจ์ฌ ๋ ์ฐ์ํ๋ฐ, ์ด๋ ์ฌ๋์ด reward model์ ํ์ต์ํค๋ ๊ณผ์ ์์ ํผ๋๋ฐฑ์ ์ ๊ณตํ ๋, ์ข ๋ ์ ๋ง๋ค์ด์ง output์ ๋ํด ๋์ reward๋ฅผ ๋ถ์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ๊ฒ ์๋ฒฝํด ๋ณด์ด๋ RLHF์๋ ๋จ์ ์ด ์์์ผ๋,, ์ผ๋จ RLHF๋ฅผ ๊ฑฐ์น ๋ชจ๋ธ๋ค์ ๊ณตํต์ ์ธ ํน์ง์ benchmark์์๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค๋ ์ ์ด๋ค! ๐ฅ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ Alignment Problem์ด๋ผ ์นญํ๋ค. ์ค์ ๋ก RLHF model๊ณผ ์ผ๋ฐ SFT ๋ชจ๋ธ์ benchmark ์ฑ๋ฅ์ ๋ณด๋ฉด ๋น์ทํ๊ฑฐ๋, ์คํ๋ ค ๋ ๋จ์ด์ง๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ๋ ํ๋ค. ๋ฌผ๋ก human preference์ benchmark ๋ ์ค ๋ฌด์์ด ๋ ์ค์ํ ๊ฐ๋์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ๊ฐ์น ํ๋จ์ด ๊ฐ๋ฅํ๊ฒ ์ง๋ง, ์ด ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ๋ชจ๋ ์ก์ ์ ์๋ ๋ฐฉ๋ฒ์ด ๊ฐ๋ฐ๋๊ธธ ๋ฐ๋ผ๋ ๋ง์์ด๋ค. ๐ฅฒ
RLHF์ InstructGPT์ ๋ํด ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํด์ฃผ์๊ธธ ๋ฐ๋๋๋ค!
What should be the next step of Fine-tuning? ๐ง
์ด ํฌ์คํ ์ ๋ง์ง๋ง์ ์ฅ์ํ ์ด ์น์ ์ ์ ๋ชฉ์ ์ด์ฐ๋ณด๋ฉด ์๋ชป๋์ ์๋ ์๋ค. ์ด๋ป๊ฒ ํ์ฌ์ ํ์๊ฐ ๋ฏธ๋๋ฅผ ์์ธกํ๊ณ ๊ทธ๋ ๊ฒ ๋์ด์ผ๋ง ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ์๋ชป๋์ ์๋ ์์ผ๋, ๋ง์ฝ RLHF์ instruction-tuning์ด ๋ฏธ๋์ fine-tuning ํ๋๋ฅผ ์ด๋์ด๋๊ฐ method๋ผ๊ณ ํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ๋ฆฐ ๋ง๋ ์๋๋ผ๊ณ ์๊ฐํ๋ค. ์ด ๋์ ๋ช ํํ ํ๊ณ๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ด๋ค! ๋ method๋ ๋ชฉํ๋ก ํ๋ ๋ฐฉํฅ์ด ์ด์ง์ ๋ค๋ฅธ๋ฐ, ํ๋๋ ๋ชจ๋ธ์ด benchmark์์ ์ข์ ์ฑ๋ฅ์ ๋ผ ์ ์๊ฒ ํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ๋ชจ๋ธ์ด ์ฑํ ์ ๋์ฑ ํนํ๋๋๋ก ๋๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ค. ๋ฐ๋ผ์ ์ด ๋์ alignment problem์ ๊ฐ์ง๋๋ฐ, ์ด ๋ง์ธ์ฆ์จ, benchmark ์ฑ๋ฅ๊ณผ ์ฑํ ๋ฅ๋ ฅ, ์ด ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ํจ๊ป ์ก์ง ๋ชปํ๊ณ ์๋ค๋ ๊ฒ์ด๋ค.
RLHF์ instruction-tuning์ด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๋ ํ ์์ผ๋ก ๋์๊ฐ์ผ ํ ๋ฐฉํฅ์ ๋ช ํํ๋ค๊ณ ํ์๋ ์๊ฐํ๋ค. ์ด alignmnet problem์ ํด๊ฒฐํ ์ ์๋ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ์ผ ํ๋ค๊ณ ์๊ฐํ๋ค! ๐ฅ ๋ฌผ๋ก ์ ํํ ์ด๋ค ๋ฐฉ์์ผ๋ก ํด์ผํ๋์ง๋ ํ์๋ ์ ๋ชจ๋ฅด์ง๋ง, alignmnet problem์ ํด๊ฒฐํ๊ณ , ๋ ๋์ performance๋ฅผ ๋ณด์ฌ์ฃผ๋ fine-tuning method๊ฐ ๊ฐ๋ฐ๋๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋ผ๋ฉฐ ํฌ์คํ ์ ๋ง์น๋ค. ์ด ํฌ์คํ ์ ๋๊น์ง ์ฝ์ด์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๐
'Insight ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Noise makes LLM better! - NEFTune ๐ (0) | 2023.10.18 |
---|---|
์ด์ ๋ ChatGPT๋ฅผ fine-tuning ํ ์๊ฐ!! โฐ (0) | 2023.08.23 |
ํ ๋จ๊ณ, ํ ๋จ๊ณ์ฉ ์ธ๊ฐ์ฒ๋ผ ์๊ฐํด๋ณด์! ๐ง ๐ค (0) | 2023.08.03 |
๋น์ ๋ Fine-tuning ํ ์ ์์ต๋๋ค! with PEFT ๐ค (0) | 2023.08.01 |
ChatGPT์ ์ฑ๋ฅ์ด ์ ์ข์์ง๊ณ ์๋ค๊ตฌ?!?!? ๐ฒ๐ฒ (0) | 2023.07.31 |
A new spectrum of model learning, Fine-tuning โจ
์ด๋ฒ ํฌ์คํ ์์ ๋ค๋ค๋ณด๊ณ ์ ํ๋ ๋ด์ฉ์ ๋ชจ๋ธ์ fine-tuning ๋ฐฉ์์ ๋ํด์์ด๋ค. ์ฌ์ค ํฌ์คํ ์ ์์๊ฐ ๋ฌด์ธ๊ฐ ์๋ชป๋์๋ค๋ ์ฌ์ค์ ๋๋ผ๊ณ ์๊ธฐ๋ ํ๋ฐ, ๊ทธ ์ ์ ์ํด๋ฅผ ๋ถํํ๋ค..!! ๐ ์ ๋ฒ ์๊ฐ์ ํ๋ผ๋ฏธํฐ ํจ์จ์ ์ธ fine-tuning์ ์์๋ณด๋ฉด์ fine-tuning์ ํจ์จ์ ์ผ๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ดค๋๋ฐ, ๊ทธ๋ ๋ค๋ฉด fine-tuning์ ์ข ๋ ํจ๊ณผ์ ์ผ๋ก ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น? ๋น์ฐํ ์๋ค!! ์ด๋ฒ ํฌ์คํ ์์๋ fine-tuning method๊ฐ ์ด๋ป๊ฒ ๋ณํ ํด๋๊ฐ๋์ง์ ๋ํด ์์๋ณด๊ณ ์ ํ๋ค.
์, ๊ทธ๋ ๋ค๋ฉด fine-tuning์ด ๋ฌด์์ผ๊น? ์ ๋ฒ ํฌ์คํ ์์ ๋งํ๋ ๊ฒ์ฒ๋ผ ์ง๊ธ์ ์๋ง์ language model๋ค์ pre-training & fine-tuning์ด๋ผ๋ ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํ๊ณ ์๋ค. ์๋ง์ ์์ ๋ฐ์ดํฐ์์ pre-training์ ๊ฑฐ์น๊ณ ๋์จ ๋ชจ๋ธ์ pre-training ๋๋ณด๋ค๋ ํจ์ฌ ๋ ์ ์ ์์ domain-specificํ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด์ ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์กฐ์ ํด๋๊ฐ๋ฉฐ ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ fine-tuning์ด๋ผ ํ๋ค. ๐ ๊ทธ๋ ๋ค๋ฉด ์ ๊ทธ๋๋ ๋น๊ต์ ์งง์ fine-tuning์ ์ข ๋ ํจ๊ณผ์ ์ผ๋ก ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์๊น? ์ด์ ๊ฐ์ ๊ณ ๋ฏผ์ ํตํด ๋์จ method๋ค์ด in-context learning, instruction-tuning, RLHF ๊ฐ์ ๋ฐฉ์๋ค์ด๋ค.
Original Fine-tuning method (GPT & BERT)๐
์์ ๋งํ ๊ฒ์ฒ๋ผ ์ง๊ธ์ ๋ง์ ๋ชจ๋ธ๋ค์ pre-training & fine-tuning method๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด pre-training & fine-tuning mechanism์ ์ด๋์ ์ฒ์ ์๊ฐ๋์์๊น? NLP๋ฅผ ์ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด ์ ๋ค์ด๋ณธ ์ ์ด ์์ ์ ๋๋ก ์ ๋ช ํ ๋ชจ๋ธ์ธ GPT์ BERT๋ก๋ถํฐ ์ฒ์ ์๊ฐ๋์๋ค! ๐ฅณ GPT์ ๋ ผ๋ฌธ์ธ 'Improving Language Understanding by Generative Pretraining(2018)'๊ณผ BERT์ ๋ ผ๋ฌธ์ธ 'Bidirectional Encoder Representations from Transformers(2018)'์์๋ ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก fine-tuning์ ์ํํ์๋ค.
- GPT(Generative Pretraining Transformer): ๋จ๋ฐฉํฅ Transformer Decoder architecture๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ฅ์ ์์ฑํ๋ LM์ผ๋ก, ๋ง์ ์์ ํ ์คํธ ๋ฐ์ดํฐ๋ก๋ถํฐ pre-trainํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ language task์์ fine-tuning์ ์ํํ์์.
- BERT(Bi-directional Encoder Representation Transformer): ์๋ฐฉํฅ์ผ๋ก ๋ฌธ๋งฅ์ ํ์ตํ๋ Transformer Encoder architecture๋ก pre-trained model์ ์ฌ์ฉํ์ฌ ๋ค์ํ ์์ฐ์ด ์ฒ๋ฆฌ task์์ fine-tuning์ ์ํํจ.
์ด๋ ๊ฒ ๊ธ๋ก๋ง ๋ณด๋ฉด ์ ๋๋ก ์ดํด๊ฐ ๊ฐ์ง ์์ผ๋ ๊ฐ ๋ ผ๋ฌธ์์ ์๊ฐํ ๊ทธ๋ฆผ๋ค๊ณผ ํจ๊ป ๋ณด๋ฉด์ ์ข ๋ ์์ธํ ์ดํดํด๋ณด์. ๋จผ์ GPT ๋ ผ๋ฌธ์์ ์๊ฐ๋ ๊ทธ๋ฆผ๋ถํฐ ๋ด๋ณด๋๋ก ํ์. ์ด ๊ทธ๋ฆผ์ด ๋ฑํ GPT์ pre-training & fine-tuning mecahnism์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๊ทธ๋ฆผ์ ์๋์ง๋ง, ๋๊ฐ ๊ทธ์ ๋น์ทํ ๋๋์ ๋ฐ์ ์ ์๋ ๊ทธ๋ฆผ์ด๊ธฐ์ ํ ๋ฒ ์ดํด๋ณด๋ ค๊ณ ํ๋ค! ๐ ์๋ ์ฌ์ง์ ์ผ์ชฝ ๋ถ๋ถ์์๋ GPT ๋ชจ๋ธ์ architecture๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๊ณ , ์ค๋ฅธ์ชฝ์์๋ ๊ฐ task์ ๋ฐ๋ฅธ ์๋ก ๋ค๋ฅธ ํํ์ input์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค. ์ด๋ ๋ฏ ์ฌ๋ฌ ์์ฐ์ด ๋ฐ์ดํฐ์์ ํ์ต์ ๊ฑฐ์น ๋ค ํน์ task์ ๋ํด์ ๋ค์ ํ์ต์ ํจ์ผ๋ก์จ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์กฐ์ ํ๋ ๊ณผ์ ์ fine-tuning์ด๋ผ ํ๋ ๊ฒ์ด๋ค! ๐คฉ

BERT์ fine-tuning์ GPT์ fine-tuning๊ณผ ์๋นํ ์ ์ฌํ๋ฐ... ๊ฐ ์๋๋ผ ์ฌ์ค fine-tuning ์์ฒด๋ ๊ฑฐ์ ๋ชจ๋ ๋ชจ๋ธ์ ๋ํด์ ๋น์ทํ ๋ชจ์์๋ฅผ ๊ฐ์ถ๋ค. fine-tuning ํ๋ task์ ๋ชจ๋ธ architecture์ ๋ฐ๋ผ์ ์กฐ๊ธ์กฐ๊ธ์ฉ์ ์ฐจ์ด์ ์ ๊ฐ์ง ๋ฟ์ด์ง, ๊ทธ ๋ผ๋ ์์ฒด๋ ๋ฐ๋์ง ์๋๋ค. ๊ทธ๋๋ BERT์ fine-tuning์ ์ดํด๋ณด๋ฉด ๋ค์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. GPT์ fine-tuning๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก pre-trained model์ ํน์ task ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ fine-tuning ์ํค๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์กฐ์ ํด๋๊ฐ๋ ๋ฐฉ์์ด๋ค! ๐

GPT์ BERT์ ๋ํด์ ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋๋ค! ๐
In-context Learning (GPT-2 & GPT-3) ๐
original fine-tuning์ ๋ค๋ฅผ ์ด์ fine-tuning ๋ฐฉ์์ ๋ฐ๋ก in-context learning์ด๋ค. in-context learning์ GPT-2๋ฅผ ์๊ฐํ ๋ ผ๋ฌธ 'Language Models are Unsupervised Multitask Learners(2019)'์์ ์ฒ์ ์๊ฐ๋์๋ค. ์ด in-context learning์ ํน์ ์์ ์ ์ํํ ๋ ์ฃผ์ด์ง ๋ฌธ๋งฅ์ ๊ณ ๋ คํ๊ณ ์ดํดํ์ฌ ๋ ๋์ ์ฑ๋ฅ์ ์ด๋์ด๋ผ ์ ์๋๋ก ํ๋ ๋ฐฉ์์ด๋ค. in-context learning์ ํ๋ ๋ฐฉ์์ ์ด๋ ต์ง ์์๋ฐ task์ ๋ํ task์ ๋ํ ์์๋ฅผ ์ ๋ ฅ์ผ๋ก ํจ๊ป ์ฃผ๋ฉด ๋๋ค. ๐ (n-shot learning์ ๋ฐ๋ผ์ ์์๋ฅผ ์ฃผ๋์ง ์ ์ฃผ๋์ง๋ ๋ฌ๋ผ์ง๋๋ค!)

In-context Learning์ ๋ชจ๋ธ์๊ฒ ์ฃผ์ด์ง๋ example์ ์์ ๋ฐ๋ผ์ ๋ถ๋ฅด๋ ์ด๋ฆ์ด ๋ฌ๋ผ์ง๊ฒ ๋๋๋ฐ, ์ฐ์ GPT-2์์๋ unsupervised learning์ ์ฌ์ฉํ์๊ธฐ ๋๋ฌธ์ ์์ฐ์ค๋ zero-shot learning์ ์ฌ์ฉํ์๋ค. ์ด๋ฅผ ํ ๋๋ก ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฆ ๋ถ์ผ ์ ์๋ค!
- Zero-shot Learning: example์ ์๊ฐ 0์ธ in-context learning 0๏ธโฃ
- One-shot Learning: example์ ์๊ฐ 1์ธ in-context learning 1๏ธโฃ
- Few-shot Learning: example์ ์๊ฐ 1๋ณด๋ค๋ ๋ง์ง๋ง ์ ์ ์์ธ in-context learning ๐ค
GPT-2์ ํ์ ๋ชจ๋ธ์ธ GPT-3์ ๋ ผ๋ฌธ 'Language Models are Few-shot Learners(2020)' ์์๋ GPT-2์ zero-shot learning์์ ๋ฒ์ด๋ few-shot learning์ ์ ๋ณด์ด๋ฉฐ ๋ณธ๊ฒฉ์ ์ธ in-context learning์ ๋ฌธ์ ์ด์๋ค! ๐ช GPT-2์ GPT-3์์ ์ ๋ณด์ธ in-context learning์ ์์ง๊น์ง๋ ๋ง์ language model๋ค์ ํ์ต ๋ฐฉ์์ผ๋ก ๊ตณ๊ฑดํ๊ฒ ์๋ฆฌ๋ฅผ ๋งค๊นํ๊ณ ์๋ค.

์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด ๊ธฐ๋ณธ์ ์ผ๋ก in-context learning์ task description์ด ์ฃผ์ด์ง๊ณ , ์ต์ข ์ ์ผ๋ก ๋ชจ๋ธ๋ก๋ถํฐ output์ ์ป๊ธฐ ์ํ input์ธ prompt๊ฐ ํจ๊ป ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ zero-shot, one-shot, few-shot์ ๋ฐ๋ผ์ ๊ทธ์ ๊ฑธ๋ง์ example๋ค์ด ์ฃผ์ด์ง์ผ๋ก์จ ๋ชจ๋ธ์ ์ด๋ฅผ ์ฐธ๊ณ ํด output์ ์ถ๋ ฅํด ๋ด๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ณผ์ฐ ๋ช ๊ฐ์ ์์ฐ์ด๋ฅผ ํฌํจํ prompt๋ฅผ ์ถ๊ฐํ๋ in-context learning์ ์ข์ ํจ๊ณผ๋ฅผ ๋ณด์ฌ์ค ์ ์์์๊น? ๊ฒฐ๊ณผ๋ถํฐ ๋งํ์๋ฉด,, ๊ทธ๋ ๋ค!! ๋ค์์ GPT-3 ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด in-context learning์ ํตํด ํ์คํ ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ์ป์ ์ ์์๊ณ , one-shot์ ๊ฒฝ์ฐ์๋ ์์ฐ์ด prompt๊ฐ ์์ ๋์ ์์ ๋ ์๋นํ ์ฑ๋ฅ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์คฌ๋ค! ๐ฒ

์ด๋ฒ ์น์ ์์ ์์๋ณธ in-context learning์ fine-tuning์ ๋์ฒดํ ์์ ํ ์๋ก์ด ๋ฐฉ๋ฒ์ ์๋๊ณ , ๊ธฐ์กด์ fine-tuning์ ๋ถ๊ฐ์ ์ผ๋ก ์์ฐ์ด prompt๋ฅผ ์ถ๊ฐํ์ฌ ์ข ๋ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ์ ์ํ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๋ฐฉ์์ fine-tuning์ด๋ผ๊ธฐ ๋ณด๋ค๋ prompt-tuning์ ๋ ๊ฐ๊น๋ค๊ณ ๋ณผ ์ ์๋ค. in-context learning์ ํตํด prompt-tuning์ ํจ๊ณผ๋ฅผ ์๊ฒ ๋๊ณ , ๋์ค์ prompt-tuning์ ํตํด LM์ ์ฑ๋ฅ์ ๊ฐ์ ์ํค๊ณ ์ ํ ๋ง์ ๋ ผ๋ฌธ๋ค์ด ๋์ค๊ฒ ๋์๋ค. (๊ถ๊ธํ๋ค๋ฉด ์ด ํฌ์คํ ์ ํ์ธํด๋ณด์๊ธธ!) ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ in-context learning์ ํฅํ์ ์ ์๋ instruction-tuning์ ๋ฐํ์ด ๋์ด์ฃผ์๋ค! ๐
GPT-2์ GPT-3์ ๋ํด์ ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ๊ธธ ๋ฐ๋๋๋ค! ๐
Instruction-tuning (FLAN) ๐
์์ ์ค๋ช ํ original fine-tuning method๋ ์๋นํ ํจ๊ณผ์ ์ธ ๋ชจ์ต์ ๋ณด์ฌ์คฌ๊ณ , ์ฌ๊ธฐ์ ์ถ๊ฐ์ ์ผ๋ก prompting์ ๊ฑฐ์น in-context learning์ ๊ธฐ์กด์ fine-tuning์ ๋นํด ์ข ๋ ๊ฐ์ ๋ ์ฑ๋ฅ์ ๋ณด์ฌ์คฌ๋ค. ํ์ง๋ง, ์ด method๋ค์ ๋ณด๋ฉด ํ ๊ฐ์ง ๊ณตํต์ ์ ๊ฐ์ง๊ณ ์๋๋ฐ, ๊ทธ๊ฒ์ ๋ฐ๋ก test๋ฅผ ์ํํ task์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ fine-tuning์ ํ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ง์ฝ fine-tuning ์์ target task์ ๋ํด์ ํ์ต์ ํ์ง ์๊ณ ๋ target task๋ฅผ ์ํํ ์ ์๊ฒ ๋๋ค๋ฉด ์ด๋จ๊น? '์ด๊ฑด ๋ ๋ฌด์จ ๋ฑ๋ด์ง๊ฐ์ ์๋ฆฌ์ง? fine-tuning์ target task์ ๋ํด์ ์ถ๊ฐ์ ์ผ๋ก ํ์ตํจ์ผ๋ก์จ target task๋ฅผ ๋ ์ ์ํํ ์ ์๊ฒ ๋์์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์ง๊ธ๊น์ง ์ค๋ช ํ ๊ฑฐ ์๋์ผ?'๋ผ๊ณ ์๊ฐํ ์๋ ์๊ฒ ์ง๋ง, ์ฐ๋ฆฌ์ LM์ ์ฐ๋ฆฌ์ ์๊ฐ๋ณด๋ค ํจ์ฌ ๋ ์ ๋ฅํ๊ธฐ์ ์ด๊ฒ์ด ๊ฐ๋ฅํ๋ค!
์์์ ๋งํ ์ด๋ฐ ๋ฅ๋ ฅ์ ์ป๊ธฐ ์ํด์ ์ ์๋ ๋ฐฉ๋ฒ์ด Instruction-tuning์ด๋ค. ์ด instruction-tuning์ ๊ตฌ๊ธ์์ ์๊ฐํ ๋ชจ๋ธ์ธ FLAN์ ์๊ฐํ ๋ ผ๋ฌธ 'FLAN: Finetuned Language Models Are Zero-Shot Learners(2021)' ์์ ์ฒ์ ์๊ฐ๋์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด instruction-tuning์ ์์ธํ๊ฒ ๋ฌด์์ธ ๊ฑธ๊น? FLAN ๋ ผ๋ฌธ์ ์๋ ๊ธฐ์กด fine-tuning๊ณผ in-context learning, instruction-tuning ๋น๊ต ๊ทธ๋ฆผ์ ๋ณด๋ฉด์ ํ ๋ฒ ํ์ ํด ๋ณด๋๋ก ํด๋ณด์! ๐

๋จผ์ ๊ธฐ์กด์ fine-tuning ๋ฐฉ์์ target task์ ๋ํด์ fine-tuning์ ๊ฑฐ์นจ์ผ๋ก์จ LM์ target task์ ๋ํ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๋ ๋ฐฉ์์ด๋ค. ๋ ๋ฒ์งธ๋ก Prompting(in-context learning)์ few-shot prompting๊ณผ prompt engineering์ ํตํด target task์ ๋ํด์ ์ถ๋ก ์ ํ ์ ์๊ฒ ๋์์ค๋ค. ๋ง์ง๋ง์ผ๋ก instruction-tuning์ target task๊ฐ ์๋ ๋ค๋ฅธ task๋ค์ ๋ํด์ instruction + input + output ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ tuning ํจ์ผ๋ก์จ target task์ ๋ํด ์ถ๋ก ํ ์ ์๊ฒ ํด ์ค๋ค. ํ ๋ง๋๋ก ์ฌ๋ฌ task๋ฅผ ์ํํจ์ผ๋ก์จ target task๋ฅผ ์ํํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅผ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ์์ธ ๊ฒ์ด๋ค. FLAN์์ ์ ์ํ instruction-tuning ๋ฐฉ์์ ๋ํด์ ๋ค์ ๊ทธ๋ฆผ์ ํตํด ๋์ฑ ์์ธํ๊ฒ ์์๋ณด๋๋ก ํ์.

instruction-tuning ์ด๋ฆ์ ๊ฑธ๋ง๊ฒ task์ ๋ํ instruction, input, target์ ์ ๊ณตํ๊ณ , ์ด ๋ฐ์ดํฐ๋ค์ ๋ํด ํ์ต์ ํ๋ ๋ฐฉ์์ผ๋ก instruction-tuning์ ์งํ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ ๊ฒ target task์ ๋ค๋ฅธ task์ ๋ํ instruction, input, target ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด์ ํ์ต์ํจ๋ค๊ณ ํด์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ์ ๋ง ํฅ์๋์์๊น? ๊ทธ ์ ๋ต์ ๋ค์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์์ ๊ฒ์ด๋ค! ๐

์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด FLAN์ instruction-tuning์ ํ์คํ ํจ๊ณผ์ ์ธ method๋ผ๋ ๊ฒ์ ์ ์ ์๋ค. ํ์ฌ๋ ๊ธฐ์กด์ fine-tuning์์ ๋ฒ์ด๋ instruction-tuning์ ๋ง์ด ์ฌ์ฉํ๋ ์ถ์ธ์ด๋ค. (ex. Alpaca, WizardLM, etc.) FLAN์ ๋ํด ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํ์๊ธธ ๋ฐ๋๋๋ค!
Reinforcement Learning from Human Feedback(RLHF) ๐งโ๐ซ
์ง๊ธ๊น์ง๋ LM์๊ฒ ๊ธฐ๋ณธ์ ์ธ ์์์ ๊ฐ๋ฅด์น๋ ๋๋์ด์๋ค๋ฉด, ์ด๋ฒ์ ์์๋ณด๊ณ ์ ํ๋ RLHF๋ ์ด์ง ๋ค๋ฅธ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ๋ชจ๋ธ์ ํ์ต์ํค๋ ๋ฐฉ์์ด๋ค. RLHF๋ฅผ ํ์ด์ ์จ๋ณด๋ฉด 'Reinforcement Learning from Human Feedback', ์ฆ ์ฌ๋์ ํผ๋๋ฐฑ์ผ๋ก๋ถํฐ ๊ฐํํ์ต์ ํ๋ ๊ฒ์ด๋ค. ๊ธฐ์กด์ fine-tuning method๋ค์ ์ฌ๋์ ๊ฐ์ญ์์ด ๋ชจ๋ธ ์ค์ค๋ก ํ์ตํ ๊ฒ์ ๋ฐํด, RLHF๋ ์ฌ๋์ ํผ๋๋ฐฑ์ ํ์๋ก ํ๋ค. ์ ๊ทธ๋์ผ ํ๋ ๊ฑธ๊น? ๊ทธ๊ฒ์ ๋ฐ๋ก RLHF๊ฐ ๋ชจ๋ธ์ด ์ฑํ ์ ๋์ฑ ํนํ๋๋๋ก ๋ง๋ค๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
RLHF๋ฅผ ์ฒ์์ผ๋ก ์๊ฐํ๊ณ ๋ฐ์ ๋ ๊ณผ์ ์ ์ดํด๋ณด๋ฉด ๋ ๋ง์ ๋ ผ๋ฌธ๋ค์ด ์กด์ฌํ๋๋ฐ ๊ฐ์ฅ ์ ๋ช ํ๊ฒ ์๋ ค์ ธ ์๋ ChatGPT ์ง์ ์ ๋ชจ๋ธ์ธ InstructGPT์ ์๊ฐํ ๋ ผ๋ฌธ์ธ 'Training language models to follow instructions with human feedback(2022)'์ ๋ํด์ ์๊ธฐํด๋ณด๋ฉฐ RLHF์ ๋ํด ์๊ธฐํด๋ณด๊ณ ์ ํ๋ค. InstructGPT์์ ์ฌ์ฉ๋ RLHF์ ํ๋ก์ธ์ค๋ ๋ค์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.

InstructGPT์ ์ ์ฒด์ ์ธ RLHF ํ๋ก์ธ์ค๋ฅผ ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- SFT: labeler๋ก๋ถํฐ prompt์ ๋ํ answer๋ฅผ ์์งํ๊ณ , ์ด ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ๋ชจ๋ธ์ ์ง๋ ํ์ตํจ.
- Reward Modeling: ํ๋์ prompt์ ๋ํด ์ฌ๋ฌ ๋ชจ๋ธ๋ค์ output์ ์์งํ๊ณ , ์ด output์ labeler๋ค์ด ํ๊ฐํ๊ฒ ํ์ฌ, ์ด ํ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด reward model์ ํ์ต์ํด.
- RL with PPO: policy๊ฐ output์ ์์ฑํ๊ณ , ํ์ต๋ reward model์ output์ ๋ํ reward๋ฅผ ๊ณ์ฐํ ๋ค, ์ด reward์ PPO๋ฅผ ํ์ฉํ์ฌ policy๋ฅผ ์ ๋ฐ์ดํธํจ.
๊ณผ์ ์ด ๋ณต์กํ๊ฒ ๋๊ปด์ง ์๋ ์์ง๋ง, ๋ค์ ์๊ฐํด ๋ณด๋ฉด ๊ฒฐ๊ตญ, ์ฌ๋์ ํผ๋๋ฐฑ์ ํตํด ํ์ต๋ reward model์ ํ์ฉํ์ฌ ๋ชจ๋ธ์ output์ reward๋ฅผ ๋งค๊ธฐ๊ณ , ์ด reward๋ฅผ PPO๋ฅผ ํ์ฉํ์ฌ policy ์ ๋ฐ์ดํธ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์ด ๋ ๋์ output์ ๋ด๋์ ์ ์๋๋ก ํ์ต์ํค๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐ๋ผ์ ๋น์ฐํ๊ฒ๋ RLHF๋ฅผ ๊ฑฐ์น ๋ชจ๋ธ์ ์ฑํ ๋ฅ๋ ฅ์ด ํจ์ฌ ๋ ์ฐ์ํ๋ฐ, ์ด๋ ์ฌ๋์ด reward model์ ํ์ต์ํค๋ ๊ณผ์ ์์ ํผ๋๋ฐฑ์ ์ ๊ณตํ ๋, ์ข ๋ ์ ๋ง๋ค์ด์ง output์ ๋ํด ๋์ reward๋ฅผ ๋ถ์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ๊ฒ ์๋ฒฝํด ๋ณด์ด๋ RLHF์๋ ๋จ์ ์ด ์์์ผ๋,, ์ผ๋จ RLHF๋ฅผ ๊ฑฐ์น ๋ชจ๋ธ๋ค์ ๊ณตํต์ ์ธ ํน์ง์ benchmark์์๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค๋ ์ ์ด๋ค! ๐ฅ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ Alignment Problem์ด๋ผ ์นญํ๋ค. ์ค์ ๋ก RLHF model๊ณผ ์ผ๋ฐ SFT ๋ชจ๋ธ์ benchmark ์ฑ๋ฅ์ ๋ณด๋ฉด ๋น์ทํ๊ฑฐ๋, ์คํ๋ ค ๋ ๋จ์ด์ง๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๊ธฐ๋ ํ๋ค. ๋ฌผ๋ก human preference์ benchmark ๋ ์ค ๋ฌด์์ด ๋ ์ค์ํ ๊ฐ๋์ ๋ฐ๋ผ์ ๋ค๋ฅด๊ฒ ๊ฐ์น ํ๋จ์ด ๊ฐ๋ฅํ๊ฒ ์ง๋ง, ์ด ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ๋ชจ๋ ์ก์ ์ ์๋ ๋ฐฉ๋ฒ์ด ๊ฐ๋ฐ๋๊ธธ ๋ฐ๋ผ๋ ๋ง์์ด๋ค. ๐ฅฒ
RLHF์ InstructGPT์ ๋ํด ๋์ฑ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ๋ค์ ๋ฆฌ๋ทฐ๋ฅผ ํ์ธํด์ฃผ์๊ธธ ๋ฐ๋๋๋ค!
What should be the next step of Fine-tuning? ๐ง
์ด ํฌ์คํ ์ ๋ง์ง๋ง์ ์ฅ์ํ ์ด ์น์ ์ ์ ๋ชฉ์ ์ด์ฐ๋ณด๋ฉด ์๋ชป๋์ ์๋ ์๋ค. ์ด๋ป๊ฒ ํ์ฌ์ ํ์๊ฐ ๋ฏธ๋๋ฅผ ์์ธกํ๊ณ ๊ทธ๋ ๊ฒ ๋์ด์ผ๋ง ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ์๋ชป๋์ ์๋ ์์ผ๋, ๋ง์ฝ RLHF์ instruction-tuning์ด ๋ฏธ๋์ fine-tuning ํ๋๋ฅผ ์ด๋์ด๋๊ฐ method๋ผ๊ณ ํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ๋ฆฐ ๋ง๋ ์๋๋ผ๊ณ ์๊ฐํ๋ค. ์ด ๋์ ๋ช ํํ ํ๊ณ๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ด๋ค! ๋ method๋ ๋ชฉํ๋ก ํ๋ ๋ฐฉํฅ์ด ์ด์ง์ ๋ค๋ฅธ๋ฐ, ํ๋๋ ๋ชจ๋ธ์ด benchmark์์ ์ข์ ์ฑ๋ฅ์ ๋ผ ์ ์๊ฒ ํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ๋ชจ๋ธ์ด ์ฑํ ์ ๋์ฑ ํนํ๋๋๋ก ๋๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ค. ๋ฐ๋ผ์ ์ด ๋์ alignment problem์ ๊ฐ์ง๋๋ฐ, ์ด ๋ง์ธ์ฆ์จ, benchmark ์ฑ๋ฅ๊ณผ ์ฑํ ๋ฅ๋ ฅ, ์ด ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ํจ๊ป ์ก์ง ๋ชปํ๊ณ ์๋ค๋ ๊ฒ์ด๋ค.
RLHF์ instruction-tuning์ด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๋ ํ ์์ผ๋ก ๋์๊ฐ์ผ ํ ๋ฐฉํฅ์ ๋ช ํํ๋ค๊ณ ํ์๋ ์๊ฐํ๋ค. ์ด alignmnet problem์ ํด๊ฒฐํ ์ ์๋ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ์ผ ํ๋ค๊ณ ์๊ฐํ๋ค! ๐ฅ ๋ฌผ๋ก ์ ํํ ์ด๋ค ๋ฐฉ์์ผ๋ก ํด์ผํ๋์ง๋ ํ์๋ ์ ๋ชจ๋ฅด์ง๋ง, alignmnet problem์ ํด๊ฒฐํ๊ณ , ๋ ๋์ performance๋ฅผ ๋ณด์ฌ์ฃผ๋ fine-tuning method๊ฐ ๊ฐ๋ฐ๋๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋ผ๋ฉฐ ํฌ์คํ ์ ๋ง์น๋ค. ์ด ํฌ์คํ ์ ๋๊น์ง ์ฝ์ด์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๐
'Insight ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Noise makes LLM better! - NEFTune ๐ (0) | 2023.10.18 |
---|---|
์ด์ ๋ ChatGPT๋ฅผ fine-tuning ํ ์๊ฐ!! โฐ (0) | 2023.08.23 |
ํ ๋จ๊ณ, ํ ๋จ๊ณ์ฉ ์ธ๊ฐ์ฒ๋ผ ์๊ฐํด๋ณด์! ๐ง ๐ค (0) | 2023.08.03 |
๋น์ ๋ Fine-tuning ํ ์ ์์ต๋๋ค! with PEFT ๐ค (0) | 2023.08.01 |
ChatGPT์ ์ฑ๋ฅ์ด ์ ์ข์์ง๊ณ ์๋ค๊ตฌ?!?!? ๐ฒ๐ฒ (0) | 2023.07.31 |