# 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