42 lines
1.3 KiB
YAML
42 lines
1.3 KiB
YAML
# Korean LLM 1B parameters — BF16 기본 설정
|
||
# B200 × 8 GPU 최적화, GQA(4:1) + SwiGLU + RoPE(long-context)
|
||
#
|
||
# 아키텍처 계산:
|
||
# d_ffn = int(2/3 * 4 * 2048) = 5461 → 16배수 올림 = 5472 (FP8 alignment)
|
||
# 실제 파라미터 수 ≈ 12 * 24 * 2048^2 = 1,207,959,552 (~1.2B)
|
||
#
|
||
# 학습 설정:
|
||
# eff_batch = 4(bs) * 8(GPU) * 8(accum) * 4096(seq) = 1,048,576 토큰/스텝
|
||
# 200,000 스텝 × 1M tok = 200B 토큰 처리
|
||
model:
|
||
vocab_size: 64000
|
||
d_model: 2048
|
||
n_layers: 24
|
||
n_heads: 16
|
||
n_kv_heads: 4 # GQA: 4 KV 그룹, 16 쿼리 헤드 (4:1 비율)
|
||
d_ffn: 5472 # SwiGLU: int(2/3 * 4 * 2048)=5461 → 16배수=5472
|
||
max_seq_len: 4096
|
||
rope_theta: 500000.0 # Llama-3 스타일 고주파 외삽 (장문 컨텍스트)
|
||
dropout: 0.0
|
||
bias: false
|
||
use_flash_attn: true
|
||
use_fp8: false # BF16 기본; FP8은 korean_1b_fp8.yaml 참조
|
||
|
||
train:
|
||
max_steps: 200000
|
||
batch_size: 4 # per GPU: 4 × 4096 = 16,384 토큰
|
||
grad_accum_steps: 8 # eff_batch: 4 × 8GPU × 8 × 4096 = 1,048,576 tok/step
|
||
lr: 2.0e-4
|
||
weight_decay: 0.1
|
||
warmup_steps: 4000
|
||
max_grad_norm: 1.0
|
||
log_interval: 10
|
||
save_interval: 1000
|
||
eval_interval: 500
|
||
use_amp: true # BF16 mixed precision
|
||
compile_model: false
|
||
|
||
tokenizer:
|
||
vocab_size: 64000
|
||
type: sentencepiece_unigram
|