| # ํ๊ตญ์ด 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)* | |