新聞中心

FP8 大型語言模型訓練:效能優勢、除錯方法與評估重點 NEWS DETAIL

當前位置:首頁 > 新聞中心
資訊分類 · 新聞中心 作者 · 中科新遠內容團隊 審核人 · 中科新遠技術內容組 發佈時間 · 2025-02-05 更新時間 · 2026-08-07 來源 · 原頁面資料;原廠資訊待核驗
FP8 大型語言模型訓練:效能優勢、除錯方法與評估重點

FP8 可用於大型語言模型訓練,以降低計算與記憶體資料量,但是否能穩定取代或部分取代 BF16,仍須以特定模型、資料集、軟體版本與訓練配方驗證。來源指出,在支援 FP8 的新一代 GPU 上,對矩陣乘等計算密集型算子,NVIDIA TensorCores 的 FP8 峰值效能可為 BF16 的兩倍、TF32 的四倍;對訪存密集型算子,較小的資料量亦可能減輕訪存壓力。不過,FP8 的動態範圍與精度較 FP16、BF16、FP32 小,訓練團隊必須同時評估收斂、量化誤差及下游任務結果。

FP8 要解決的訓練問題與適用情境

大型模型訓練中的矩陣乘算子通常具有高計算需求,而張量讀寫亦可能成為瓶頸。FP8 透過較低精度表示,目標是在支援的硬體與軟體堆疊中縮短計算密集型算子的時間,並減少資料搬移量。若部署端也規劃採用低精度推論,FP8 訓練可作為串接低精度訓練與推論流程的一項評估路徑。

它較適合已有 BF16 基線、能持續觀察 Loss 與下游指標,並可進行分層回退測試的團隊。若模型對數值精度高度敏感、訓練流程尚未建立可重現的 BF16 基線,或推論端無法確認 FP8 張量與縮放參數的處理方式,應先完成基線與相容性驗證,再擴大 FP8 使用範圍。

訓練中常見的三類訊號

第一類是 Loss Spike。這不是 FP8 特有現象,BF16 訓練也可能出現。若 FP8 的 Spike 與 BF16 類似,可先視為通用訓練問題;若 FP8 發生更頻繁,或需多次迭代才能恢復,則應進一步檢查 FP8 設定與數值行為。

第二類是 Loss 上升或發散。若在訓練一開始即發散,來源建議先排查軟體問題,並使用 NVIDIA NeMo、Mcore(Megatron Core)或 TE(Transformer Engine)的適用版本。若設定啟用了 CPU offloading、FP8 parameters 等新增功能,可先關閉後比對。對數值問題,可測試以 FP8 tensor 作為輸入、但使用 BF16 GEMM 的路徑;若問題在訓練中期出現,則可評估 current scaling,或將部分層回退至 BF16。來源特別提到首層與末層可能較敏感,但其效果仍應在目標模型與資料上測試確認。

第三類是 Loss 正常、下游任務卻低於 BF16 基線。此時應先確認推論流程是否讀取正確的 scaling factor 與 weight。若只有部分任務落後,可調整 FP8 recipe 或對特定層採用 BF16 fallback;若訓練使用 FP8、推論改用 BF16,則需評估額外誤差,並比較 FP8 訓練搭配 FP8 inference 的結果。

FP8 Debug 工具可觀察的內容

來源描述的 FP8 Debug 工具用於分析訓練狀態,並稱可與 NVIDIA NeMo Megatron 的不同版本搭配使用,且不需修改框架內部程式碼。工具可記錄 BF16 與 FP8 間的 MSE餘弦相似度,以觀察量化誤差;也可統計 Tensor 的 UnderflowOverflow 比例,協助判斷較小動態範圍是否造成精度問題。

此外,工具可比較 Delayed Scaling 的 Scaling Factor 與依目前 Tensor 計算的 Current Scaling,並依層與 Tensor 名稱動態選擇 Dump 對象。可觀察的資料包括 forward 的 GEMM input、weight,以及反向傳播的 Dy,並以週期性輸出比較不同 step 的 AMin、AMax、縮放因子與量化誤差。來源中的內部構造案例顯示,訓練發散案例在部分 forward X 張量上出現較高 MSE 與 Underflow 比例;這類結果可協助團隊定位應調整縮放策略或回退至 BF16 的候選層,但不應視為所有模型皆適用的閾值。

建議的評估與導入路徑

  1. 以既有 BF16 訓練流程建立可重現基線,記錄 Loss 曲線、訓練步數與下游任務分數。
  2. 在相同模型、資料集與主要超參數下啟用 FP8,先比較是否出現早期發散、異常 Spike 或中期 Loss 上升。
  3. 針對異常 step 與層級張量,檢查 MSE、餘弦相似度、Underflow、Overflow、AMin、AMax 與縮放因子差異。
  4. 依觀察結果測試關閉新增功能、調整 scaling 策略、改用 BF16 GEMM,或將敏感層回退至 BF16。
  5. 以完整推論流程驗證下游任務,確認 weight 與 scaling factor 的讀取方式,並比較 FP8 inference 與 BF16 inference。

FP8 Debug 工具在來源發布時仍處於內部測試階段。其實際取得方式、支援範圍、版本相容性與使用條件,應向對接的 NVIDIA 技術團隊確認,並以當時的正式文件與專案測試結果為準。

常見問題

FP8 訓練出現 Loss Spike,是否代表必須停用 FP8?

不一定。Loss Spike 也可能在 BF16 中發生,應先以 BF16 基線比較頻率、幅度與恢復情況。若 FP8 的異常更頻繁或恢復明顯較慢,再檢查軟體版本、訓練設定、縮放策略及特定層的量化狀態。

Loss 正常但下游任務成績較差,應先檢查什麼?

先確認推論流程是否使用正確的 scaling factor 與 weight,並確認訓練和推論精度組合。之後可檢查是否僅部分任務或部分層受影響,再測試 current scaling、部分層 BF16 fallback,或 FP8 訓練搭配 FP8 inference。

結論

FP8 為大型語言模型訓練提供降低計算與資料搬移負擔的選項,但導入重點不在於單一峰值效能數字,而在於以 BF16 基線、Loss 行為、張量級量化指標與下游任務結果共同驗證。對模型、資料集、硬體、NeMo、Mcore、TE 版本與推論流程的適用性,均應以完整 SKU/BOM、正式技術文件及專案測試確認。

圍繞「FP8 大型語言模型訓練:效能優勢、除錯方法與評估重點」繼續瞭解 採購與選型問答