Files
frankenstallm/reports/2026-03-06_3B_SFT_EVAL_PLAN.md
ModelHub XC d4abdb70fa 初始化项目,由ModelHub XC社区提供模型
Model: pathcosmos/frankenstallm
Source: Original Platform
2026-07-14 04:21:16 +08:00

248 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FRANKENSTALLM 3B SFT 모델 다면적 종합 평가 계획서
> 작성일: 2026-03-06
> 대상 모델: FRANKENSTALLM 3B SFT v1
> 작성 목적: SFT 학습 완료 후 6개 차원 종합 평가 계획 수립
---
## 1. 개요
### 1.1 학습 완료 상태
| 항목 | 값 |
|------|-----|
| Phase | Phase 2 — SFT (Supervised Fine-Tuning) |
| 최종 Step | 25,500 (early stopping) |
| 최종 val_loss | 1.8851 |
| 체크포인트 | `checkpoints/korean_3b_sft_v1/checkpoint-best/` |
### 1.2 모델 구성
| 파라미터 | 값 |
|----------|-----|
| `use_hybrid` | `false` |
| `use_fp8` | `true` |
| `d_model` | 3072 |
| `n_layers` | 28 |
| 총 파라미터 | ~3B |
### 1.3 평가 목표
1. **6개 평가 차원**으로 SFT 모델을 종합적으로 평가
2. **Base 모델 대비 향상 폭** 정량 측정
3. 결과에 따라 **ORPO 진행 여부** 결정 (Phase 3 게이트)
---
## 2. 평가 차원 (6개)
### 차원 1: Perplexity (지식 보존 — Catastrophic Forgetting 검증)
SFT 과정에서 사전학습 지식이 손실되지 않았는지 검증한다.
**방법**: 19개 validation 데이터셋 × sliding window (`seq_len=2048`, `stride=512`)
#### 주요 데이터셋 및 목표
| 데이터셋 | Base PPL | SFT 목표 PPL | 허용 상한 (forgetting < 15%) |
|----------|----------|-------------|---------------------------|
| `3b_val` | 5.2263 | < 6.0 | 6.01 |
| `korean_c4_val` | 5.7173 | < 6.6 | 6.57 |
| `hplt_ko_val` | 2.4028 | < 2.8 | 2.76 |
| `cc100_ko_val` | 21.782 | < 25.0 | 25.05 |
**판정 기준**: 전체 19개 데이터셋 평균 forgetting ratio < 15%
---
### 차원 2: 생성 품질 (반복률 + EOS + 텍스트 자연스러움)
SFT의 핵심 성과인 **반복 생성 해소** **EOS 종료 능력** 검증한다.
#### 실험 설계
| 항목 | |
|------|-----|
| 프롬프트 | 15 한국어 프롬프트 |
| 온도 | 4단계 (0.0 / 0.5 / 0.8 / 1.0) |
| 생성 | 60 (15 × 4) |
| 파라미터 조합 grid search | 12개 조합 |
#### Chat Template 적용
```
<|user|>
{prompt}
<|assistant|>
```
- **Chat template ON**: SFT 모델 평가
- **Raw prompt** (template 없음): Base 모델과의 직접 비교용
#### 핵심 지표 및 목표
| 지표 | Base | SFT 목표 | 비고 |
|------|---------|---------|------|
| Greedy 3-gram 반복률 | 60.99% | < 5% | 가장 중요한 SFT 성과 지표 |
| EOS 종료율 | 0% | > 90% | 생성 종료 능력 |
---
### 차원 3: 벤치마크 (한국어 이해력)
SFT를 통한 한국어 이해 능력 향상을 정량 측정한다.
#### KoBEST (5개 태스크)
| 태스크 | Base (%) | SFT 목표 (%) | 평가 방식 |
|--------|----------|-------------|----------|
| `kobest_copa` | 49.30 | > 65 | 0-shot + 5-shot |
| `kobest_boolq` | 50.28 | > 60 | 0-shot + 5-shot |
| `kobest_hellaswag` | 21.60 | > 30 | 0-shot + 5-shot |
| `kobest_sentineg` | 48.61 | > 60 | 0-shot + 5-shot |
| `kobest_wic` | 48.65 | > 55 | 0-shot + 5-shot |
| **KoBEST 평균** | **43.69** | **> 55** | |
#### HAE-RAE
| 지표 | Base (%) | SFT 목표 (%) |
|------|----------|-------------|
| HAE-RAE 평균 | 19.71 | > 25 |
#### MMLU-KO
| 지표 | Base (%) | SFT 목표 (%) |
|------|----------|-------------|
| MMLU-KO 평균 (57개 과목) | 22.75 | > 30 |
---
### 차원 4: 벤치마크 (영어 유지)
SFT 과정에서 영어 능력이 하락하지 않았는지 검증한다. **하락 금지** 원칙 적용.
| 태스크 | Base (%) | SFT 최소 유지 (%) |
|--------|----------|------------------|
| `hellaswag` | 26.00 | >= 25 |
| `arc_easy` | 25.63 | >= 25 |
| `arc_challenge` | 21.67 | >= 21 |
| `winogrande` | 50.59 | >= 49 |
| `piqa` | 52.50 | >= 51 |
| **MMLU-EN 평균** | **25.81** | **>= 25** |
---
### 차원 5: Calibration (확률 분포 품질)
모델의 예측 확률 분포가 적절히 보정되어 있는지 검증한다.
| 지표 | Base 값 | SFT 기준 |
|------|---------|---------|
| Top-1 Accuracy | 68.75% | >= 65% |
| Top-5 Accuracy | 81.64% | >= 78% |
| Top-10 Accuracy | 85.93% | >= 82% |
| Mean Entropy | 1.5682 | < 2.0 |
| Token NLL mean | 1.5561 | < 2.0 |
---
### 차원 6: SFT 고유 평가 (Chat 능력)
SFT 학습의 본질적 목적인 대화 능력을 정성+정량 평가한다.
#### 평가 항목
| 항목 | 설명 |
|------|------|
| Chat template 응답 품질 | `<\|user\|>` / `<\|assistant\|>` 포맷 준수 여부, 응답 완결성 |
| 지시 따르기 (Instruction Following) | 명시적 지시사항 이행률 (형식, 길이, 언어 ) |
| 다국어 전환 | 한국어 질문한국어 답변, 영어 질문영어 답변 전환 능력 |
| 코드 생성 | 간단한 Python/SQL 코드 생성 정확도 |
---
## 3. GPU 분배 계획
### Phase 1: 내부 평가 (차원 1, 2, 5)
8개 GPU를 병렬로 활용하여 내부 평가를 동시 실행한다.
| GPU | 태스크 ID | 내용 | 예상 시간 |
|-----|-----------|------|----------|
| GPU 0 | `ppl_single` | PPL `3b_val.bin` | ~30분 |
| GPU 1 | `ppl_multi` | PPL `korean_c4_val.bin`, `korean_val.bin` | ~40분 |
| GPU 2 | `ppl_multi` | PPL `hplt_ko_val.bin`, `cc100_ko_val.bin` | ~40분 |
| GPU 3 | `ppl_multi` | PPL cosmo 계열 7개 | ~50분 |
| GPU 4 | `ppl_multi` | PPL wiki/math 계열 7개 | ~50분 |
| GPU 5 | `calib_nll` | Calibration + Token NLL | ~20분 |
| GPU 6 | `generation` | 15 프롬프트 × 4 온도 (chat template ON) | ~30분 |
| GPU 7 | `repetition_grid` | 12 파라미터 조합 × 5 프롬프트 | ~40분 |
### Phase 2: 벤치마크 (차원 3, 4)
Phase 1 완료 GPU를 재배정하여 벤치마크를 실행한다.
| GPU | 벤치마크 | 비고 |
|-----|---------|------|
| GPU 0 | `kobest_boolq`, `kobest_copa`, `kobest_wic` | 한국어 (차원 3) |
| GPU 1 | `kobest_hellaswag`, `kobest_sentineg` | 한국어 (차원 3) |
| GPU 2 | `haerae` | 한국어 (차원 3) |
| GPU 3 | `global_mmlu_ko` | 한국어 (차원 3) |
| GPU 4 | `hellaswag`, `arc_easy`, `arc_challenge` | 영어 (차원 4) |
| GPU 5 | `winogrande`, `piqa` | 영어 (차원 4) |
| GPU 6 | `mmlu_humanities`, `mmlu_social_sciences` | 영어 MMLU (차원 4) |
| GPU 7 | `mmlu_stem`, `mmlu_other` | 영어 MMLU (차원 4) |
---
## 4. 판정 기준 (Phase 게이트)
평가 결과에 따라 다음 단계를 결정한다.
| 조건 | 판정 | 다음 단계 |
|------|------|----------|
| 반복률 < 5% **AND** KoBEST > 55% **AND** forgetting < 15% | **PASS** | Phase 4: GGUF 변환 + Ollama 배포 |
| 반복률 5~15% **OR** 벤치마크 부분 달성 | **CONDITIONAL** | Phase 3: ORPO 강화학습 |
| 반복률 > 15% **OR** 벤치마크 하락 **OR** forgetting > 20% | **FAIL** | SFT 재시도 (하이퍼파라미터/데이터 조정) |
---
## 5. 산출물
평가 완료 시 아래 파일들이 생성된다.
```
eval/outputs/3b_sft_eval_YYYYMMDD_HHMM/
├── phase1_results.json # 내부 평가 결과 (PPL, 생성, Calibration)
└── phase2_results.json # 벤치마크 결과 (KoBEST, HAE-RAE, MMLU 등)
reports/
└── 2026-03-06_3B_SFT_EVALUATION_REPORT.md # 종합 평가 보고서
```
---
## 6. 실행 순서 요약
```
1. Phase 1 내부 평가 (8 GPU 병렬)
├── GPU 0-4: Perplexity (19개 val 데이터셋)
├── GPU 5: Calibration + Token NLL
├── GPU 6: 생성 품질 (chat template)
└── GPU 7: 반복률 grid search
→ phase1_results.json 저장
2. Phase 1 결과 확인
├── 반복률 > 15% → FAIL → SFT 재시도 (Phase 2 생략)
└── 반복률 <= 15% → Phase 2 진행
3. Phase 2 벤치마크 (8 GPU 병렬)
├── GPU 0-3: 한국어 벤치마크 (KoBEST, HAE-RAE, MMLU-KO)
└── GPU 4-7: 영어 벤치마크 (HellaSwag, ARC, PIQA, MMLU-EN)
→ phase2_results.json 저장
4. 종합 판정 → 보고서 작성
→ reports/2026-03-06_3B_SFT_EVALUATION_REPORT.md
```