Skip to content

文件重點

資料準備 (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)

  1. Pre-training(base_train.py):以 scaling laws 決定 token 數量,Muon + AdamW 混合優化器
  2. SFT(chat_sft.py):監督式微調,資料混合 SmolTalk + MMLU + GSM8K + SpellingBee
  3. 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 風格的分佈式優化器狀態切分