--- language: - ko license: other tags: - llm - korean - orpo - gguf --- # FRANKENSTALLM 3B v2 (Byte-Fallback Fixed) 한국어 중심 **FRANKENSTALLM 3B** ORPO 파인튜닝 체크포인트에 **byte-fallback 토큰 256개**를 추가한 버전입니다. llama.cpp/GGUF 추론 시 줄바꿈(`\n`) 등 미등록 문자로 인한 크래시를 방지하기 위해 사용합니다. ## 모델 상세 | 항목 | 값 | |------|-----| | **Architecture** | LlamaForCausalLM | | **Params** | ~3B | | **Hidden size** | 2048 | | **Layers** | 24 | | **Attention heads** | 16 | | **KV heads** | 4 | | **Max position** | 4096 | | **Vocab size** | **64,256** (64,000 + 256 byte-fallback) | | **Training** | ORPO (SFT → ORPO) | ## 변경 사항 (v2) - 토크나이저: `byte_fallback=True`, `<0x00>`~`<0xFF>` 256개 토큰 추가 - 임베딩: 64,000 → 64,256 리사이즈, 새 토큰 초기화 - GGUF 변환·Ollama 배포 시 뉴라인 포함 입력 정상 처리 확인 ## ORPO 평가 요약 (동일 체크포인트 기준) - **평가 일시**: 2026-03-09 - **Preference Accuracy**: 76.02% - **Reward Margin**: 0.6100 - **Eval Loss**: 1.7910 → 1.6250 - **KoBEST (0-shot) 평균**: 52.75% - **생성 품질**: Greedy 3-gram 반복률 30.89%, EOS 종료율 66.67% - **PPL Forgetting**: 최대 4.1% (기준 <15%) - **종합**: 7/10 차원 통과, 정량 스코어 63.7/100 상세: 프로젝트 내 `reports/2026-03-09_ORPO_EVALUATION_REPORT.md` 참고. ## Ollama 배포 벤치마크 (Q4_K_M, 2026-03-09) - **모델명**: `frankenstallm-3b-v2` - **테스트 수**: 35 (자동 20 + 수동 15) - **자동 채점 평균**: 46.7 - **카테고리**: korean_nlu 100.0, reasoning 50.0, knowledge 75.0, instruction_following 66.7, code 0.0, safety 10.0, repetition_resistance 2.2 등 - **지연**: Avg TTFT 16.7 ms, Avg TPS 142.5 상세: `reports/2026-03-09_GGUF_DEPLOYMENT_AND_EVAL_REPORT.md`, `eval/results/frankenstallm-3b-v2/ollama_benchmark_summary.md` ## 사용 - **Transformers**: 이 체크포인트를 그대로 `from_pretrained(...)` 로 로드 가능. - **GGUF**: `scripts/fix_tokenizer_byte_fallback.py` 적용 후 `convert_hf_to_gguf.py` → `llama-quantize` 로 변환한 v2 파이프라인 사용 권장. 이미 변환된 Q4_K_M GGUF는 Ollama에서 `frankenstallm-3b-v2` 로 배포 가능. ## 라이선스 프로젝트(FRANKENSTALLM) 라이선스에 따릅니다.