nanoChatGPT
Built a sLLM based on GPT and inspired by LLAMA.
TODOS
- Crawling Good Web Source and Construct Dataset
- Pretrain GPT with Korean Dataset (NAVER, NAMU, WIKIPEDIA...)
- Model Improvement (RoFormer, ALBERT, SiLU, GELU, etc)
- Prepare Prompt for prompt engineering
- Prompt Translation for Korean Data.
- Fine-tuning GPT with custom prompt.
- Evaluation with Various Performance Dataset
- Simple RLHF.
- Custom RLHF website.
- Customize GPT for adversarial training.
- Evaluation.
- Make things work!
- Deploy Custom ChatGPT.
GPT-3์ ์ฑ๊ณผ๋ ๋ฐ๋ก ๊ฑฐ๋ํ ์ธ์ด ๋ง๋ญ์น๋ฅผ ์ ๊ฒฝ๋ง์ด ํ์ตํ๋ฉด ์ธ๊ฐ์ด ์์ฑํ๋ ๊ฒ์ฒ๋ผ ๊ทธ๋ด๋ฏํ ๋ง์ ์์ฑํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ธ์ด๋ ์ด๋ค ๊ฐ๋ ์ ์ค๋ช ํ๊ณ ์ธ๊ฐ์ ์๊ฐ๊ณผ ์์ด๋์ด๋ฅผ ํํํ๋ ๋งค์ฐ ์ค์ํ ์๋จ์ด๊ธฐ ๋๋ฌธ์ ์ธ๊ณต์ง๋ฅ์ด ์ด๋ฌํ ์ธ์ด๋ฅผ ์๋ฒฝํ๊ฒ ์ต๋ํ๊ฒ ๋๋ค๋ฉด ์ธ๊ฐ๊ณผ ์ธ๊ณต์ง๋ฅ์ ๋งค๋๋ฌ์ด ์์ฌ์ํต์ด ๊ฐ๋ฅํด์ง ๊ฒ์ด๋ค.
AGI์ ์๋๋ ๊ณผ์ฐ ๋๋ํ ์ ์์๊น? ๋จ์ง ๋จ์ด๋ฅผ ์ธ๊ฐ๊ณผ ์ ์ฌํ๊ฒ ๊ทธ๋ด๋ฏํ๊ฒ ์์ฑํ๋ค๊ณ ๊ทธ๊ฒ์ด ์ธ๊ณต์ง๋ฅ์ด ์ง๋ฅ์ ๊ฐ์ง๊ณ ์๊ฐํ์ฌ ์์ฑํ๋ค๊ณ ๋ณด๊ธฐ๋ ์ด๋ ต๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋ ๊ณผ์ ์ ๋ณด๋ฉด ์๊ฐ์ด ์ด์ง ๋ฌ๋ผ์ง๋ค. ํ์ด๋์๋ถํฐ ๋ถ๋ชจ๋์ด ํ๋ ๋ง์ ๋ฃ๊ณ ๋ฐ๋ผํ๋ฉด์ ์ธ์ด์ ๋ํ ํ์ต์ ๊ฑฐ๋ญํ์ฌ ์ธ์ด๋ฅผ ์์ ๋กญ๊ฒ ๊ตฌ์ฌํ๋ ์ฐ๋ฆฌ์ฒ๋ผ GPT์ ๋ฐฉ๋ฒ์ด AGI๋ก ๊ฐ๋ ๋ฐฉ๋ฒ์ผ ์๋ ์๋ค. GPT๋ชจ๋ธ์ด ์ ์ ๊ฑฐ๋ํด์ ธ์ 4, 5, 6๊น์ง ์งํํ๊ฒ ๋๋ค๋ฉด ๊ฒฐ๊ตญ ์ด ์ง๋ฌธ์ ๋ํ ํด๋ต์ ์ป์ ์ ์์ ๊ฒ์ด๋ค.
GPT-3์ ์์ฒญ๋๊ฒ ํฐ ํ๋ผ๋ฏธํฐ์๋ก ์๋์ ์ธ ์ฑ๋ฅ์ ๋ณด์๋ค. ํ์ง๋ง ์ณ์ง ์๊ฑฐ๋ ํธํฅ์ ์ธ ๊ธ์ ์๋ฌด๋ ์ง ์๊ฒ ์์ฑํ๋ค๋ ๊ฒ์ด ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ก ๋๋ํ๊ฒ ๋์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ InstructGPT๊ฐ ๋ฑ์ฅํ๊ฒ ๋์๋ค.
Instruct GPT
์ฐ์ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ์ค๋นํ๋ค. ๋๋์ ์ธ์ด ์ฝํผ์ค๋ก ํ์ต๋ ๋ชจ๋ธ์ ๊ณ ์ ํ ์ฑ <์ธํ ํ๋กฌํํธ>์ ์ถ๋ก ํ๊ณ ์ ํ๋ ์์ฐ์ด์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํ๋ค.
์) <"๋๋ ๊ต์ฅํ๊ตฌ๋"๋ผ๋ ๋ฌธ์ฅ์ ๊ฐ์ ์?> => <๊ธ์ >
์ด ๋ฐฉ๋ฒ์ ๊ธฐ์กด์ fine-tuning๊ณผ๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ๋์ ํ์คํฌ๋ฅผ ์ํํ๊ธฐ ์ํด ๋ฐ์ดํฐ์ ์ ์์งํ๊ณ ์ด๋ฅผ ํ์ต์ํค๋ ๊ฒ์ด ์๋๋ผ ๋ชจ๋ธ์๊ฒ ์ง๋ฌธํ๋ ๋ฐฉ์์ผ๋ก ์ธ์ด ๋ชจ๋ธ์ ํจ๋ฌ๋ค์์ด ๋์ด๊ฐ๊ณ ์๋ค๊ณ ํ๋ค.
์ฌ๊ธฐ์๋ ๋ชจ๋ธ์๊ฒ ์ง๋ฌธํ๋ ๋ฐฉ๋ฒ, ์ฆ "ํ๋กฌํํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ"์ ๋ฐ๋ผ์ ๋ชจ๋ธ์ ํ๋ฆฌํฐ๊ฐ ์ข์ฐ๋๊ธฐ์ ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์ค์์ฑ์ด ๊ต์ฅํ ๋๋๋๊ณ ์๋ค. ๊ฑฐ๋ํ ์ฝํผ์ค๋ก ์ฌ์ ํ์ต๋ ์ธ์ด ๋ชจ๋ธ์ ํน์ ํ์คํฌ๋ฅผ ์ ์ํํ ์ ์๋๋ก ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์ํํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ ๊ฒ์ด๋ค.
๊ธฐ์กด์ GPT ๋ชจ๋ธ์ ๊ฐ์ ์ ์ผ๋ก ์ง์ํ ํ๋กฌํํธ์ ๋ํด์ ๊ทธ๋ด๋ฏํ ๊ธ์ ์จ๋ด๋ ค๊ฐ๋ค. ํ์ง๋ง InstructGPT๋ ์ง์ ์ ์ผ๋ก ๋ชจ๋ธ์๊ฒ ์ง์ํ ์ ์๋ค.
RLHF (reinforcement learning with human feedback)
-
Step 1: ์์ ๋ฐ์ดํฐ ์์ง ํ supervised policy๋ฅผ ํ์ต
: GPT ๋ชจ๋ธ์ด ์ฃผ์ด์ง ์ง์๋ฌธ๋๋ก ํ๋ํ๋๋ก ๊ฐ๋ฅด์น๊ธฐ ์ํด์ ํด๋น ๋ฐ์ดํฐ์ ์ ๋ง๋ค์ด์ fine tuning์ ์ค์
์ง์ ํ๋กฌํํธ์ ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฌผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ์ ์ ์ ์. ๊ฒฐ๊ณผ๋ฌผ์ ๋ผ๋ฒจ๋ฌ์ ์ํด์ ๋ง๋ค์ด์ง๋ค.
-
Step 2: ๊ฒฐ๊ณผ๋ฌผ์ ๋ํ ์ฌ๋์ ์ ํธ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ต => Reward Model ํ๋ณด
: Comparison dataset์ ์ฌ์ฉํด Reward Model ํ์ต
Comparison dataset์ ํ๋กฌํํธ์ ๊ทธ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฌผ๋ค (4-9๊ฐ), ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฒฐ๊ณผ์ ๋ํ ์ ํธ๋ ์์๋ก ๊ตฌ์ฑ๋๋ค.
Reward Model์ ๊ฒฐ๊ณผ๋ฌผ๋ค์ ๋ํ ์ฌ๋์ ์ ํธ๋๋ฅผ ์์ธกํ๋ ๋ฐฉ์์ํธ ํ์ต์ ์งํํ๋ ๊ฒ์ด๋ค.
-
Step 3. ๊ฐํ ํ์ต์ ์ฌ์ฉํด Reward Model์ ๋ํด policy๋ฅผ ์ต์ ํ => InstructGPT
: Proximal policy optimization algorithm(PPO)๋ฅผ ์ฌ์ฉ - Reward Model์ ๋ณด์ํจ์๋ก ์ฌ์ฉํ์ฌ ์ ์ฑ ์ ์ต์ ํ์ํค๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ ์งํํ๋ค.
- 1) InstructGPT๋ ํ๋กฌํํธ๋ฅผ ๋ณด๊ณ , ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ก ํ๋ค. - 2) ์ด ๊ฒฐ๊ณผ๋ฌผ์ Reward Model์ด ํ๊ฐํ์ฌ reward๋ฅผ ๊ณ์ฐํ๋ค. - 3) ๋ณด์ ๊ฐ์ด InstructGPT์๊ฒ ์ฃผ์ด์ง๊ณ , ๋ชจ๋ธ์ ์ ์ฑ ์ ์ ๋ฐ์ดํธํ์ฌ ์ฌ๋์ด ์ํ๋ ์์ํ์ ๋์ฑ ๊ฐ๊น์ด ๊ฒฐ๊ณผ๋ฅผ ๋ด๊ฒ ๋๋ค.