# FRANKENSTALLM 3B — 생성 품질 + 반복률 분석 보고서 **작성일**: 2026-03-05 **모델**: FRANKENSTALLM 3B (base pretrain, checkpoint-0057000) **평가 스크립트**: `eval/generate.py`, `eval/analyze_3b_generation.py` --- ## 1. 개요 Base pretrain 모델의 한국어 텍스트 생성 능력과 반복 퇴화(repetition degeneration) 정도를 측정하였다. SFT 이전 기저 수준을 확인하여 SFT 단계의 개선 기대치를 수립하는 것이 목적이다. ### 평가 설정 | 항목 | 값 | |------|-----| | 프롬프트 수 | 10개 (다양한 주제) | | 온도 | 0.0 (greedy), 0.7, 1.0 | | max_new_tokens | 256 | | top_p | 0.9, top_k: 50 | | 반복률 그리드 | 72개 설정 × 3개 프롬프트 | --- ## 2. 온도별 생성 품질 ### 2-1. 3-gram 반복률 요약 | 온도 | 평균 3-gram 반복률 | EOS 종료율 | 평가 | |------|-------------------|-----------|------| | **0.0 (greedy)** | **71.1%** | 0% | 심각한 반복 퇴화 | | **0.7** | **40.5%** | 0% | 개선되나 여전히 높음 | | **1.0** | **9.3%** | 0% | 다양성 양호, 일부 비문 | ### 2-2. 프롬프트별 상세 (greedy, temp=0.0) | 프롬프트 | 3-gram 반복률 | 비고 | |----------|-------------|------| | 대한민국의 수도는 | 80.0% | "인천광역시는..." 반복 | | 인공지능이란 | 31.8% | "SAT 시험일정" 반복 (데이터 오염 의심) | | 한국의 전통 음식 중에서 | 81.5% | "갈비탕은 갈비에 갖은 양념을..." 반복 | | 지구 온난화의 주요 원인은 | 92.1% | "온실가스 배출은..." 단문 반복 | | 프로그래밍을 배우려면 | 87.3% | 반복 퇴화 | | 조선시대에는 | 51.0% | 상대적 양호 | | 물리학에서 에너지란 | 91.9% | 심각한 반복 | | 한국어는 세계에서 | 22.2% | 가장 양호 | | 경제 성장을 위해서는 | 88.3% | 반복 퇴화 | | 우주 탐사의 역사를 보면 | 85.0% | 반복 퇴화 | ### 2-3. 프롬프트별 상세 (temp=0.7) | 프롬프트 | 3-gram 반복률 | 비고 | |----------|-------------|------| | 대한민국의 수도는 | 91.2% | 온도 올려도 반복 유지 | | 인공지능이란 | 64.3% | 부분 개선 | | 한국의 전통 음식 중에서 | 37.3% | 의미 있는 개선 | | 지구 온난화의 주요 원인은 | 57.8% | 부분 개선 | | 프로그래밍을 배우려면 | 9.4% | 크게 개선 | | 조선시대에는 | 73.6% | 악화 (확률적 편차) | | 물리학에서 에너지란 | 7.8% | 크게 개선 | | 한국어는 세계에서 | 3.3% | 거의 무반복 | | 경제 성장을 위해서는 | 34.8% | 의미 있는 개선 | | 우주 탐사의 역사를 보면 | 26.0% | 개선 | ### 2-4. 프롬프트별 상세 (temp=1.0) | 프롬프트 | 3-gram 반복률 | 비고 | |----------|-------------|------| | 대한민국의 수도는 | 0.0% | 무반복 | | 인공지능이란 | 7.3% | 양호 | | 한국의 전통 음식 중에서 | 0.8% | 양호 | | 지구 온난화의 주요 원인은 | 27.7% | 일부 반복 잔존 | | 프로그래밍을 배우려면 | 14.6% | 양호 | | 조선시대에는 | 0.0% | 무반복 | | 물리학에서 에너지란 | 3.0% | 양호 | | 한국어는 세계에서 | 36.4% | 이 프롬프트만 악화 | | 경제 성장을 위해서는 | 2.4% | 양호 | | 우주 탐사의 역사를 보면 | 0.8% | 양호 | --- ## 3. 반복률 파라미터 그리드 탐색 72개 파라미터 설정(temperature × repetition_penalty × no_repeat_ngram_size × top_p)에 대해 3개 프롬프트로 탐색하였다. ### 3-1. Best 설정 (3-gram 반복률 0%) | 설정 | temp | rep_penalty | ngram_block | top_p | |------|------|-------------|-------------|-------| | t0.7_r1.0_ng3_tp0.9 | 0.7 | 1.0 | 3 | 0.9 | | t0.7_r1.0_ng3_tp0.95 | 0.7 | 1.0 | 3 | 0.95 | | t0.7_r1.0_ng4_tp0.9 | 0.7 | 1.0 | 4 | 0.9 | | t0.7_r1.1_ng3_tp0.9 | 0.7 | 1.1 | 3 | 0.9 | | t0.7_r1.2_ng0_tp0.9 | 0.7 | 1.2 | - | 0.9 | > `no_repeat_ngram_size=3`만으로도 모든 온도에서 3-gram 반복률 0% 달성 ### 3-2. Worst 설정 (높은 반복률) | 설정 | 3-gram 반복률 | temp | rep_penalty | ngram_block | top_p | |------|-------------|------|-------------|-------------|-------| | t0.7_r1.0_ng0_tp0.95 | 18.7% | 0.7 | 1.0 | - | 0.95 | | t0.7_r1.0_ng0_tp0.9 | 10.8% | 0.7 | 1.0 | - | 0.9 | | t1.0_r1.0_ng0_tp0.95 | 7.6% | 1.0 | 1.0 | - | 0.95 | ### 3-3. 핵심 발견 1. **`no_repeat_ngram_size=3`가 가장 효과적**: 온도/rep_penalty 무관하게 즉시 반복 제거 2. **`repetition_penalty=1.2`도 효과적**: ngram blocking 없이도 반복률 0% 달성 (단, top_p=0.9 필요) 3. **EOS 종료율은 모든 설정에서 0%**: base model은 EOS를 학습하지 않음 — SFT에서 해결 필수 4. **top_p=0.95 vs 0.9**: top_p가 높을수록 반복률 미세하게 증가 (더 많은 토큰 후보) --- ## 4. 생성 샘플 (Best/Worst) ### 4-1. Worst 샘플 (greedy, 심각한 반복) **프롬프트**: "지구 온난화의 주요 원인은" > "온실가스 배출이다. 온실가스 배출은 지구온난화의 주요 원인이다. 온실가스 배출은 지구온난화의 주요 원인이다. 온실가스 배출은..." > > (3-gram 반복률 92.1%, 동일 문장 무한 반복) **프롬프트**: "대한민국의 수도는" (greedy) > "서울이 아닌 인천이다. 인천광역시(仁川廣域市)는 대한민국 인천광역시의 행정을 총괄하는 광역자치단체이다. 인천광역시(仁川廣域市)는..." > > (3-gram 반복률 80%, 사실 오류 + 반복 퇴화) ### 4-2. Best 샘플 (temp=1.0) **프롬프트**: "조선시대에는" (3-gram 반복률 0%) **프롬프트**: "대한민국의 수도는" (3-gram 반복률 0%) **프롬프트**: "우주 탐사의 역사를 보면" (3-gram 반복률 0.8%) > temp=1.0에서 다양하고 문법적으로 올바른 한국어 생성 확인 --- ## 5. 1B 베이스라인과 비교 | 지표 | 1B (SFT 후) | 3B Base | 비교 주의사항 | |------|------------|---------|-------------| | Greedy 3-gram 반복률 | 30.7% | 71.1% | **SFT vs Base** — 직접 비교 불가 | | rep=1.1 3-gram 반복률 | 18% | ~0% (ng=3) | ng=3 적용 시 3B가 우수 | | EOS 종료율 | 60% | 0% | 1B는 SFT 후 수치 | > 1B의 30.7%는 SFT 이후 측정값이다. SFT 전 1B의 greedy 반복률은 현 3B와 유사하거나 더 높았을 것으로 추정된다. --- ## 6. SFT 진행 판단 (생성 품질 기준) | 기준 | 판정 | |------|------| | temp=1.0에서 의미 있는 한국어 생성 | ✅ 가능 (9.3% 반복률) | | no_repeat_ngram_size=3으로 반복 제거 가능 | ✅ 확인됨 | | 완전한 비문/랜덤 토큰 출력 여부 | ✅ 없음 — 한국어 문법 유지 | | 사실 정확성 | ⚠️ base model이므로 사실 오류 존재 (예: 수도=인천) | **결론**: 생성 품질 관점에서 SFT 진행에 문제 없음. 반복 퇴화는 base model의 전형적 특성이며, SFT와 디코딩 전략(ngram blocking)으로 해결 가능. --- ## 7. 권장 추론 파라미터 (base model 실험용) ```python generation_config = { "temperature": 0.9, "top_p": 0.9, "top_k": 50, "no_repeat_ngram_size": 3, "repetition_penalty": 1.1, "max_new_tokens": 512, } ``` --- ## 8. 평가 데이터 파일 | 파일 | 설명 | |------|------| | `eval/outputs/3b_generation_results.json` | 10 프롬프트 × 3 온도 생성 결과 | | `eval/outputs/3b_repetition_analysis.json` | 72 설정 × 3 프롬프트 반복률 분석 | --- *보고서 작성: 2026-03-05*