NVIDIA 喺 10 月 6 日嘅技術博文出咗一個工程問題嘅解法:點樣喺大規模 pretraining(大模型預訓練)做到 bitwise determinism(逐 bit 確定性),即同一配置、同一初始狀態嘅兩次運行,每一步嘅梯度同參數喺二進制層面完全一致。呢個喺 trillion 參數(萬億級參數)模型、千張 GPU 規模嘅訓練環境特別重要,因為多維並行、低精度運算、分散式 checkpointing 摞埋一齊,任何一步嘅細微波動都查唔到邊度出錯。

NVIDIA 指生產級同 hero run(重點訓練)昂貴且要強有保證,bitwise determinism 提供四個用途:復現同一 step 嘅 loss 突刺逐個組件排查、中斷後 resume 而唔改變數值軌跡、用本來應一致嘅兩條 run 之間嘅 mismatch 去查明 checkpoint 損壞或者軟件硬件問題、將刻意改動嘅數值影響同 run 與 run 之間嘅自然差異分開。

Megatron Core 目標鎖定兩條保證:獨立可重現(由同一初始狀態開兩條 run,每一步 bitwise 相同)同 checkpoint 接力同無中斷 run 一致(存過幾個 checkpoint 再恢復,同冇停過嘅 run 數值上保持相同)。

點樣驗證「兩條 run 真係同一條」

博文明確,只睇打落嚟嘅 loss 值唔夠:兩條 run 可以打出同一個四捨五入嘅 loss,但低階 bit 嘅梯度或參數已經唔同。強一級嘅做法係每一步對選定指標做 fingerprint,包括 training loss、language-modeling loss、load-balancing loss、multi-token prediction(MTP,即一次預測多個 token)loss,以及 gradient norm;跑同一配置兩次,逐 step 比對 fingerprint,第一個 mismatch 嘅位置就可以收窄排查範圍。

喺 trillion 參數 Nemotron 案例中,NVIDIA 指 checkpoint 路徑會保留 full-precision 嘅 source of truth,並經訓練時同一條 conversion path 重建 runtime 表示。博文提到 Megatron-LM PR #7262 提出嘅排查流程:先確認 seed、data order、batch size、parallelism、container 同 software stack 全部一致,錄下每個 rank 嘅 ordered tensor fingerprint 俾離線比對;排查範圍由 end-to-end 逐層收窄,由 training iteration 到 phase、module、operation、kernel。

工程現實

文章亦點明:trillion 參數規模下,哪怕 tiny slowdown 都係千張 GPU-day 嘅成本,所以 deterministic 訓練必須同時高效。非確定性喺大規模環境可以係間歇性或者 topology-dependent,而 loss 明顯走樣往往發生喺第一個不同 bit 出現後好耐之後。

模姐驗嚇貨:呢篇係廠商技術博文,冇獨立第三方重現,NVIDIA 就係被驗收嘅當事人。bitwise determinism 唔係新概念,NVIDIA 今次提供嘅係喺 Megatron Core 上嘅完整實施同排查方法論,Nemotron 案例同 PR #7262 嘅工作流程對任何用類似多維並行架構嘅團隊都有參考價值。呢個機制對訓練透明性嘅意義,大於對單一產品嘅意義。

模姐|深度調教