Files
frankenstallm/source/configs/3b_pretrain.yaml
ModelHub XC d4abdb70fa 初始化项目,由ModelHub XC社区提供模型
Model: pathcosmos/frankenstallm
Source: Original Platform
2026-07-14 04:21:16 +08:00

61 lines
2.4 KiB
YAML
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.

# Korean LLM 3B parameters — FP8 (B200 TransformerEngine MXFP8)
#
# [아키텍처 근거 — 2026-02-27]
# - 저스티스리그 제안 기반: d_model=2560, 32L, 32H, 8KV
# - 파라미터: ~2.39B ("3B급" — Llama-3.2-3B 대비 경량, 한국어 64K vocab 효율)
# - d_ffn=6912: 2.7×d_model, 16배수 FP8 정렬
# - GQA 4:1 (32H:8KV) — 추론 효율 + KV cache 절약
# - head_dim=80 (2560/32) — Flash Attention 효율적
#
# [데이터/학습 설계]
# - 데이터: korean_train.bin 8.91B tokens
# - Chinchilla 최적: 2.4B × 20 = 48B tokens
# - 실제 목표: 60B tokens (6.7 에포크) — 한국어 단일 언어 특성상 추가 학습 유리
# - max_steps 57000 = 60B tokens / 1,048,576 tok/step
#
# [GPU 메모리 예측 — 8× B200 183GB]
# - 모델 FP8: 2.4 GB
# - Optimizer (bf16 master + fp32 mom/var): 23.9 GB
# - Gradient (bf16): 4.8 GB
# - Activation (per GPU, bs=8): ~27 GB
# - 합계: ~58 GB/GPU (31.7% 활용) → 여유 충분
#
# 실행: bash scripts/launch_korean_3b.sh
# 테스트: RUN_NAME=korean_3b_test bash scripts/launch_korean_3b.sh --max_steps 50
model:
vocab_size: 64000
d_model: 2560
n_layers: 32
n_heads: 32
n_kv_heads: 8 # GQA 4:1 (K/V 파라미터 75% 절감)
d_ffn: 6912 # 2.7×d_model, 16배수 (FP8 alignment)
max_seq_len: 4096
rope_theta: 500000.0
dropout: 0.0
bias: false
use_flash_attn: true
use_fp8: true # TransformerEngine MXFP8BlockScaling (B200 네이티브)
train:
# 57k steps × 1,048,576 tok/step = 59.8B tokens ≈ 6.7 에포크
max_steps: 57000
batch_size: 4 # per GPU: 4 × 4096 = 16,384 토큰 | VRAM ~130 GB (183GB의 71%)
grad_accum_steps: 8 # eff_batch: 4 × 8GPU × 8 × 4096 = 1,048,576 tok/step
lr: 1.5e-4 # 3B 규모: GPT-3 scaling 기준 1B(2e-4) → 3B(1.5e-4)
weight_decay: 0.1
warmup_steps: 2000 # 57k steps의 3.5% — 안정적 warmup
max_grad_norm: 1.0
log_interval: 10
save_interval: 1000 # 57k steps 기준 ~57 체크포인트
eval_interval: 500 # val loss 모니터링
use_amp: false # fp8_autocast가 대체
compile_model: false # TE 2.10 + DDP graph break 위험
fp8_amax_history_len: 16
fp8_amax_compute_algo: "max"
fp8_format: "MXFP8" # B200 Blackwell 네이티브 블록 스케일링
tokenizer:
vocab_size: 64000
type: sentencepiece_unigram