AI專題

混合精度訓練解密:FP16、bfloat16 到 FP8 如何兼顧速度與準確度

E
EffectStory 編輯部編輯部
發布 · 更新
混合精度訓練結合不同數值精度以兼顧速度與準確度:保留一份 FP32 權重副本維持準確度,以半精度將記憶體消耗降低近 2 倍,並靠 Tensor Cores 讓吞吐量達單精度的 8 倍;精度壓縮並延伸至 8 位元 FP8 的 E4M3 與 E5M2 兩種編碼。

什麼是混合精度訓練,它如何節省記憶體?

混合精度訓練是在同一運算方法中結合多種數值精度以兼顧速度與記憶體效率CITE:E1。NVIDIA 官方文件將混合精度定義為「在同一計算方法中結合使用不同的數值精度」CITE:E1。Micikevicius 等人於 2017 年 10 月 10 日發表在 arXiv 的論文則指出,採用半精度訓練這套方法,可將深度學習模型的記憶體消耗減少近 2 倍CITE:E3

混合精度訓練如何在保留 FP32 精度的同時加速運算?

該論文建議保留一份單精度權重副本以維持準確度CITE:E2。論文原文寫道:「我們建議維持一份單精度的權重副本,在每次優化器更新後累積梯度」CITE:E2——也就是訓練中大部分運算改用低精度,但仍以一份 FP32 主權重副本累積梯度更新,避免精度流失。加速則來自硬體層:NVIDIA 官方文件指出,Volta 世代 GPU 引入的 Tensor Cores,其運算吞吐量是單精度運算管線的 8 倍CITE:E4

16 位元浮點格式的選擇:bfloat16 相比 FP16 的動態範圍優勢是什麼?

bfloat16 由 1 個符號位元、8 個指數位元與 7 個尾數位元組成CITE:E5。Google Cloud 於 2019 年 8 月 24 日發布的說明指出,bfloat16 是一種為機器學習設計的客製 16 位元浮點格式,由 1 個符號位元、8 個指數位元、7 個尾數位元組成CITE:E5。同一份說明也指出,bfloat16 的動態範圍(即指數位元數)比 FP16 更大CITE:E6

8 位元浮點(FP8)交換格式如何進一步實現極限壓縮?

Micikevicius 等人於 2022 年提出 FP8 交換格式,包含 E4M3 與 E5M2 兩種編碼CITE:E7。這篇論文於 2022 年 9 月 12 日發表在 arXiv,提出一種 8 位元浮點(FP8)二進位交換格式:E4M3 由 4 位元指數與 3 位元尾數組成;E5M2 則由 5 位元指數與 2 位元尾數組成CITE:E7

關鍵數字對照

項目數值來源
半精度訓練記憶體消耗減少近 2 倍CITE:E3
Volta Tensor Cores 吞吐量單精度運算管線的 8 倍CITE:E4
bfloat16 位元組成1 符號位元 + 8 指數位元 + 7 尾數位元(共 16 位元)CITE:E5
FP8 E4M3 編碼4 位元指數 + 3 位元尾數CITE:E7
FP8 E5M2 編碼5 位元指數 + 2 位元尾數CITE:E7

這代表什麼:從 NVIDIA 對混合精度的定義,到半精度訓練記憶體減少近 2 倍、Tensor Cores 吞吐量達單精度 8 倍的實測數字,再到 bfloat16 以 1+8+7 位元換取比 FP16 更大的動態範圍,最後延伸到 FP8 的 E4M3、E5M2 兩種編碼,證據呈現的是一條漸進的精度壓縮路徑:32 位元到 16 位元、再到 8 位元,每一步都有明確的位元配置與硬體吞吐量數字支撐,但論文同時強調保留一份 FP32 主權重副本累積梯度CITE:E2,顯示精度壓縮與準確度維持並非互斥,而是靠這道保險機制並存。

📊 證據與數據

常見問題

什麼是混合精度訓練,它如何節省記憶體?

混合精度訓練是在同一運算方法中結合多種數值精度以兼顧速度與記憶體效率CITE:E1。NVIDIA 官方文件將混合精度定義為「在同一計算方法中結合使用不同的數值精度」CITE:E1。

混合精度訓練如何在保留 FP32 精度的同時加速運算?

該論文建議保留一份單精度權重副本以維持準確度CITE:E2。論文原文寫道:「我們建議維持一份單精度的權重副本,在每次優化器更新後累積梯度」CITE:E2——也就是訓練中大部分運算改用低精度,但仍以一份 FP32 主權重副本累積梯度更新,避免精度流失。

16 位元浮點格式的選擇:bfloat16 相比 FP16 的動態範圍優勢是什麼?

bfloat16 由 1 個符號位元、8 個指數位元與 7 個尾數位元組成CITE:E5。Google Cloud 於 2019 年 8 月 24 日發布的說明指出,bfloat16 是一種為機器學習設計的客製 16 位元浮點格式,由 1 個符號位元、8 個指數位元、7 個尾數位元組成CITE:E5。

8 位元浮點(FP8)交換格式如何進一步實現極限壓縮?

Micikevicius 等人於 2022 年提出 FP8 交換格式,包含 E4M3 與 E5M2 兩種編碼CITE:E7。

📎 資料來源

  1. docs.nvidia.com
  2. arxiv.org
  3. cloud.google.com
  4. arxiv.org

延伸數據

作者觀點EffectStory 編輯部

把證據放在一起看,精度壓縮的關鍵瓶頸不是運算吞吐量,而是數值穩定度:Tensor Cores 已把吞吐量拉到單精度的 8 倍,但論文仍堅持保留一份 FP32 權重副本累積梯度,顯示低精度運算本身不足以撐住訓練穩定性。bfloat16 用指數位元換取比 FP16 更大的動態範圍,FP8 的 E4M3 與 E5M2 則把精度與範圍的取捨攤開成兩種編碼。值得觀察的指標是:FP32 主權重副本這道保險,未來是否會被進一步壓縮。

E
EffectStory 編輯部編輯部

相關文章

快訊

中央社MCP正式上線:台灣首個新聞用「AI的USB-C」如何運作

中央社於2026年8月31日推出台灣首個新聞用模型上下文協定工具「AskCNA」,整合近500萬則新聞稿、350萬張照片與150個政府機關公開資料,月訂閱新台幣200元,供Claude、ChatGPT、Grok等AI平台即時查證且強制標註出處。

EffectStory 編輯部 ·