KBR
KBR

hi there

[Kaggle Gen AI] Day 1 - LLM ํŒŒ์ธํŠœ๋‹ A to Z ๐Ÿš€

[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์„ ๊ฐ•ํ™”ํ•™์Šต ๋ฐฉ์‹์œผ๋กœ ๋‹ค์‹œ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐฉ์‹.
๐Ÿ’ฌ ๊ฒฐ๊ตญ, ๋ชจ๋ธ์ด ์‚ฌ๋žŒ์ด ๋” ์ข‹์•„ํ•  ๋งŒํ•œ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜๋„๋ก ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (not just about giving the model correct answers, but about teaching it to generate responses that humans find helpful, truthful and safe.)



๐Ÿงช RLAIF & DPO: ์ตœ์‹  Alignment ๊ธฐ๋ฒ•๋“ค

์ตœ๊ทผ์—” ์‚ฌ๋žŒ ํ”ผ๋“œ๋ฐฑ ์—†์ด ๋” ํšจ์œจ์ ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์—ฐ๊ตฌ๋˜๊ณ  ์žˆ๋‹ค.

๐Ÿ’ก ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” 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)๋ฅผ ๋ถ™์ด๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฒกํ„ฐ๋Š” ๋ชจ๋ธ์—๊ฒŒ ์ฃผ๋Š” ๊ฐ€์ด๋“œ๋ผ์ธ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ด์„œ, ์›ํ•˜๋Š” ํƒœ์Šคํฌ์— ๋ชจ๋ธ์ด ๋” ์ž˜ ๋ฐ˜์‘ํ•˜๋„๋ก ๋„์™€์ค€๋‹ค.

๐Ÿ’ฌ ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•œ PEFT ๊ธฐ๋ฒ•๋“ค์€ ์„ฑ๋Šฅ๊ณผ ๋น„์šฉ, ํšจ์œจ์„ฑ ์‚ฌ์ด์—์„œ ๋‹ค์–‘ํ•œ ์„ ํƒ์ง€๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค.



๐Ÿ’ญ์˜ค๋Š˜ ์ฑ™๊ฒจ๊ฐ„ ๊ฒƒ๋“ค

์ด๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” LLM์„ ํƒœ์Šคํฌ์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๋Š” ์ „์ฒด ๊ณผ์ •์„ ์‚ดํŽด๋ดค๋‹ค. Pretraining๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ SFT, RLHF, ๊ทธ๋ฆฌ๊ณ  ์ตœ์‹  Alignment ๊ธฐ๋ฒ•์ธ DPO๊นŒ์ง€, ๊ทธ ํ๋ฆ„ ์†์—์„œ LoRA, QLoRA, SoftPrompting์ฒ˜๋Ÿผ ๋น„์šฉ์€ ๋‚ฎ์ถ”๊ณ  ํšจ์œจ์„ ๋†’์ด๋Š” PEFT ๊ธฐ๋ฒ•์ด ์–ด๋–ป๊ฒŒ ๋“ฑ์žฅํ–ˆ๋Š”์ง€๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!

๋‹ค์Œ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” LLM์„ ์ž˜ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ธ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณผ ์˜ˆ์ •์ด๋‹ค. (ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์€ ์ด๋ฒˆ ํŒŸ์บ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์œ ๋‹›์˜ ๋ฉ”์ธ ์ฃผ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ์ธํŠธ๋กœ ์œ ๋‹›์—์„œ๋Š” ํ•ต์‹ฌ๋งŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ๋„˜์–ด๊ฐ!)