LLM_Fine_Tuning_Strategies
๐ LLM_Fine_Tuning_Strategies
๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ ํจ์จ์ ์ธ Fine-tuning ์ ๋ต๊ณผ ์์ ์ ์ฝ ํ๊ฒฝ์์์ ํ์ฉ ๋ฐฉ์.
1. LLM Fine-tuning ์ ๊ทผ ๋ฐฉ์
1.1 Custom Classifier
์ ์ฉ ์ํฉ: ์ถฉ๋ถํ ๋ฐ์ดํฐ์ , ํน์ Task ์ฑ๋ฅ ์ต์ ํ, ๋๋ ๋ฐฐ์น ์ถ๋ก
ํน์ง: Task-specific ๋ชจ๋ธ, ๋ชจ๋ ํ๋ผ๋ฏธํฐ ํ์ต(Fine-tuning)
์ฅ์ : ๋์ Task ์ฑ๋ฅ, ์์ ์ ์ธ ์ถ๋ก
1.2 Prompt Template
์ ์ฉ ์ํฉ: ๋ฐ์ดํฐ์ ๋ถ์กฑ, ๋น ๋ฅธ ํ๋กํ ํ์ดํ, Zero/Few-shot ํ์ต, Structured Output
ํน์ง: ์ฌ์ ์ ์๋ ํ ํ๋ฆฟ, Prompt Engineering ํ์
์ฅ์ : ์ ์ ๋ฐ์ดํฐ๋ก ํ์ฉ, ์ ์ฐํ ์ ์ด
2. Fine-tuning ์ธ๋ถ ๊ธฐ๋ฒ
2.1 ํ๋ผ๋ฏธํฐ ํจ์จ์ ํ์ต (Parameter-Efficient Tuning, PET)
LoRA (Low-Rank Adaptation): Custom Classifier์ ์ผ๋ถ Layer Fine-tuning, ์์ Sub-layer ์ ๋ฐ์ดํธ
Adapters: ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ ๊ณ ์ , Task-specific Layer ์ถ๊ฐ ํ์ต
Prefix Tuning: Prompt Template ์๋ต ํ์ ์ ์ด, Pre-trained Prompt ์ถ๊ฐ
2.2 ๋ชจ๋ธ ๊ฒฝ๋ํ ๋ฐ ์ ์ด ํ์ต
Knowledge Distillation: ํฐ Teacher ๋ชจ๋ธ์์ ์์ Student ๋ชจ๋ธ๋ก ์ ๋ณด ์ ์ด, ๊ฒฝ๋ํ๋ ๋ชจ๋ธ ํ์ต
qLoRA: 4๋นํธ ๋ชจ๋ธ ์์ถ, GPU ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ํญ ๊ฐ์ (์ฃผ๋ก ์ถ๋ก ์ ํจ๊ณผ์ )
3. Fine-tuning ํ๊ฒฝ ๋ฐ ๊ณ ๋ ค์ฌํญ
3.1 Tokenizer ๋ฐ Special Tokens
Special Tokens: eos, bos, pad, sep ๋ฑ ๋ฌธ์ฅ ๊ตฌ์กฐ ์ดํด ๋ณด์กฐ
Tokenizer: ๋ชจ๋ธ๋ณ ๊ท์น ์์ด, Fine-tuning ์ ์ ๋ฐ์ดํธ ํ์์ฑ
3.2 Fine-tuning ์ ๋ต ๋ฐ ์ต์ ํ
ํ๋์จ์ด ์ ์ฝ: RTX 3090 (70B LLM qLoRA), 7B SLM (๋ง์ง๋ง 2-3 Layer unfreeze)
์์๋ธ: Short, Mid, Long Sample Ensemble๋ก ์ต์ข ๊ฒฐ๊ณผ ํฅ์
์ต์ ํ: Batch Size ์กฐ์ , Mixed Precision ํ์ฉ (GPU ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ)
3.3 PyTorch Lightning ์ ๋ฐ์ดํธ
Hook ๋ณ๊ฒฝ: validation_epoch_end -> on_validation_epoch_end
๋ชฉ์ : ๋ช ํํ Task ์ฃผ๊ธฐ ๋ฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ก์ง ์ง์
3.4 RTX 3060 (12GB VRAM) 70B ๋ชจ๋ธ ์ฌ์ฉ ๋ถ๊ฐ
๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ: 70B ๋ชจ๋ธ์ ์ต์ 40GB ์ด์ VRAM ํ์
๋์:
LoRA/qLoRA: ๋ฉ๋ชจ๋ฆฌ ์ ๊ฐ (12-15GB ์์ค์ผ๋ก ์ถ์ ๊ฐ๋ฅ)
CPU ์คํ๋ก๋ + GPU ๋ถ์ฐ: Accelerate ํ์ฉ (์ฑ๋ฅ ์ ํ)
Deepspeed ZeRO / Tensor Parallelism: ๋จ์ผ GPU ์ ํ์
ํด๋ผ์ฐ๋ ํ์ฉ: AWS EC2, Google Cloud ๋ฑ ๊ณ ์ฌ์ GPU ์ธ์คํด์ค (A100, H100)
์ธ๋ถ ๊ธฐ๋ฒ ๋ฐ ์ ์ฉ ์ฌ๋ก
| ๊ธฐ๋ฒ | ์ ์ฉ ์ํฉ | ํน์ง |
|---|---|---|
| LoRA | Custom Classifier์ ์ผ๋ถ Layer๋ง Fine-tuning ํ์ ์ ์ฌ์ฉ | ๊ธฐ์กด ๋ชจ๋ธ์ ์์ Sub-layer๋ง ์ ๋ฐ์ดํธํ์ฌ ํจ์จ์ Fine-tuning ๊ฐ๋ฅ. |
| Knowledge Distillation | ํฐ Teacher ๋ชจ๋ธ์์ ์์ Student ๋ชจ๋ธ๋ก ์ ๋ณด ์ ์ด ํ์ ์ | Student ๋ชจ๋ธ์ด Teacher์ ์ฑ๋ฅ์ ๋ชจ๋ฐฉํ๋ฉฐ, ๊ฒฝ๋ํ๋ ๋ชจ๋ธ์ ํ์ต ๊ฐ๋ฅ. |
| Adapters | ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ณ ์ ํ๊ณ Task-specific Layer๋ง ์ถ๊ฐํด์ผ ํ ๋ | ๊ธฐ์กด ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ์ ์งํ๋ฉฐ, ์์ ์ถ๊ฐ Layer๋ฅผ ํ์ตํ์ฌ ์๋ก์ด Task์ ์ ์ ๊ฐ๋ฅ. |
| Prefix Tuning | Prompt Template ์๋ต ํ์์ ๋์ฑ ๊ฐ์ ํ๊ณ ์ ์ด๊ฐ ํ์ํ ๋ | ๋ชจ๋ธ์ ์ ๋ ฅ์ Pre-trained Prompt๋ฅผ ์ถ๊ฐํ์ฌ Fine-tuning ์์ด ํ์์ ์๋ต ์ ์ด ๊ฐ๋ฅ. |