編輯|冷貓
眾所周知,大模型訓練成本極高。
但大家又知道,降低訓練精度能夠顯著降低訓練成本。DeepSeek-V3 用 FP8 訓練把成本打到了 560 萬美元,已經讓全行業側目。
在 FP8 成功后,行業仍然在不斷探索低精度的邊界:從 FP8 降到 FP4,訓練成本還能再降多少?
理論上,FP4 的計算吞吐可以是 FP8 的兩倍。NVIDIA Blackwell 和 AMD MI350 系列都已經在硬件層面原生支持了 FP4 運算,前者在 B200 上標稱 FP4 算力可達 4500 TOPS(稀疏)。硬件已經準備好了,但軟件和算法那一側,一直卡在一個問題上:
用 FP4 從頭訓練大模型,訓練過程非常不穩定。
過去兩年里,LLM-FP4、NVFP4 預訓練等工作陸續嘗試了這條路,但鮮有方案能在 4 比特精度下干凈利落地跑通全流程預訓練,同時保持接近 FP8 的收斂質量。
更棘手的是,崩潰的原因一直不清楚,分析認為,FP4 訓練不穩定的原因很可能來自隨機性不足。
但就在最近,AMD 聯合賓夕法尼亞州立大學發布了一篇論文,顛覆了傳統的認知,為原生 FP4 訓練給出了一個全新的清晰診斷。
![]()
- 論文標題:Pretraining large language models with MXFP4 on Native FP4 Hardware
- 論文鏈接:https://arxiv.org/abs/2605.09825
這篇論文在 AMD Instinct MI355X GPU 上,用 MXFP4 格式完成了 Llama 3.1-8B 的全流程預訓練,端到端訓練速度比 FP8 基線快 9-10%,token 開銷僅多 8-9%。這是目前第一個在原生 FP4 硬件(非軟件模擬)上完成大模型預訓練的完整實驗。
更重要的是,論文揭示了核心問題:FP4 訓練的不穩定性的來源不是隨機性不足,是結構性微縮放誤差沿敏感梯度路徑累積放大。
MXFP4 是什么
在拆解論文之前,有必要先理解 MXFP4 這個數據格式。
傳統的整數量化通常對整個張量使用一個縮放因子。MXFP4 的核心設計叫「微縮放」(Micro-scaling):把一個張量切成小塊(比如每 32 個元素一組),為每個小塊分配一個共享指數(E8M0 格式),塊內的每個元素用 4 比特浮點數表示。重建公式可以寫成:
![]()
其中 E_shared 是塊內最大指數,Q_FP4 是最近舍入到 4 比特浮點可表示值。
微縮放的好處在于:每個小塊有自己的動態范圍,不會被全局異常值「綁架」。這讓 4 比特浮點數的表示質量比樸素的全局量化好很多。
但即便有了微縮放,FP4 訓練依然不穩定。
排查實驗:不穩定的根源
研究團隊先設計了一個逐步排查的控制實驗。
一次完整的 Transformer 線性層計算,涉及三個通用矩陣乘法操作:
- Fprop(前向傳播):計算 Y = XW^T,產出激活值
- Dgrad(激活梯度):計算 ?X = ?Y · W,將梯度回傳給輸入
- Wgrad(權重梯度):計算 ?W = (?Y)^T · X,產出用于更新權重的梯度
研究團隊保持其他所有因素不變,逐步把這三個操作從 FP8 替換成 MXFP4,觀察每一步對收斂的影響。所有實驗都在 AMD Instinct MI355X 上用原生 FP4 tensor core 執行,不依賴軟件模擬。
訓練任務是 MLPerf 標準設置,在 C4 數據集上預訓練 Llama 3.1-8B,收斂目標是驗證集困惑度達到 3.3。
前兩步只帶來了溫和的額外 token 開銷,但一旦把 Wgrad 也換成 MXFP4,開銷直接跳到 26-27%。
Wgrad 是 FP4 訓練的瓶頸所在。前向傳播和激活梯度對 FP4 量化有相當的容忍度,但權重梯度一旦被量化到 4 比特,收斂質量就出現了顯著退化。
業界此前的主流直覺是:FP4 量化誤差本質上是噪聲問題,因此可以通過注入隨機性來「平滑」誤差分布。兩種常見策略是:
- 隨機舍入(Stochastic Rounding):在量化時引入隨機性,使舍入誤差的期望值為零
- 隨機 Hadamard 旋轉(Randomized Hadamard):在量化前用帶隨機符號翻轉的 Hadamard 變換打散數據分布
![]()
當 Wgrad 被量化后,兩種隨機性策略不僅沒有穩定訓練,反而直接導致了不收斂。隨機性非但沒有幫忙,還在關鍵的梯度路徑上引入了更多有效量化誤差。
相比之下,確定性 Hadamard 旋轉一把將全流程 token 開銷從 26-27% 壓回到 8-9%,訓練軌跡緊密跟蹤 FP8 基線。
這是一個非常有診斷價值的結果。隨機和確定性 Hadamard 旋轉都是正交變換,都能打散異常值的能量分布,理論上對量化誤差的緩解效果應該類似。但它們在 Wgrad 場景下的表現截然相反,這揭示了問題的本質:
FP4 訓練的不穩定性,是由 MXFP4 微縮放在敏感梯度路徑上產生的結構性誤差驅動的。隨機性策略失敗是因為它們在每一步引入了不同的誤差模式(pattern),而這些變化的誤差模式沿梯度路徑累積,反而放大了不穩定性。確定性旋轉之所以有效,恰恰因為它在每一步施加相同的變換,讓誤差模式保持一致,避免了誤差累積。
端到端效率:訓練步吞吐 +20%,綜合加速 9-10%
把確定性 Hadamard 旋轉加上全流程 MXFP4 之后,效率數據如下:
![]()
訓練步吞吐提升了 20%,扣掉多出的 8-9% token 開銷之后,端到端綜合加速仍有9-10%。
考慮到這是把精度從 8 比特直接砍到 4 比特,這個收斂質量和加速幅度都相當可觀。
![]()
左圖:在 C4 數據集上進行 MLPerf 預訓練時,Llama 3.1–8B 的驗證困惑度隨訓練 token 數變化的曲線。結果顯示,MXFP4 + 確定性 Hadamard 與 FP8 的表現非常接近,而未進行穩定化處理的全流程 MXFP4 收斂速度更慢,訓練穩定性也更差。右圖:訓練后期的局部放大視圖。MLPerf 的目標困惑度為 3.3。與未穩定化的 MXFP4 運行相比,確定性 Hadamard(H16)能夠與 FP8 基線保持更緊密的一致性。
值得注意的是,作者在論文中明確強調了一項重要限制:這套 FP4 訓練方案(MLPerf C4 數據集 + Llama 3.1-8B)的效果已經得到驗證,但不能直接假設它能無縫遷移到所有模型、所有數據集和所有訓練方法。FP4 訓練的行為可能是高度設置依賴的,具體的穩定策略需要根據場景重新驗證。
結語
把這篇論文放到更大的產業脈絡里,至少有三層意義。
第一層:它回答了一個根本性的「為什么」。過去的 FP4 訓練工作大多聚焦于「怎么讓它不崩」,這篇論文第一次給出了清晰的因果診斷:崩潰源于 Wgrad 路徑上的結構性微縮放誤差,而非隨機性不足。這個診斷本身就具有方法論價值,它告訴后續研究者:在低精度訓練中遇到不穩定性時,應該優先排查結構性誤差源,而非盲目增加隨機性。
第二層:它把 FP4 從「推理專屬」推向了「訓練可用」。此前行業共識是 FP4 只適合推理量化,訓練至少要用 FP8。NVIDIA 在 Blackwell 上主推 FP4 推理而非訓練,也反映了這一判斷。這篇論文在原生 FP4 硬件上跑通了全流程預訓練,意味著 MI355X 和 Blackwell 上那些為推理準備的 FP4 算力,理論上也可以用來訓練。如果 FP4 訓練在更大模型和更多場景上被驗證可行,等于現有硬件的可用訓練算力直接翻倍。
第三層:它使用了 OCP 開放標準。MXFP4 是 OCP Microscaling 格式標準的一部分,背后有 AMD、NVIDIA、Intel、Meta、Microsoft、Arm、Qualcomm 七家公司聯合支持。基于開放標準意味著這套方法在不同廠商的硬件上都有可移植性,不會被鎖定在單一生態里。
從 FP16 到 FP8,DeepSeek-V3 已經證明精度減半可以大幅降低訓練成本。從 FP8 到 FP4,這篇論文邁出了關鍵的第一步。精度每砍一刀,整個大模型訓練的經濟性都在發生轉變。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.