[Kaggle Gen AI] Day 1 - LLM ํ์ธํ๋ A to Z ๐
์ง๋ ๊ฒ์๋ฌผ์์๋ ์คํ์์ค LLM ์ํ๊ณ๋ฅผ ์ ๋ฆฌํ๋ฉด์, ์ต๊ทผ ๊ณต๊ฐ๋ ๋ค์ํ ๋ชจ๋ธ์ด ์ด๋ค ํน์ง์ ๊ฐ๊ณ ์๋์ง ์ดํด๋ดค๋ค.
ํ์ง๋ง ๊ฐ๋ ฅํ ํ์ด๋ฐ์ด์ ๋ชจ๋ธ(foundation models)๋ ์ค์ ๋ก ์ด๋ค ์์ ์ ์ฐ๋ ค๋ฉด ๊ทธ์ ๋ง๊ฒ ์กฐ์ ํด์ค ํ์๊ฐ ์๋ค.
These foundation models are powerful, but they need to be tailored for specific tasksโ and thatโs where fine-tuning comes in exactly.
๊ทธ๋์ ์ด๋ฒ ๊ฒ์๋ฌผ์์๋, LLM์ ํน์ ํ์คํฌ์ ๋ง์ผ ์ปค์คํฐ๋ง์ด์งํ๋ ๋ฒ, ๋ฐ๋ก ํ์ธํ๋(fine-tuning)์ ์ ์ฒด ํ๋ฆ์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
Pretraining โ SFT โ RLHF โ PEFT๊น์ง ์ด์ด์ง๋ ๊ธฐ์ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ๋ฉด์, ์์ฆ ๋ง์ด ์ฐ์ธ๋ค๋ LoRA, QLoRA, Soft Prompting ๊ฐ์ ๋ฐฉ์๋ค๋ ํจ๊ป ์ ๋ฆฌํด๋ณผ ์์ !
๐ ํ์บ์คํธ ์๋ณธ ๋งํฌ ๋ฐ๋ก๊ฐ๊ธฐ
๐ Pre-training: ์ธ์ด๋ฅผ ์ฒ์ ๋ฐฐ์ฐ๋ ๋จ๊ณ
ํ์ด๋ฐ์ด์
๋ชจ๋ธ์ ์ฒซ ๋จ๊ณ๋ pre-training์ด๋ค. ๋ง ๊ทธ๋๋ก ๋ชจ๋ธ์๊ฒ ์์ฒญ๋๊ฒ ๋ง์ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ๊ณผ์ ! (ํ์บ์คํธ์์๋ โfeedโ๋ผ๋ ํํ์ ์ผ๋ค.)
๋ ์ด๋ธ ์์ด ๊ทธ๋ฅ raw ๋ฐ์ดํฐ๋ง ์ฃผ๋ฉด์ ํ์ต์ํค๋ ๋ฐฉ์์ด๋ค.
like learning the grammar and vocabulary of a language.
์ด ๊ณผ์ ์ ํตํด ๋ชจ๋ธ์ ๋จ์ด์ ๋ฌธ์ฅ์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง, ์ธ์ด์ ๊ธฐ๋ณธ ํจํด์ ์ตํ๊ฒ ๋๋ค.
ํ์ง๋ง ์ด ์์
์ ๊ณ์ฐ ์์์ ๊ต์ฅํ๊ต์ฅํ ๋ง์ด ์๊ตฌํ๋ค. (super resource intensive)
like giving the model a general education in language.
๐ Fine-tuning: ๋ชจ๋ธ์ โ์ ๋ฌธ๊ฐโ๋ก ๋ง๋๋ ๊ณผ์
Pre-training์ ํตํด ๋ชจ๋ธ์ด ์ธ์ด์ ๋ํ ์ผ๋ฐ์ ์ธ ๊ฐ๊ฐ์ ๊ฐ๊ฒ ๋์๋ค๋ฉด, fine-tuning์ ๊ทธ ๋ชจ๋ธ์ ํน์ ์์ ์ ๋ง๊ฒ ๋ค๋ฌ๋ ๊ณผ์ ์ด๋ค.
๋ฒ์ญ, ์ง๋ฌธ์๋ต, ์ฐฝ์์ ์ธ ๊ธ์ฐ๊ธฐ์ฒ๋ผ ํน์ ํ ์์
(task)์ ๋ชจ๋ธ์ ๋ง์ถ๊ณ ์ถ์ ๋, ๊ทธ์ ๋ง๋ ์์ ๊ท๋ชจ์ ๋ฐ์ดํฐ์
์ผ๋ก ์ถ๊ฐ ํ์ต์ ์ํค๋ ๊ฒ!
์ด ๊ณผ์ ์ ํตํด ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ธ ์ธ์ด ๊ฐ๊ฐ์ ๊ฐ์ง โํ์โ์์ ํน์ ๋ถ์ผ์ ๋ฅ์ํ โ์ ๋ฌธ๊ฐโ๋ก ๋ฐ๋๊ฒ ๋๋ค.
so youโre specializing the model, making it an expert in a particular area.
๊ทธ๋ฆฌ๊ณ ์ด๋ ์์ฃผ ์ฐ์ด๋ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ ๋ฐ๋ก Supervised Fine-tuning(SFT)์ด๋ค.
๐ง Supervised Fine-tuning (SFT): โ๋ฌด์์โ + โ์ด๋ป๊ฒโ ๊ฐ๋ฅด์น๊ธฐ
SFT๋ ์์ฃผ ํํ๊ฒ ์ฐ์ด๋ ํ์ธํ๋ ๋ฐฉ์์ด๋ค.
๋ชจ๋ธ์๊ฒ ํ๋กฌํํธ์ ์ ๋ต์ด ํจ๊ป ์ฃผ์ด์ง ๋ฐ์ดํฐ์
์ ํตํด ํ์ต์ํค๋ ๋ฐฉ์.
์๋ฅผ ๋ค์ด,
โ์ง๋ฌธ์ ํ๋ฉด ๋ต์ ํ๊ฒ ๋ง๋ค๊ณ ์ถ๋คโ๋ฉด โ โ์ง๋ฌธ + ์ฌ๋ฐ๋ฅธ ๋ต๋ณโ ์์ด ์ฌ๋ฌ ๊ฐ ์๋ ๋ฐ์ดํฐ์
์ผ๋ก ๋ชจ๋ธ์ ํ์ต์ํค๋ ๊ฒ์ด๋ค.
์ด๋ฐ์์ผ๋ก SFT๋ ๋ชจ๋ธ์ด
โ๏ธ ๋ฌด์์ ํด์ผ ํ๋์ง๋ฟ๋ง ์๋๋ผ (not just teaching it what to do)
โ๏ธ ์ด๋ป๊ฒ ํ๋ํด์ผ ํ๋์ง๊น์ง ํ์ตํ๋๋ก ๋์์ค๋ค. (also teaching it how to behave)
โ ๋์์ด ๋๊ณ (helpful), ์์ ํ๊ณ (safe), ์ง์๋ฅผ ์ ๋ฐ๋ฅด๋ ๋ชจ๋ธ(good at following instructions)๋ก ๋ง๋๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค.
๐ฏ RLHF (Reinforcement Learning from Human Feedback)
SFT๋ก๋ ๋ถ์กฑํ ๋ถ๋ถ์ ๋ ๋ณด์ํด์ฃผ๋ ๊ฒ RLHF์ด๋ค.
how do teach these models to be more human-like in their responses?
RLHF๋ ๋ชจ๋ธ์ ์ถ๋ ฅ์ ์ฌ๋์ด ์ ํธํ๋ ๋ฐฉํฅ์ผ๋ก ์ ๋ ฌ(alignment)์ํค๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ฌ๋์ด ์ง์ ์ฌ๋ฌ ์๋ต์ ๋ณด๊ณ , ๋ ๋์ ์๋ต์ ์ ์๋ฅผ ๋งค๊ธฐ๊ฑฐ๋ ์์๋ฅผ ๋งค๊ธฐ๊ณ ,
- ๊ทธ ํผ๋๋ฐฑ์ผ๋ก ๋ณด์ ๋ชจ๋ธ(Reward Model)์ ๋ง๋ ๋ค,
- ๊ทธ ๋ณด์ ๋ชจ๋ธ์ ๊ธฐ์ค์ผ๋ก LLM์ ๊ฐํํ์ต ๋ฐฉ์์ผ๋ก ๋ค์ ํ์ต์ํค๋ ๋ฐฉ์.
๐งช RLAIF & DPO: ์ต์ Alignment ๊ธฐ๋ฒ๋ค
์ต๊ทผ์ ์ฌ๋ ํผ๋๋ฐฑ ์์ด ๋ ํจ์จ์ ์ผ๋ก ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ๋ ์ฐ๊ตฌ๋๊ณ ์๋ค.
LLM์ด ๋ง๋ค์ด๋ด๋ ์๋ต(output)์ ์ฌ๋์ ๊ธฐ๋, ๊ฐ์น, ์ ํธ์ ๋ง๊ฒ ์กฐ์ ํ๋ ๊ฒ์ ๋งํ๋ค.
๋ชจ๋ธ์ด ๊ทธ๋ฅ ์๋ฌด ๋ง์ด๋ ํ์ง ์๊ณ ,
๐ โโ๏ธ ์ํํ๊ฑฐ๋ ์ ํดํ ๋ง์ ํผํ๊ณ ,
๐ค ์ ์คํ๊ณ ์ ํํ๋ฉฐ, ์ง์๋ฅผ ์ ๋ฐ๋ฅด๋๋ก ๋ง๋๋ ๊ณผ์ !
์ด alignment๋ฅผ ์ํด SFT, RLHF, RLAIF, DPO ๊ฐ์ ๋ค์ํ ๊ธฐ์ ์ด ํ์ฉ๋๋ค.
RLAIF (Reinforcement Learning from AI Feedback)
: ์ฌ๋ ๋์ ๋ค๋ฅธ AI ๋ชจ๋ธ์ด ํผ๋๋ฐฑ์ ์ฃผ๋ ๋ฐฉ์
DPO (Direct Preference Optimization)
: ๋ณด์ ๋ชจ๋ธ ์์ด๋, ์ ํธ๋๋ฅผ ๋ฐ๋ก ์ต์ ํํ๋ ์๋ก์ด ์ ๊ทผ๋ฒ
โ ์ด๋ฐ ๊ธฐ์ ๋ค์ ์ ๋ ฌ ๊ณผ์ (alignment)์ ๋ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ๋ง๋๋ ์๋๋ค์ด๋ค.
๐งฉ PEFT (Parameter-Efficient Fine-Tuning): ์์ ๋ณํ๋ก ํฐ ํจ๊ณผ ๋ด๊ธฐ
LLM์ ์ ๋ถ ํ์ธํ๋ํ๋ ๊ฑด ์ฌ์ค ๋น์ฉ๊ณผ ์์์ด ์์ฒญ๋๊ฒ ๋ง์ด ๋๋ ์์
์ด๋ค.
๊ทธ๋์ ์ต๊ทผ์๋, ๋ชจ๋ธ ์ ์ฒด๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ๋ ์ํ๋ ํ์คํฌ์ ์ ์์ํค๋ ์๋ก์ด ๋ฐฉ์์ธ PEFT(Parameter-Efficient Fine-Tuning) ๊ธฐ๋ฒ๋ค์ด ๋ฑ์ฅํ๊ณ ์๋ค.
์ฆ, ๋ชจ๋ธ ์ ์ฒด๋ฅผ ์๋๋ ๊ฒ ์๋๋ผ, ์์ ๋ถ๋ถ๋ง ์กฐ์ ํด์ ์ ์ฒด ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆฌ๋ ์ ๋ต์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
so itโs like just making small adjustments instead of overhauling the entire system.
์๋๋ PEFT ๊ธฐ๋ฒ๋ค์ ์์ ๋ช ๊ฐ์ง์ด๋ค:
1๏ธโฃ Adapter-based Fine-tuning
๋ชจ๋ธ ์์ ์์ ๋ชจ๋(Adapter)์ ์ถ๊ฐํ๊ณ , ๊ทธ ์์ ํ๋ผ๋ฏธํฐ๋ง ํ์ต์ํค๋ ๋ฐฉ์์ด๋ค. ๊ธฐ์กด ๋ชจ๋ธ์ ์ ์งํ๋ฉด์ ์ผ์ข ์ ํ์ฅํฉ์ ๋ถ์ฌ์ ์๋ก์ด ๋ฅ๋ ฅ์ ๋ถ์ฌํ๋ ๋๋!
2๏ธโฃ LoRA (Low-Rank Adaptation)
์ ์ฒด weight๋ฅผ ๋ฐ๊พธ๋ ๋์ , ๋ณํ๋ฅผ ์ ์ฐจ์ ํ๋ ฌ(Low-Rank Matrices)๋ก ๊ทผ์ฌํด์ ํ์ต์ํค๋ ๊ธฐ๋ฒ์ด๋ค. ์์ฃผ ์ ์ ์์ ํ๋ผ๋ฏธํฐ๋ง ๋ฐ๊พธ๋ฉด์๋, ์ ์ฒด ๋ชจ๋ธ์ ํ์ธํ๋ํ ๊ฒ์ฒ๋ผ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ค.
3๏ธโฃ QLoRA (Quantized LoRA)
LoRA๋ฅผ ๋ ๊ฐ๋ณ๊ต ํจ์จ์ ์ผ๋ก ๋ง๋ ๋ฒ์ ์ด๋ค.
๋ชจ๋ธ์ weight๋ฅผ ์์ํ(Quantization) ํด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ํญ ์ค์ด๋ฉด์, ํจ์ฌ ์ ์ ๋น์ฉ์ผ๋ก LoRA๋ฅผ ์ ์ฉํ ์ ์๊ฒ ํด์ค๋ค.
4๏ธโฃ Soft Prompting
๋ชจ๋ธ ์์ฒด๋ ๊ฑด๋๋ฆฌ์ง ์๊ณ , ์ ๋ ฅ ์์ โํ์ต๋ ๋ฒกํฐโ(Soft Prompt)๋ฅผ ๋ถ์ด๋ ๋ฐฉ์์ด๋ค. ์ด ๋ฒกํฐ๋ ๋ชจ๋ธ์๊ฒ ์ฃผ๋ ๊ฐ์ด๋๋ผ์ธ์ฒ๋ผ ์๋ํด์, ์ํ๋ ํ์คํฌ์ ๋ชจ๋ธ์ด ๋ ์ ๋ฐ์ํ๋๋ก ๋์์ค๋ค.
๐ญ์ค๋ ์ฑ๊ฒจ๊ฐ ๊ฒ๋ค
์ด๋ฒ ๊ฒ์๋ฌผ์์๋ LLM์ ํ์คํฌ์ ๋ง๊ฒ ์กฐ์ ํ๋ ์ ์ฒด ๊ณผ์ ์ ์ดํด๋ดค๋ค. Pretraining๋ถํฐ ์์ํด์ SFT, RLHF, ๊ทธ๋ฆฌ๊ณ ์ต์ Alignment ๊ธฐ๋ฒ์ธ DPO๊น์ง, ๊ทธ ํ๋ฆ ์์์ LoRA, QLoRA, SoftPrompting์ฒ๋ผ ๋น์ฉ์ ๋ฎ์ถ๊ณ ํจ์จ์ ๋์ด๋ PEFT ๊ธฐ๋ฒ์ด ์ด๋ป๊ฒ ๋ฑ์ฅํ๋์ง๋ ์ดํดํ ์ ์์๋ค!
๋ค์ ๊ฒ์๋ฌผ์์๋ LLM์ ์ ๋ค๋ฃจ๊ธฐ ์ํ ํต์ฌ ๊ธฐ์ ์ค ํ๋์ธ ํ๋กฌํํธ ์์ง๋์ด๋ง์ ๊ฐ๋จํ ์ดํด๋ณผ ์์ ์ด๋ค. (ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์ด๋ฒ ํ์บ์คํธ์ ์ฒซ ๋ฒ์งธ ์ ๋์ ๋ฉ์ธ ์ฃผ์ ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ์ธํธ๋ก ์ ๋์์๋ ํต์ฌ๋ง ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๊ณ ๋์ด๊ฐ!)