| # ํ๊ตญ์ด LLM ์ ์ฒด ๋ก๋๋งต & ์์ฌ๊ฒฐ์ ํ๋ ์์ํฌ |
|
|
| > **์์ฑ์ผ**: 2026-02-26 |
| > **ํ์ฌ ์ํ**: SFT 5,000 steps ์๋ฃ (loss 1.9677), 1.19B ํ๋ผ๋ฏธํฐ ๋ชจ๋ธ |
| > **๋ชฉํ**: ์ค์ฌ์ฉ ๊ฐ๋ฅํ ํ๊ตญ์ด LLM ๋ฐฐํฌ |
|
|
| --- |
|
|
| ## 0. TL;DR โ ์ง๊ธ ๋น์ฅ ํ ์ผ |
|
|
| 1. **SFT ๋ชจ๋ธ ๋น ๋ฅธ ์์ฑ ํ
์คํธ** (30๋ถ, ์ค๋): temperature sampling์ผ๋ก ๋ฐ๋ณต ํดํ ํ์ธ |
| 2. **lm-eval-harness ko_ifeval + ko_winogrande ์คํ** (2~4์๊ฐ): ์ซ์ ํ์ธ |
| 3. **๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ถ๊ธฐ** โ ์๋ ์์ฌ๊ฒฐ์ ํธ๋ฆฌ ์ฐธ์กฐ |
|
|
| --- |
|
|
| ## 1. ํ์ฌ ์์น ํ์
|
|
|
| ### 1.1 SFT ํ์ต ํํฉ ์์ฝ |
|
|
| | ํญ๋ชฉ | ๊ฐ | |
| |------|-----| |
| | Steps | 5,000 | |
| | Final Loss | 1.9677 | |
| | ํ์ต ์๊ฐ | 0.61h (~37๋ถ) | |
| | ์ฒ๋ฆฌ ์๋ | ~75,700 tok/s (๋จ์ผ B200) | |
| | LR (final) | 2.00e-06 (์์ ํ decay๋จ) | |
| | Gradient Norm | ์์ (1.0~1.4 ๋ฒ์) | |
| | SFT ๋ฐ์ดํฐ | ์ ์ ์์ (ํ์ธ ํ์) | |
|
|
| **์ฃผ๋ชฉ**: 5,000 steps๋ **๋งค์ฐ ์ ์ ์**์ด๋ค. SFT์์ ๋ณดํต 1~3 ์ํญ์ ๋๋ฆฌ๋๋ฐ, ๋ฐ์ดํฐ์
ํฌ๊ธฐ์ ๋ฐ๋ผ steps ์ถฉ๋ถ์ฑ์ด ๊ฒฐ์ ๋๋ค. |
|
|
| ### 1.2 ์
๊ณ ๋ด ์์น |
|
|
| #### ๋ฒค์น๋งํฌ ๊ธฐ์ค (Open Ko-LLM Leaderboard ์ค์ธก์น ๊ธฐ๋ฐ ์ถ์ ) |
|
|
| ``` |
| ๋ชจ๋ธ ๊ท๋ชจ ko_ifeval ko_winogrande ๋น๊ณ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| EXAONE-3.0-7.8B-Instruct 7.8B ~55% ~80%+ 8T tokens, SFT+DPO |
| Llama-3.1-8B-Korean-SFT 8B ~40% ~72% Llama ๊ธฐ๋ฐ ํ๊ตญ์ด ์ ์ |
| SOLAR-10.7B-Instruct 10.7B ~50% ~78% ์
์คํ
์ด์ง |
| Gemma-2-9B-Korean 9B ~45% ~75% Google ๊ธฐ๋ฐ |
| |
| โโ ํ์ค์ 1B SFT ๋ฒค์น๋งํฌ (ํ์ฌ ์ฌ๋ก) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| dltjdgh0928/test_instruction ~?B 24.1% 57.1% ๋ฆฌ๋๋ณด๋ ์ค์ธก |
| lookuss/test-llilu ~?B 22.9% 58.2% ๋ฆฌ๋๋ณด๋ ์ค์ธก |
| generic 1B SFT (์ถ์ ) 1~2B 20-30% 52-62% ํ์ค์ ๋ฒ์ |
| |
| โโ ์ฐ๋ฆฌ ๋ชจ๋ธ ์์ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| korean_1b_sft (5k steps) 1.19B 15-28%? 50-58%? ํ๊ฐ ์ ์ถ์ |
| ``` |
|
|
| #### ํต์ฌ ๊ฒฉ์ฐจ ๋ถ์ |
|
|
| | ๋น๊ต ๋์ | ํ๋ผ๋ฏธํฐ ์ฐจ์ด | ์์ ์ฑ๋ฅ ๊ฒฉ์ฐจ | ์ฃผ์ ์ด์ | |
| |-----------|--------------|---------------|-----------| |
| | EXAONE-3.0-7.8B | 6.6ร | ๋งค์ฐ ํผ | ๊ท๋ชจ + ๋ฐ์ดํฐ + DPO | |
| | 8B ํ๊ตญ์ด SFT | 6.7ร | ํผ | ๊ท๋ชจ ์ฐจ์ด๊ฐ ์ง๋ฐฐ์ | |
| | ํ์ฌ 1B SFT | ์ ์ฌ | ์์~์ค๊ฐ | ๋ฐ์ดํฐ/ํ์ต ๋ฐฉ๋ฒ ์ฐจ์ด | |
|
|
| **ํ์ค์ ํ๊ฐ**: 1B ๋ชจ๋ธ์ 7~10B ๋ชจ๋ธ๊ณผ **direct ๊ฒฝ์์ด ๋ถ๊ฐ๋ฅ**ํ๋ค. ๊ทธ๋ฌ๋: |
| - **์ฃ์ง ๋ฐฐํฌ** (๋ก์ปฌ ์๋น, ์ ์ง์ฐ API): 1B๊ฐ ๋ช
ํํ ์ฐ์ |
| - **๋ฆฌ์์ค ํจ์จ**: 1B๋ ๋จ์ผ GPU, ์ฌ์ง์ด CPU์์๋ ๊ตฌ๋ |
| - **ํนํ ๋๋ฉ์ธ**: ํ๊ตญ์ด ํนํ fine-tuning์ผ๋ก ํน์ ํ์คํฌ์์ ๋ํ ๋ฒ์ฉ ๋ชจ๋ธ ๊ทผ์ ๊ฐ๋ฅ |
|
|
| ### 1.3 1B ๊ท๋ชจ์ ํ๊ณ์ ๊ฐ๋ฅ์ฑ |
|
|
| **ํ์ค์ ํ๊ณ**: |
| - ko_ifeval 30% ์ด๊ณผ ์ด๋ ค์ (instruction following ๋ณต์ก๋) |
| - ์ํ/์ฝ๋: ์ฌ์ ํ์ต ๋ฐ์ดํฐ ์์ผ๋ฉด ๊ฑฐ์ ๋ถ๊ฐ |
| - ์ฅ๋ฌธ ๋งฅ๋ฝ ์ดํด: 4K context์์ degradation ์์ |
| - ์ฌ์ค ๊ธฐ์ต: ์ธ๋ฐํ ์ฌ์ค ์ ์ฅ capacity ๋ถ์กฑ |
| |
| **๊ฐ๋ฅํ ๊ฒ**: |
| - ํ๊ตญ์ด ๊ธฐ๋ณธ QA, ์์ฝ, ๋ถ๋ฅ |
| - ๊ฐ๋จํ ์ง์ ๋ฐ๋ฅด๊ธฐ (1~2๋จ๊ณ) |
| - ํ๊ตญ์ด ์๋์์ฑ, ๊ต์ |
| - ๋๋ฉ์ธ ํนํ ํ์คํฌ (์ ํ๋ ํ์) |
| |
| --- |
| |
| ## 2. ๋จ๊ณ๋ณ ๋ก๋๋งต |
| |
| ### Phase 1: SFT ๊ฒ์ฆ (์ง๊ธ โ ~1์ฃผ) |
| |
| #### ๋ชฉํ |
| SFT 5,000 steps ๊ฒฐ๊ณผ๊ฐ ์ค์ฌ์ฉ ๊ฐ๋ฅํ ์์ค์ธ์ง ํ์ |
| |
| #### ์ฒดํฌ๋ฆฌ์คํธ |
| |
| ``` |
| โก 1-1. ์์ฑ ํ์ง ๋น ๋ฅธ ์ ๊ฒ (30๋ถ) |
| - temperature=0.8, top_p=0.9์ผ๋ก 10๊ฐ ํ๋กฌํํธ ์์ฑ |
| - ์ฒดํฌ: ๋ฐ๋ณต ํดํ ๋น์จ (๋ชฉํ: < 20%) |
| - ์ฒดํฌ: ํ๊ตญ์ด ์ด๋ฏธ/์กฐ์ฌ ์ฒ๋ฆฌ ์์ฐ์ค๋ฌ์ด๊ฐ |
| - ์ฒดํฌ: instruction ๋ฐ๋ฅด๋๊ฐ (base์ ๋น๊ต) |
|
|
| โก 1-2. ๊ณต์ ๋ฒค์น๋งํฌ (2~4์๊ฐ) |
| - lm-evaluation-harness ์ค์น ๋ฐ ko_ifeval ์คํ |
| - lm-evaluation-harness ko_winogrande ์คํ |
| - ์ ํ: ko_gsm8k (์ํ ๋ฐ์ดํฐ ์์ผ๋ฉด skip ๊ฐ๋ฅ) |
| |
| โก 1-3. SFT ๋ฐ์ดํฐ ํ์ง ์ ๊ฒ |
| - SFT ํ์ต์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ์
ํ์ธ |
| - ๋ฐ์ดํฐ ์ (๋ช ๊ฐ ์ํ์ธ๊ฐ?) |
| - 5,000 steps ร batch_size = ์ด ํ ํฐ ์ ์ฐ์ถ |
| - ์ํญ ์ ๊ณ์ฐ: epoch 2์ ์ง์
ํ์ผ๋ฏ๋ก ์ต์ 1 ์ํญ ์๋ฃ ํ์ธ๋จ |
|
|
| โก 1-4. Base vs SFT ๋น๊ต |
| - ๋์ผ ํ๋กฌํํธ์ base (pretrained)์ SFT ๊ฒฐ๊ณผ ๋น๊ต |
| - SFT๊ฐ instruction following ๋ฅ๋ ฅ์ ๋ถ์ฌํ๋๊ฐ? |
| ``` |
| |
| #### Pass/Fail ๊ธฐ์ค (์์นํ) |
| |
| | ์งํ | Pass โ
| ๊ฒฝ๊ณ์ โ ๏ธ | Fail โ | |
| |------|---------|-----------|---------| |
| | ko_ifeval (prompt strict) | > 25% | 15~25% | < 15% | |
| | ko_winogrande | > 53% | 50~53% | < 50% | |
| | ๋ฐ๋ณต ํดํ์จ (greedy) | < 20% | 20~40% | > 40% | |
| | temperature ์ํ๋ง ํ์ง | ์์ฐ์ค๋ฌ์ | ์ด์ํจ | ๋ฌด์๋ฏธ | |
| | Base ๋๋น SFT ๊ฐ์ | ๋ช
ํํ instruction ๋ฐ๋ฅด๊ธฐ | ๋ฏธ๋ฏธํ ๊ฐ์ | ๊ฐ์ ์์/์
ํ | |
| |
| > **์ฐธ๊ณ **: ko_winogrande 50%๋ random (binary choice) ์์ค. ์ค์ง์ ์๋ฏธ ์์ผ๋ ค๋ฉด 53%+. |
| |
| #### ์คํจ ์ ๋์ |
| |
| - **ko_ifeval < 15% + ๋ฐ๋ณต > 40%**: SFT ๋ฐ์ดํฐ ๋ฌธ์ ๋๋ steps ๋ถ์กฑ โ Phase 2A |
| - **Base ๋๋น ๊ฐ์ ์์**: SFT ๋ฐ์ดํฐ ํ์/ํ์ง ์ ๊ฒ, ํ์ต๋ฅ ์ฌ๊ฒํ |
| - **๋ชจ๋ ์งํ Fail**: ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ๋ถํฐ ์ฌ๊ฒํ |
| |
| --- |
| |
| ### Phase 2A: SFT ๊ฐ์ (์ ํ์ , Phase 1 ๊ฒฐ๊ณผ ๊ธฐ์ค) |
| |
| #### ์ธ์ ์ง์
ํ๋๊ฐ? |
| |
| ``` |
| Phase 2A ์ง์
์กฐ๊ฑด: |
| โโโ ko_ifeval < 25% AND ๋ฐ๋ณต > 20% โ ์ฆ์ ์ง์
|
| โโโ ko_ifeval 25-30% AND ๋ฐ๋ณต 20-30% โ ๋ฐ์ดํฐ ๋ณด๊ฐ ํ ์ง์
|
| โโโ ko_ifeval > 30% AND ๋ฐ๋ณต < 15% โ Phase 2B ๋๋ 4๋ก ๋ฐ๋ก |
| ``` |
| |
| #### ์ต์
๋ณ ๋ถ์ |
| |
| **์ต์
A: Steps ์ฆ๊ฐ (5k โ 10k~20k)** |
| - **์ธ์ **: ๋ฐ์ดํฐ๋ ์ถฉ๋ถํ๊ณ ์์ง ์๋ ดํ์ง ์์ ๊ฒฝ์ฐ |
| - **ํ์ธ ๋ฐฉ๋ฒ**: Loss ๊ณก์ ์ด ์์ง ํ๊ฐ ์ค์ธ๊ฐ? (5,000 steps์์ 1.97 โ ์๋ ด ๊ทผ์ ) |
| - **์์ ํจ๊ณผ**: ์ํญ ๊ฐ์ (loss 1.97 โ 1.80 ๋ชฉํ, ko_ifeval +3~7%p ์์) |
| - **๋น์ฉ**: B200 1๊ฐ ๊ธฐ์ค 1.5~3์๊ฐ ์ถ๊ฐ |
| - **์ฃผ์**: ์ด๋ฏธ epoch 2์ ์ง์
โ ๊ณผ์ ํฉ ์ํ ์์ |
|
|
| **์ต์
B: ๋ ์ข์ ๋ฐ์ดํฐ** |
| - **์ธ์ **: ํ์ฌ SFT ๋ฐ์ดํฐ๊ฐ ๋ถ์กฑํ๊ฑฐ๋ ํ์ง์ด ๋ฎ์ ๋ (๊ฐ์ฅ ํํ ์ด์ ) |
| - **์ถ์ฒ ๋ฐ์ดํฐ์
**: |
| - `beomi/KoAlpaca-v1.1a` โ 21K ํ๊ตญ์ด instruction |
| - `HAERAE-HUB/KMMLU` โ ํ๊ตญ์ด ์ง์ QA |
| - `nayohan/llama3-baseline-ko-dataset` โ ๋ค์ํ instruction |
| - `squarelike/sharegpt_deepl_ko_ko-en` โ ShareGPT ํ๊ตญ์ด |
| - ํฉ์ฐ ๋ชฉํ: 50K~200K ๊ณ ํ์ง ์ํ |
| - **์์ ํจ๊ณผ**: ๋ฐ์ดํฐ ํ์ง ๊ฐ์ ์ด steps 2๋ฐฐ๋ณด๋ค ํจ๊ณผ์ (๊ฒฝํ์ ๋ฒ์น) |
| - **๋น์ฉ**: ๋ฐ์ดํฐ ์ ์ 1~2์ผ, ํ์ต ์ถ๊ฐ 2~6์๊ฐ |
|
|
| **์ต์
C: ORPO (Odds Ratio Preference Optimization)** |
| - **์ธ์ **: SFT baseline ํ๋ณด ํ preference ์ ๋ ฌ์ด ํ์ํ ๋ |
| - **์ฅ์ **: reference model ๋ถํ์ โ ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ, ํ์ต ๋จ์ํ |
| - **ํ๊ตญ์ด ๋ฐ์ดํฐ**: `kuotient/orca-math-korean-preference` (193K), `heegyu/orca-math-korean-preference-cleaned` (192K) ์กด์ฌ |
| - **์์ ํจ๊ณผ**: ๋ฐ๋ณต ํดํ -10~20%p, instruction following +5~10%p |
| - **๋น์ฉ**: ๋ฐ์ดํฐ ์ค๋น 1์ผ, ํ์ต 3~6์๊ฐ |
|
|
| **์ต์
D: DPO (Direct Preference Optimization)** |
| - **์ธ์ **: ORPO๋ณด๋ค ๋ ๊ฐํ ์ ๋ ฌ์ด ํ์ํ ๋, ๋๋ SFT๊ฐ ์ด๋ ์ ๋ ์ ๋์ ๋ |
| - **์ฅ์ **: RLHF์ ์ ์ฌํ ํจ๊ณผ, PPO๋ณด๋ค ์์ ์ |
| - **๋จ์ **: reference model ํ์ (๋ฉ๋ชจ๋ฆฌ 2ร) |
| - **B200์์ ๊ฐ๋ฅ์ฑ**: 1.19B ร 2 = ~2.4B params โ ๋จ์ผ B200 183GB์์ ์ถฉ๋ถ |
| - **๋น์ฉ**: ํ์ต 4~8์๊ฐ |
|
|
| #### ๊ถ์ฅ ์์ |
| ``` |
| ๋ฐ์ดํฐ ์ ๊ฒ โ ๋ฐ์ดํฐ ๋ณด๊ฐ (์ต์
B) โ Steps ์ถ๊ฐ (์ต์
A) โ ORPO (์ต์
C) |
| ``` |
|
|
| --- |
|
|
| ### Phase 2B: ์ค์ผ์ผ์
โ 3B ๋ชจ๋ธ |
|
|
| #### ๋ฐ์ดํฐ ์ถฉ๋ถ์ฑ ๋ถ์ |
|
|
| | ๊ธฐ์ค | ํ์ ํ ํฐ | ํ์ฌ ๋ณด์ | ํ์ | |
| |------|-----------|-----------|------| |
| | Chinchilla ์ต์ (20ร) | 3B ร 20 = 60B | ~150B | โ
์ถฉ๋ถ | |
| | Chinchilla ์ต์ (70ร) | 3B ร 70 = 210B | ~150B | โ ๏ธ 71% ์์ค | |
| | Llama ๋ฐฉ์ (๊ณ ํ์ง ์ง์ค) | 3B ร 100 = 300B | ~150B | โ ๋ถ์กฑ | |
|
|
| **๊ฒฐ๋ก **: **์ง๊ธ ๋ฐ์ดํฐ๋ก 3B ํ์ต ๊ฐ๋ฅ**. ๋จ, optimal์ ์๋. ๊ณ ํ์ง ๋ฐ์ดํฐ๋ฅผ 50B ์ถ๊ฐ ์์งํ๋ฉด optimal ๊ทผ์ . |
|
|
| #### ์์ ํ์ต ์๊ฐ (8ร B200 ๊ธฐ์ค) |
|
|
| ``` |
| 3B ๋ชจ๋ธ ์ค์ ์ถ์ : |
| - ์ฒ๋ฆฌ ์๋: ~2.5~3M tok/s (8ร B200, 1.19B ๊ธฐ์ค 2.64M) |
| โ 3B ๋ชจ๋ธ์ ์๋ ~40% ๊ฐ์ ์์ (๋ฉ๋ชจ๋ฆฌ/์ฐ์ฐ ์ฆ๊ฐ) |
| โ ์คํจ ์๋: ~1.6M tok/s (์ถ์ ) |
| |
| 60B tokens (์ต์): 60B / 1.6M = 37,500์ด โ 10.4์๊ฐ |
| 150B tokens (ํ์ฌ ๋ณด์ ์ ๋): 150B / 1.6M = 93,750์ด โ 26์๊ฐ |
| 210B tokens (optimal): 210B / 1.6M = 131,250์ด โ 36.5์๊ฐ |
| |
| โ ํ์ค์ ํ์ต ๊ธฐ๊ฐ: 1~2์ผ (8ร B200) |
| ``` |
|
|
| #### 3B ํ์ต ์ค๋น์ฌํญ |
|
|
| ``` |
| โก ๋ชจ๋ธ ์ํคํ
์ฒ ์ค์ ๋ณ๊ฒฝ: |
| - d_model: 2048 โ 2560 (๋๋ 3072) |
| - n_layers: 24 โ 32 |
| - n_heads: 16 โ 32 |
| - n_kv_heads (GQA): 4 โ 8 |
| - d_ffn: 5472 โ ~8192 |
| โ ์์ ํ๋ผ๋ฏธํฐ: ~3B |
| |
| โก ๋ฐ์ดํฐ ์ค๋น: |
| - cc100 ko ์ฌ๋ค์ด๋ก๋ (๋ฒ๊ทธ ์์ ํ) |
| - CulturaX 24.8B ํ์ฉ |
| - ์ด 150B+ ํ ํฐ ํ๊ตญ์ด ๋ฐ์ดํฐ ๋ณํฉ |
| |
| โก configs/korean_3b_fp8.yaml ์์ฑ |
| โก ์ฒดํฌํฌ์ธํธ ์ ์ฅ ์ ๋ต: ๋งค 5,000 steps |
| โก FP8 ์ค์ ์ ์ง (B200 ์ต์ ํ) |
| ``` |
|
|
| #### 1B SFT ๊ฒฐ๊ณผ์ 3B ์งํ ์ฌ๋ถ ์ํฅ |
|
|
| ``` |
| 1B SFT ๊ฒฐ๊ณผ โ 3B ์งํ ์ฌ๋ถ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| ko_ifeval > 30% โ ๊ฐ๋ ฅํ ์ถ์ฒ: 1B๊ฐ ์ด๋ฏธ ์ข์, 3B๋ ํ์คํ ๋ ์ข์ ๊ฒ |
| ko_ifeval 20-30% โ ์กฐ๊ฑด๋ถ ์ถ์ฒ: ๋ฐ์ดํฐ/๋ฐฉ๋ฒ๋ก ํ์ธ ํ 3B |
| ko_ifeval < 20% โ 3B ์ ์ ์์ธ ๋ถ์ ํ์: ๊ฐ์ ๋ฌธ์ ๊ฐ 3B์๋ ์ฌํ๋จ |
| ๋ฐ๋ณต ํดํ > 40% โ ์ฌ์ ํ์ต ๋ฐ์ดํฐ ๋ฌธ์ ์์ฌ: 3B๋ ๋์ผ ๋ฌธ์ ๊ฐ๋ฅ |
| SFT ๊ฐ์ ์์ โ SFT ํ์ดํ๋ผ์ธ ์์ ํ 3B |
| ``` |
|
|
| --- |
|
|
| ### Phase 3: RLHF / Preference Optimization (์ ํ์ ) |
|
|
| #### ์ธ์ ํ์ํ๊ฐ? |
|
|
| | ์๋๋ฆฌ์ค | ํ์์ฑ | |
| |----------|--------| |
| | ์๋น์ค ๋ฐฐํฌ (์ฌ์ฉ์ ๋๋ฉด) | ๊ฐ๋ ฅํ ํ์ โ safety, coherence | |
| | ๋ฆฌ๋๋ณด๋ ์ ์ ๊ทน๋ํ | ํ์ โ DPO/ORPO๋ก +5~15%p | |
| | ๋ด๋ถ ์ฐ๊ตฌ/์คํ | ๋ถํ์ | |
| | RAG ์์คํ
๋ฐฑ์๋ | ๋ถํ์ | |
|
|
| #### ORPO vs DPO vs PPO ๋น๊ต |
|
|
| | ๋ฐฉ๋ฒ | ์ธ์ | ๋ฉ๋ชจ๋ฆฌ | ๋ณต์ก๋ | ํ๊ตญ์ด ๋ฐ์ดํฐ | |
| |------|------|--------|--------|---------------| |
| | **ORPO** | SFT์ ๋์, ๋น ๋ฅธ ์ ๋ ฌ | 1ร (ref ์์) | ๋ฎ์ | 193K+ ์กด์ฌ | |
| | **DPO** | SFT ์ดํ, ์์ ์ ์ ๋ ฌ | 2ร (ref ํ์) | ์ค๊ฐ | 193K+ ์กด์ฌ | |
| | **SimPO** | ref ์์ด DPO ํจ๊ณผ | 1ร | ์ค๊ฐ | ๋ฒ์ฉ ์ ์ฉ | |
| | **PPO** | RLHF ์์ ๊ตฌํ | 3~4ร | ๋์ | reward model ํ์ | |
|
|
| **B200 ํ๊ฒฝ์์ ์ถ์ฒ**: ORPO ๋๋ SimPO (reference model ์์, ๋ฉ๋ชจ๋ฆฌ ํจ์จ) |
|
|
| #### ํ๊ตญ์ด Preference ๋ฐ์ดํฐ ํํฉ (HuggingFace) |
|
|
| ``` |
| kuotient/orca-math-korean-preference 193K ์ํ ์ํ ์ค์ฌ |
| heegyu/orca-math-korean-preference-cleaned 192K ์ํ (์ ์ ๋ณธ) |
| lemon-mint/korean-realqa-reasoning-v01-preference 7.7K ์ถ๋ก |
| ChuGyouk/argilla-distilabel-math-preference-dpo-korean 2.4K ์๊ท๋ชจ |
| |
| โ ์ํ ํนํ ๋ฐ์ดํฐ๊ฐ ๋ง์. ์ผ๋ฐ ํ๊ตญ์ด preference๋ ๋ถ์กฑ. |
| โ ์ผ๋ฐ preference๋ ์์ฒด ์์ฑ ๋๋ ๋ฒ์ญ์ผ๋ก ๋ณด๊ฐ ํ์. |
| ๋ฐฉ๋ฒ: GPT-4/Claude๋ก chosen/rejected ์ ์์ฑ (Self-Play) |
| ``` |
|
|
| --- |
|
|
| ### Phase 4: ๋ฐฐํฌ |
|
|
| #### ์๋น ์ต์
๋น๊ต |
|
|
| | ์ต์
| ํน์ง | B200 ์ ํฉ์ฑ | ์ถ์ฒ ์ํฉ | |
| |------|------|-------------|-----------| |
| | **vLLM** | PagedAttention, ๊ณ ์ฒ๋ฆฌ๋ | โ
์ต์ฐ์ | API ์๋ฒ, ๋ฐฐ์น ์ถ๋ก | |
| | **TGI (Text Generation Inference)** | HF ๊ณต์, ์์ ์ | โ
์ฐ์ | HF Hub ์ฐ๋ | |
| | **llama.cpp + GGUF** | CPU/์ ์ฌ์ ๊ฐ๋ฅ | โ ๏ธ B200์์ ๊ณผ์ | ์ฃ์ง ๋ฐฐํฌ, Ollama | |
| | **Ollama** | ๋ก์ปฌ ๋ฐฐํฌ ํธ์์ฑ | โ ๏ธ | ๊ฐ์ธ ์ฌ์ฉ, ๋ฐ๋ชจ | |
|
|
| **B200 ๊ธฐ์ค vLLM ์์ throughput (1.19B ๋ชจ๋ธ)**: |
|
|
| ``` |
| 1.19B ๋ชจ๋ธ (BF16): |
| - ๋ฉ๋ชจ๋ฆฌ: ~2.4GB (ํ๋ผ๋ฏธํฐ) + KV cache |
| - ๋จ์ผ B200 183GB: KV cache ๊ทน๋ํ ๊ฐ๋ฅ |
| - ์์ throughput: 5,000~15,000 tokens/s (๋ฐฐ์น ์ฒ๋ฆฌ) |
| - ๋จ์ผ ์คํธ๋ฆฌ๋ฐ: 200~500 tokens/s (์ฌ์ฉ์ ์ฒด๊ฐ) |
| โ ๋์ ์ฌ์ฉ์ 100~500๋ช
์ง์ ๊ฐ๋ฅ (๋จ์ผ GPU) |
| ``` |
|
|
| #### ์์ํ ์ต์
(B200 ํ๊ฒฝ) |
|
|
| | ํฌ๋งท | ์ ๋ฐ๋ ์์ค | ํฌ๊ธฐ | B200 ์ ํฉ์ฑ | ์ถ์ฒ | |
| |------|------------|------|-------------|------| |
| | FP8 (Native) | ์์ | 1.2GB | โ
์ต์ฐ์ (HW ์ง์) | **์ต์ฐ์ ** | |
| | BF16 | ์์ | 2.4GB | โ
๊ธฐ๋ณธ | ๊ธฐ์ค์ | |
| | AWQ (W4A16) | ๋งค์ฐ ์ ์ | 0.6GB | โ
์ฐ์ | ์ฃ์ง/์ ๋ฉ๋ชจ๋ฆฌ | |
| | GPTQ (W4) | ์ ์ | 0.6GB | โ
์ฐ์ | CPU ์คํ๋ก๋ | |
| | GGUF Q4_K_M | ์ ์ | ~0.7GB | โ ๏ธ (CPU์ฉ) | Ollama ๋ฐฐํฌ์ฉ | |
|
|
| **B200 ๊ถ์ฅ**: FP8 โ AWQ ์์๋ก ๊ณ ๋ ค. B200์ FP8 ํ๋์จ์ด ์ง์์ผ๋ก ์์ํ ์์ด ์ด๋ฏธ ํจ์จ์ . |
|
|
| #### HuggingFace Hub ์
๋ก๋ |
|
|
| ``` |
| ํ์ ์์
: |
| โก HF ํฌ๋งท ๋ณํ: config.json, model.safetensors, tokenizer_config.json |
| โก model card ์์ฑ (ํ๊ตญ์ด ์ค๋ช
, ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ, ์ฌ์ฉ๋ฒ) |
| โก ๋ผ์ด์ ์ค ์ค์ (Apache 2.0 ๊ถ์ฅ) |
| โก eval ๊ฒฐ๊ณผ ํฌํจ |
| โก Open Ko-LLM Leaderboard ์ ์ถ (ํ๊ฐ ์์ฒญ) |
| ``` |
|
|
| --- |
|
|
| ## 3. ์์ฌ๊ฒฐ์ ํธ๋ฆฌ (์์น ๊ธฐ๋ฐ) |
|
|
| ``` |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| [Phase 1: SFT ํ๊ฐ ๊ฒฐ๊ณผ] |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| |
| โโโ ko_ifeval > 30% AND ๋ฐ๋ณต์จ < 15% |
| โ โโโ ๋ฐ์ดํฐ 150B ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ? โ Phase 2B (3B ์ฌ์ ํ์ต) |
| โ โโโ ์ง๊ธ ๋น์ฅ ๋ฐฐํฌ๊ฐ ๋ชฉํ? โ Phase 4 (vLLM ์๋น + HF ์
๋ก๋) |
| โ |
| โโโ ko_ifeval 20~30% AND ๋ฐ๋ณต์จ 15~30% |
| โ โโโ SFT ๋ฐ์ดํฐ๊ฐ < 10K ์ํ? โ Phase 2A-B (๋ฐ์ดํฐ ๋ณด๊ฐ ์ต์ฐ์ ) |
| โ โโโ SFT ๋ฐ์ดํฐ๊ฐ 10~50K ์ํ? โ Phase 2A-A (steps ์ถ๊ฐ) + 2A-C (ORPO) |
| โ โโโ SFT ๋ฐ์ดํฐ๊ฐ > 50K ์ํ? โ Phase 2A-A (steps ์ถ๊ฐ) OR 2B (3B) |
| โ |
| โโโ ko_ifeval 10~20% AND ๋ฐ๋ณต์จ 30~50% |
| โ โโโ base ๋ชจ๋ธ๊ณผ SFT ์ฐจ์ด ์์? โ SFT ํ์ดํ๋ผ์ธ ๋ฒ๊ทธ ์ ๊ฒ |
| โ โโโ SFT ๋ฐ์ดํฐ ํ์ง ์์ฌ? โ ๋ฐ์ดํฐ ์ ์ ์ ๊ฒ ํ Phase 2A-B |
| โ โโโ base PPL์ด ๋์ (> 15)? โ ์ฌ์ ํ์ต ๋ ํ์ (๋ฐ์ดํฐ ์ถ๊ฐ) |
| โ |
| โโโ ko_ifeval < 10% OR ๋ฐ๋ณต์จ > 50% |
| โโโ base ๋ชจ๋ธ ์์ฒด๊ฐ ์ด๋ฏธ ๋ฐ๋ณต > 30%? โ ์ฌ์ ํ์ต ๋ฐ์ดํฐ ํ์ง ๋ฌธ์ |
| โ โโโ โ cc100 ๋
ธ์ด์ฆ ํํฐ๋ง ํ ์ถ๊ฐ ์ฌ์ ํ์ต |
| โโโ SFT loss๊ฐ ๋ฐ์ฐํ๋๊ฐ? โ ํ์ต๋ฅ /optimizer ์ค์ ์ฌ๊ฒํ |
| โโโ ๋ชจ๋ ์์ฑ์ด ๋ฌด์๋ฏธ? โ ์ฒดํฌํฌ์ธํธ ์์ ํ์ธ, ์ด์ ์ฒดํฌํฌ์ธํธ ๋ณต์ |
| |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| [Phase 2A ๋ด๋ถ ์์ฌ๊ฒฐ์ ] |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| |
| Phase 2A ์ง์
ํ: |
| |
| โโโ ํ์ฌ SFT ๋ฐ์ดํฐ < 20K ์ํ? |
| โ โโโ โ ๋ฐ์ดํฐ ๋ณด๊ฐ์ด steps ์ถ๊ฐ๋ณด๋ค ํจ๊ณผ์ (์ต์ฐ์ ) |
| โ ๋ฐ์ดํฐ: beomi/KoAlpaca, squarelike/sharegpt_ko, nayohan/llama3-ko |
| โ |
| โโโ loss curve๊ฐ ์์ง ํ๊ฐ ์ค (step 4000~5000 ์ฐจ์ด > 0.05)? |
| โ โโโ โ steps 2๋ฐฐ ์ถ๊ฐ ์๋ (10k๊น์ง) |
| โ |
| โโโ ๋ฐ๋ณต์จ > 30% (์ฃผ์ ๋ฌธ์ )? |
| โ โโโ โ ORPO ๋๋ repetition penalty ์ ์ฉ ๋จผ์ |
| โ ORPO ๋ฐ์ดํฐ: kuotient/orca-math-korean-preference (193K) |
| โ |
| โโโ ko_ifeval < 20% + ๋ฐ์ดํฐ ๋ณด๊ฐ ํ์๋ ๊ฐ์ ์์? |
| โโโ โ 3B ์ฌ์ ํ์ต์ผ๋ก ์ ํ (1B SFT ํ๊ณ ๋๋ฌ ๊ฐ๋ฅ์ฑ) |
| |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| [Phase 2B ๋ด๋ถ ์์ฌ๊ฒฐ์ ] |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| |
| 3B ์ฌ์ ํ์ต ์งํ ๊ฒฐ์ ์: |
| |
| โโโ ํ์ฌ 150B ํ ํฐ์ด ํ๊ตญ์ด ๋จ์ผ ์ธ์ด? |
| โ โโโ โ ์์ด ๋ฐ์ดํฐ 10~30% ํผํฉ ๊ถ์ฅ (cross-lingual transfer) |
| โ ์์ด ์ํ/์ฝ๋ ํฌํจํ๋ฉด ko_gsm8k ๋ฑ ์ถ๊ฐ ๊ฐ์ ๊ฐ๋ฅ |
| โ |
| โโโ cc100 ko ๋ฐ์ดํฐ ์์ง ์๋ฃ? |
| โ โโโ No โ CulturaX 24.8B๋ง์ผ๋ก ์์ ๊ฐ๋ฅ (60B ๋ชฉํ ๋ฌ์ฑ ๊ฐ๋ฅ) |
| โ |
| โโโ 3B ํ์ต ์ค ์ค๊ฐ checkpoint์์ SFT ํ
์คํธ? |
| โโโ โ 1B๋ณด๋ค 3B base๊ฐ SFT ๋ฐ์์ฑ์ด ๋์ผ๋ฉด 3B SFT๋ก ๋ฐ๋ก ์งํ |
| |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| [Phase 4 ๋ฐฐํฌ ์์ฌ๊ฒฐ์ ] |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| |
| ๋ฐฐํฌ ๋ฐฉ์ ์ ํ: |
| |
| โโโ ์ฐ๊ตฌ/๋ฐ๋ชจ ๋ชฉ์ ? |
| โ โโโ โ HF Hub ์
๋ก๋ + Gradio Space ์์ฑ (๋ฌด๋ฃ) |
| โ |
| โโโ ๋ด๋ถ API ์๋น? |
| โ โโโ โ vLLM (FP8 native) + OpenAI ํธํ ์๋ํฌ์ธํธ |
| โ ์ปค๋งจ๋: vllm serve ./checkpoints/korean_1b_sft --dtype fp8 |
| โ |
| โโโ ๊ฐ์ธ/ํ ๋ก์ปฌ ์ฌ์ฉ? |
| โ โโโ โ GGUF Q4_K_M ๋ณํ + Ollama (์ด๋ฏธ Modelfile ์กด์ฌ) |
| โ |
| โโโ Open Ko-LLM ๋ฆฌ๋๋ณด๋ ๋ฑ์ฌ? |
| โโโ โ HF Hub ์
๋ก๋ ํ์ โ ๋ฆฌ๋๋ณด๋ ์ ์ถ ์์ ์์ฑ |
| ``` |
|
|
| --- |
|
|
| ## 4. ์ถ๊ฐ ํ์ฅ Job ํ๋ณด๊ตฐ (์ฐ์ ์์ ์) |
|
|
| ### ์ฆ์ ๊ฐ๋ฅ (์ง๊ธ ์๋ฒ์์ ๋ฐ๋ก, ์ถ๊ฐ ๋ฐ์ดํฐ ๋ถํ์) |
|
|
| | ์ฐ์ ์์ | Job | ์์ ์๊ฐ | ๊ธฐ๋ ํจ๊ณผ | |
| |----------|-----|-----------|-----------| |
| | โญโญโญ | **SFT ๋ชจ๋ธ ์์ฑ ํ
์คํธ** (temperature sampling) | 30๋ถ | ๋ฐ๋ณต์จ ํํฉ ํ์
| |
| | โญโญโญ | **lm-eval-harness ์ค์น + ko_ifeval ์คํ** | 2~4์๊ฐ | ๊ณต์ ๋ฒค์น๋งํฌ ์์น | |
| | โญโญโญ | **ko_winogrande ์คํ** | 1~2์๊ฐ | ์ธ์ด ์ดํด ์์น | |
| | โญโญ | **Base vs SFT ๋น๊ต ์์ฑ** (๋์ผ ํ๋กฌํํธ) | 1์๊ฐ | SFT ํจ๊ณผ ์ธก์ | |
| | โญโญ | **SFT ํ์ต ์์ค ๊ณก์ ๋ถ์** (tensorboard) | 30๋ถ | ์๋ ด ์ฌ๋ถ ํ๋จ | |
| | โญโญ | **๋ฐ๋ณต ํดํ ์ ๋ ์ธก์ ** (repetition_penalty ํจ๊ณผ) | 1์๊ฐ | ๋ฐฐํฌ ๊ฐ๋ฅ์ฑ ํ๋จ | |
| | โญ | **vLLM ์๋น ํ
์คํธ** (FP8) | 1~2์๊ฐ | throughput ์ธก์ | |
| | โญ | **HF ํฌ๋งท ๋ณํ** (config.json, safetensors) | 2~3์๊ฐ | HF Hub ์
๋ก๋ ์ค๋น | |
| |
| ### ๋ฐ์ดํฐ ์ค๋น ํ์ |
| |
| | ์ฐ์ ์์ | Job | ์ค๋น ์๊ฐ | ๊ธฐ๋ ํจ๊ณผ | |
| |----------|-----|-----------|-----------| |
| | โญโญโญ | **SFT ๋ฐ์ดํฐ ๋ณด๊ฐ** (KoAlpaca + ShareGPT-ko 50K~) | 1~2์ผ | ko_ifeval +5~15%p | |
| | โญโญโญ | **cc100 ์ฌ์์ง** (๋ฒ๊ทธ ์์ ํ) | 0.5~1์ผ | 150B+ ํ ํฐ ํ๋ณด | |
| | โญโญ | **ORPO ๋ฐ์ดํฐ ์ค๋น** (orca-math-korean 193K) | 0.5์ผ | ๋ฐ๋ณต ํดํ -20%p | |
| | โญโญ | **3B ์ฌ์ ํ์ต ๋ฐ์ดํฐ ๋ณํฉ** (150B ํ ํฐ ํตํฉ) | 1~2์ผ | 3B ํ์ต ์ค๋น | |
| | โญ | **์ผ๋ฐ ํ๊ตญ์ด preference ๋ฐ์ดํฐ ์์ฑ** (GPT-4 ํ์ฉ) | 3~7์ผ | ๋ฒ์ฉ ORPO/DPO | |
| | โญ | **์์ด/์ฝ๋ ๋ฐ์ดํฐ ์ถ๊ฐ** (10~30% ํผํฉ) | 1~3์ผ | ์ํ/์ฝ๋ ๊ฐ์ | |
|
|
| ### ์ธ๋ถ ๋ฆฌ์์ค ํ์ |
|
|
| | ์ฐ์ ์์ | Job | ํ์ ๋ฆฌ์์ค | ๊ธฐ๋ ํจ๊ณผ | |
| |----------|-----|-------------|-----------| |
| | โญโญ | **HuggingFace Hub ๊ณ์ ์
๋ก๋** | HF ๊ณ์ , ์ธํฐ๋ท | ๋ฆฌ๋๋ณด๋ ์ ์ถ ๊ฐ๋ฅ | |
| | โญโญ | **Open Ko-LLM Leaderboard ์ ์ถ** | HF ๊ณ์ | ๊ณต์ ์์ ํ์ธ | |
| | โญ | **KoMT-Bench / LogicKor ํ๊ฐ** | ์ธ๋ถ API ๋๋ ์คํฌ๋ฆฝํธ | ์ง์ ํ๊ฐ | |
| | โญ | **VRAM ์ฆ์ค ๋๋ Multi-GPU SFT** | ํ์ฌ 12GB โ ๊ฐ๋ฅ ๋ ํ์? | ๋ ํฐ ๋ฐฐ์น | |
|
|
| --- |
|
|
| ## 5. ๋ฆฌ์คํฌ ๋ถ์ |
|
|
| ### 5.1 ํ์ฌ ํ์ต ๋ฐฉ์์ ์ ์ฌ์ ๋ฌธ์ ์ |
|
|
| | ๋ฆฌ์คํฌ | ์ฌ๊ฐ๋ | ํ์ฌ ์ฆ๊ฑฐ | ์ํ ๋ฐฉ๋ฒ | |
| |--------|--------|-----------|-----------| |
| | SFT steps ๊ณผ์ (5k) | ๐ด ๋์ | epoch 2 ์ง์
, loss ์์ง 1.97 | steps ์ฆ๊ฐ ๋๋ ๋ฐ์ดํฐ ๋ณด๊ฐ | |
| | ์ฌ์ ํ์ต ๋ฐ์ดํฐ ๋ถ์กฑ (~8.91B) | ๐ก ์ค๊ฐ | Chinchilla ๋๋น 1B ร 20 = 20B ํ์ โ ๋ฏธ๋ฌ | 150B ๋ฐ์ดํฐ ์ถ๊ฐ ํ์ต | |
| | ์ฝ๋/์ํ ๋ฐ์ดํฐ ์์ | ๐ก ์ค๊ฐ | ko_gsm8k ๊ฑฐ์ 0 ์์ | ์์ด ์ฝ๋/์ํ ๋ฐ์ดํฐ ํผํฉ | |
| | Greedy decoding ๋ฐ๋ณต ํดํ | ๐ด ๋์ | base์์ 30% ๋ฐ์ ํ์ธ | SFT + repetition_penalty + ORPO | |
|
|
| ### 5.2 cc100 ๋ฐ์ดํฐ ํ์ง ์ด์ |
|
|
| **์๋ ค์ง ๋ฌธ์ **: |
| - cc100์ CommonCrawl์์ ์ถ์ถ๋ ์น ํ
์คํธ๋ก **๋
ธ์ด์ฆ๊ฐ ์ฌํจ** |
| - ํ๊ตญ์ด cc100 ํนํ: ๊ด๊ณ ํ
์คํธ, ์คํธ, ๋ฐ๋ณต ์ฝํ
์ธ ๋ค์ |
| - ์ค๋ณต๋ฅ : ๋ฌธ์ ์์ค ์ค๋ณต 10~30% ์ถ์ (MinHash ์ ๊ฑฐ ํ์) |
|
|
| **์ค์ ์ํฅ**: |
| ``` |
| ๋
ธ์ด์ฆ ํฌํจ ํ์ต โ ๋ชจ๋ธ์ด ๊ด๊ณ /์คํธ ํจํด ํ์ต โ ์์ฑ ํ์ง ์ ํ |
| ์ค๋ณต ๋ฐ์ดํฐ โ ํน์ ํจํด ๊ณผ๋ ์๊ธฐ โ ๋ฐ๋ณต ํดํ ์
ํ |
| ``` |
|
|
| **๊ถ์ฅ ์ ์ฒ๋ฆฌ**: |
| ```bash |
| # 1. ์ค๋ณต ์ ๊ฑฐ (MinHash LSH) |
| python scripts/dedup_minhash.py --input cc100_ko.bin --threshold 0.8 |
| |
| # 2. ํ์ง ํํฐ๋ง (perplexity ๊ธฐ๋ฐ) |
| # ๋ฎ์ ํ์ง ํ
์คํธ: PPL > 1000 ์ ๊ฑฐ |
| python scripts/quality_filter.py --max_ppl 1000 |
| |
| # 3. ๊ธธ์ด ํํฐ๋ง |
| # ๋๋ฌด ์งง์ ๋ฌธ์ฅ (< 50 tokens) ์ ๊ฑฐ |
| ``` |
|
|
| ### 5.3 Tokenizer ์ ํ (korean_sp 64K)์ ์ํฅ |
| |
| **ํ์ฌ ์ค์ **: SentencePiece Unigram 64K vocab, ํ๊ตญ์ด ํนํ |
| |
| **์ฅ์ **: |
| - ํ๊ตญ์ด ํํ์ ๋ถ๋ฆฌ์ ์ต์ ํ โ ํจ์จ์ ์ธ์ฝ๋ฉ |
| - 64K vocab์ผ๋ก ์์ด vs ํ๊ตญ์ด token fertility ๊ท ํ |
| - ํ๊ตญ์ด ๊ธ์ 1๊ฐ = ํ๊ท 1.2~1.8 tokens (BPE ๋๋น ํจ์จ์ ) |
| |
| **์ ์ฌ์ ๋ฌธ์ **: |
| | ๋ฌธ์ | ์ฌ๊ฐ๋ | ์ค๋ช
| |
| |------|--------|------| |
| | ์์ด vocabulary ๋ถ์กฑ | ๐ก ์ค๊ฐ | ์์ด ์ฝ๋/์ํ ์ฒ๋ฆฌ ํจ์จ ๋ฎ์ (byte fallback) | |
| | ๊ธฐ์กด ๋ชจ๋ธ๊ณผ ํธํ ๋ถ๊ฐ | ๐ก ์ค๊ฐ | RLHF ๋ฐ์ดํฐ ์ฌํ ํฌ๋์ด์ง ํ์ | |
| | ์ ์กฐ์ด/์ธ๋์ด ์ฒ๋ฆฌ | ๐ก ์ค๊ฐ | OOV ์ฒ๋ฆฌ๋ byte fallback์ด์ง๋ง ๋๋ฆผ | |
| | ํ์ค Llama/Mistral ํ ํฌ๋์ด์ ์ ๋ค๋ฆ | ๐ข ๋ฎ์ | HF ์
๋ก๋ ์ tokenizer ํฌํจํ๋ฉด OK | |
| |
| **์ํ**: |
| - ํฅํ 3B ๋ชจ๋ธ์์๋ **tiktoken (cl100k_base) ๋๋ Llama ๊ณ์ด ํ ํฌ๋์ด์ ์ฑํ** ๊ณ ๋ ค |
| - ํ์ฌ 1.19B ๋ชจ๋ธ์ ํ์ฌ ํ ํฌ๋์ด์ ์ ์ง (์ฌํ์ต ๋น์ฉ too high) |
| |
| --- |
| |
| ## 6. ์๋๋ฆฌ์ค ๋ชฉ๋ก ("๋ง์ฝ X๋ผ๋ฉด Y๋ฅผ ํด์ผ ํ๋ค") |
| |
| | # | ์กฐ๊ฑด (IF) | ์ก์
(THEN) | |
| |---|-----------|-------------| |
| | 1 | ko_ifeval > 30% AND ๋ฐ๋ณต < 15% | โ ์ฆ์ HF Hub ์
๋ก๋ + ๋ฆฌ๋๋ณด๋ ์ ์ถ + 3B ์ฌ์ ํ์ต ๋ณ๋ ฌ ์งํ | |
| | 2 | ko_ifeval 20~30% AND ๋ฐ๋ณต 15~30% | โ KoAlpaca+ShareGPT-ko๋ก ๋ฐ์ดํฐ ๋ณด๊ฐ ํ 10k steps SFT ์ฌ์คํ | |
| | 3 | ko_ifeval < 20% AND base์ ์ฐจ์ด ์์ | โ SFT ํ์ต ํ์ดํ๋ผ์ธ ๋ฒ๊ทธ ์ ๊ฒ (๋ฐ์ดํฐ ๋ก๋ฉ, ํฌ๋งท ํ์ธ) | |
| | 4 | ๋ฐ๋ณต์จ > 40% | โ ORPO (orca-math-korean 193K) ์ฆ์ ์ ์ฉ | |
| | 5 | ๋ชจ๋ SFT ์๋ ํ์๋ ko_ifeval < 20% | โ 1B ํ๊ณ ์ธ์ , 3B ์ฌ์ ํ์ต์ผ๋ก ์ ํ | |
| | 6 | cc100 ์์ง ์๋ฃ (65~100B) | โ 3B ์ฌ์ ํ์ต ๋ฐ๋ก ์์ (26์๊ฐ, 8ร B200) | |
| | 7 | 3B base PPL < 8 ๋ฌ์ฑ | โ 3B SFT (KoAlpaca + ORPO) โ ๋ฆฌ๋๋ณด๋ ๋ชฉํ ko_ifeval 40%+ | |
| | 8 | ์๋น์ค ๋ฐฐํฌ ๊ฒฐ์ | โ vLLM FP8 ์๋น + GGUF Q4_K_M Ollama ๋ณํ | |
| | 9 | ์ํ/์ฝ๋ ์ฑ๋ฅ ํ์ | โ ์์ด ์ํ+์ฝ๋ ๋ฐ์ดํฐ 20% ํผํฉํ์ฌ 3B ์ฌํ์ต | |
| | 10 | ํ๊ตญ์ด preference ๋ฐ์ดํฐ ์์ฒด ์์ฑ ์ํจ | โ Claude/GPT-4๋ก chosen/rejected ์ 10K ์์ฑ ํ DPO | |
|
|
| --- |
|
|
| ## 7. ์ ์ฒด ํ์๋ผ์ธ |
|
|
| ``` |
| ํ์ฌ (2026-02-26) |
| โ |
| โโ Week 1: Phase 1 ๊ฒ์ฆ |
| โ โโ D+0: SFT ์์ฑ ํ
์คํธ (30๋ถ) |
| โ โโ D+0: lm-eval ko_ifeval + ko_winogrande (4์๊ฐ) |
| โ โโ D+2: ๊ฒฐ๊ณผ ๋ถ์ + ๋ค์ ๋จ๊ณ ๊ฒฐ์ |
| โ |
| โโ Week 2~3: Phase 2A ๋๋ 2B ๊ฒฐ์ ํ ์คํ |
| โ โโ [2A ๊ฒฝ๋ก] ๋ฐ์ดํฐ ๋ณด๊ฐ (3~5์ผ) + ์ฌํ์ต (1~2์ผ) |
| โ โโ [2B ๊ฒฝ๋ก] 3B ์ฌ์ ํ์ต (26์๊ฐ) + 3B SFT (3~6์๊ฐ) |
| โ |
| โโ Week 4: Phase 3 (ํ์์) |
| โ โโ ORPO ํ์ต (193K ๋ฐ์ดํฐ, 3~6์๊ฐ) |
| โ |
| โโ Week 4~5: Phase 4 ๋ฐฐํฌ |
| โโ HF ํฌ๋งท ๋ณํ (2~3์๊ฐ) |
| โโ HF Hub ์
๋ก๋ + Model Card |
| โโ vLLM ์๋น ์ค์ |
| โโ Ko-LLM ๋ฆฌ๋๋ณด๋ ์ ์ถ |
| |
| ์ด ์์ ๊ธฐ๊ฐ: 3~5์ฃผ (3B ์ค์ผ์ผ์
ํฌํจ) |
| ``` |
|
|
| --- |
|
|
| ## 8. ์ฆ๊ฐ์ ์ธ ๋ค์ ๋จ๊ณ (Action Items) |
|
|
| ```bash |
| # Step 1: lm-evaluation-harness ์ค์น |
| pip install lm-eval |
| |
| # Step 2: ko_ifeval ์คํ (SFT ์ฒดํฌํฌ์ธํธ) |
| lm_eval \ |
| --model hf \ |
| --model_args pretrained=/PROJECT/0325120031_A/ghong/taketimes/llm-bang/checkpoints/korean_1b_sft/checkpoint-0005000,dtype=bfloat16 \ |
| --tasks ko_ifeval \ |
| --device cuda:0 \ |
| --output_path ./eval/results/sft_5k_ko_ifeval.json |
| |
| # Step 3: ko_winogrande ์คํ |
| lm_eval \ |
| --model hf \ |
| --model_args pretrained=/PROJECT/0325120031_A/ghong/taketimes/llm-bang/checkpoints/korean_1b_sft/checkpoint-0005000,dtype=bfloat16 \ |
| --tasks ko_winogrande \ |
| --device cuda:0 \ |
| --output_path ./eval/results/sft_5k_ko_winogrande.json |
| ``` |
|
|
| --- |
|
|
| *์ด ๋ฌธ์๋ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์
๋ฐ์ดํธ ์์ .* |
| *๋ค์ ์
๋ฐ์ดํธ: Phase 1 ํ๊ฐ ์๋ฃ ํ (์์: D+1~2)* |
|
|