# 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 ```