Appearance
文件重點
資料準備 (Data Preparation)
- 預訓練資料集:ClimbMix-400B(NVIDIA),取代原本的 FineWebEdu-100B
- 以 Parquet 格式儲存,最後一個 shard 保留給 validation
- BOS-aligned best-fit packing:每個 row 以 BOS 開頭,文件用 best-fit 演算法打包,100% 利用率(~35% tokens 被裁切)
Tokenizer
- GPT-4 風格的 BPE tokenizer,詞彙量 32K
- 特殊 tokens:
<|bos|>,<|user_start|>,<|assistant_end|>,<|python_start|>等 - 兩套實作:HuggingFace Tokenizer(訓練+推論)與 RustBPE + tiktoken(訓練+高效推論)
- 支援
render_conversation()將對話結構轉為 tokens + mask
模型架構 (Model Architecture - GPT)
- GPT transformer,使用 Rotary Position Embeddings(取代絕對位置編碼)
- QK Normalization + Group-Query Attention (GQA)
- ReLU² activation in MLP
- Sliding Window Attention(支援 SSL 等交替模式)
- Flash Attention 3 整合(Hopper GPU)
- ResFormer-style Value Embeddings + Smear(前一 token 混合)+ Backout(中層殘差減法)
訓練階段 (Training Stages)
- Pre-training(base_train.py):以 scaling laws 決定 token 數量,Muon + AdamW 混合優化器
- SFT(chat_sft.py):監督式微調,資料混合 SmolTalk + MMLU + GSM8K + SpellingBee
- RL(chat_rl.py):基於 GRPO/REINFORCE 的強化學習(無 KL 正則化、無 PPO ratio/clip)
損失函數與評估
- Pre-train:cross-entropy loss(bits per byte)
- CORE metric:DCLM 論文定義的綜合分數
- ChatCORE:SFT 後的綜合評估(ARC、MMLU、GSM8K、HumanEval、SpellingBee)
- Pass@k:RL 階段的 GSM8K 正確率
優化器
- Muon(矩陣參數):SGD-momentum + Polar Express 正交化 + 方差正規化
- AdamW(embedding/scalar 參數):fused kernel,分組學習率
- 支援 ZeRO-2 風格的分佈式優化器狀態切分