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

4.6 KiB

FRANKENSTALLM 3B v2 — GGUF 변환·배포 및 Ollama 평가 보고서

  • 작성일: 2026-03-09
  • 대상: byte-fallback 수정 적용 체크포인트 → GGUF 변환 → Ollama 배포 → 벤치마크

1. 요약

항목 내용
원인 SentencePiece Unigram 토크나이저에 byte_fallback 미적용 → \n 등 미등록 문자 시 llama.cpp 크래시
조치 256개 byte-fallback 토큰 추가, 임베딩 64000→64256 리사이즈, GGUF 재변환, Q4_K_M 양자화
배포 Ollama 모델 frankenstallm-3b-v2:latest (792 MB, Q4_K_M)
뉴라인 검증 ✅ 크래시 없이 \n 포함 프롬프트 처리 확인
Ollama 벤치마크 35개 테스트, 자동 채점 평균 46.7, 평균 TPS 142.5, TTFT 16.7 ms

2. 파이프라인 단계

2.1 토크나이저·임베딩 수정

  • 스크립트: scripts/fix_tokenizer_byte_fallback.py
  • 입력: outputs/hf_checkpoint-best
  • 출력: outputs/hf_checkpoint-best-fixed
  • 변경 사항:
    • tokenizer.json: byte_fallback=True, <0x00>~<0xFF> 256개 토큰 추가
    • config.json: vocab_size 64000 → 64256
    • 임베딩 레이어 리사이즈 및 새 토큰 초기화 후 safetensors 저장

2.2 GGUF 변환 및 양자화

  • F16 GGUF: outputs/llama.cpp/convert_hf_to_gguf.py
    outputs/hf_checkpoint-best-fixed → outputs/gguf/frankenstallm-3b-v2-f16.gguf
  • Q4_K_M 양자화: outputs/llama.cpp/build/bin/llama-quantize
    → outputs/gguf/frankenstallm-3b-v2-Q4_K_M.gguf (약 792 MB)

2.3 Ollama 배포

  • Modelfile: 로컬 GGUF 경로 FROM 지정 후 ollama create
  • 모델 이름: frankenstallm-3b-v2:latest

2.4 뉴라인 테스트

  • 방법: Ollama API로 "첫 줄\n두 번째 줄\n세 번째 줄이라고 말해줘." 프롬프트 전송
  • 결과: HTTP 200, done: true, 크래시 없음 → byte-fallback 수정 검증 완료

3. Ollama 벤치마크 결과 (frankenstallm-3b-v2)

  • 실행: python eval/ollama_benchmark.py --models frankenstallm-3b-v2 --output-dir eval/results/frankenstallm-3b-v2
  • 일시: 2026-03-09 23:24:22
  • 총 테스트: 35 (자동 채점 20 + 수동 검토 15)

3.1 전체 자동 채점 평균

모델 Auto Avg
frankenstallm-3b-v2 46.7

3.2 카테고리별 점수 (자동/수동)

카테고리 점수 비고
korean_nlu 100.0 3 자동 / 2 수동
korean_generation manual 5 수동
reasoning 50.0 4 자동 / 1 수동
knowledge 75.0 4 자동 / 1 수동
code 0.0 3 자동
safety 10.0 2 자동 / 1 수동
instruction_following 66.7 3 자동
multilingual manual 3 수동
repetition_resistance 2.2 3 자동 (반복률 높음)

3.3 지연 시간

지표 값
Avg TTFT (ms) 16.7
P50 TTFT (ms) 15.8
P95 TTFT (ms) 26.2
Avg TPS 142.5
P50 TPS 142.7
P95 TPS 143.3

3.4 반복률 상세 (repetition_resistance)

Test ID Rep Rate Unique/Total N-grams Score
rep_01 73.76% 122/465 0.0
rep_02 59.72% 255/633 0.0
rep_03 46.70% 226/424 6.6
  • 원본 ORPO 평가 (HF 체크포인트, Greedy): 3-gram 반복률 30.89%, EOS 67%.
    Ollama Q4_K_M + 벤치마크 프롬프트에서는 반복이 더 두드러짐.

3.5 결과 파일 위치

  • JSON: eval/results/frankenstallm-3b-v2/ollama_benchmark_results.json
  • 요약 MD: eval/results/frankenstallm-3b-v2/ollama_benchmark_summary.md

4. 기존 ORPO 평가와의 연계

  • ORPO 종합 보고서: reports/2026-03-09_ORPO_EVALUATION_REPORT.md
  • 정량 스코어: 63.7/100, 7/10 차원 통과, 최종 판정 RETRY
  • v2 배포본은 동일 ORPO 체크포인트에서 byte-fallback만 수정·GGUF 변환한 버전이며,
    ORPO 지표(예: preference accuracy, reward margin)는 기존 보고서와 동일한 체크포인트 기준으로 유지됨.

5. 아티팩트 경로 정리

용도 경로
수정된 HF 체크포인트 outputs/hf_checkpoint-best-fixed/
F16 GGUF outputs/gguf/frankenstallm-3b-v2-f16.gguf
Q4_K_M GGUF (Ollama 배포용) outputs/gguf/frankenstallm-3b-v2-Q4_K_M.gguf
Ollama 벤치마크 결과 eval/results/frankenstallm-3b-v2/
Byte-fallback 수정 스크립트 scripts/fix_tokenizer_byte_fallback.py

이 보고서는 GGUF 변환·Ollama 배포 및 Ollama 벤치마크 결과를 정리한 문서입니다.