混合精度訓練(Mixed Precision Training)是什麼?

混合精度訓練是一種使用不同精度(如 FP16 和 FP32)的浮點數進行模型訓練的技術,旨在加速訓練過程並減少記憶體佔用。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

混合精度訓練(Mixed Precision Training)是什麼? 深度學習模型訓練

你有沒有碰過 GPU 記憶體不夠,模型一放大就爆掉的情況?

你可以把混合精度訓練想成,訓練時一部分用高精度、一部分用低精度,藉此省記憶體又加快運算。 它重要在於,大模型訓練常常卡在速度和顯存,這招可以同時改善兩邊。

你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。

容易混淆

混合精度訓練 vs 全精度訓練

混合精度訓練:同時使用 FP16、BF16 或 FP32。 全精度訓練:大多數運算都維持在較高精度。 最關鍵的區別:前者更省資源,後者更穩但更吃記憶體。

混合精度訓練 vs 模型量化

混合精度訓練:多發生在訓練過程。 模型量化:多發生在部署或壓縮階段。 最關鍵的區別:前者是訓練策略,後者是模型轉換策略。

記住這句就好

訓練時先省一部分精度,換速度和顯存。

實際案例

訓練大型語言模型

同一張 GPU 能裝下更多參數和 batch,訓練速度也常比全精度更快。

影像模型微調

原本跑不動的大 batch,開混合精度後可以順利訓練,還能保住大部分準確率。

算法與應用

常見做法是用低精度做矩陣乘法,用高精度保護累加和關鍵更新。 動態 loss scaling 常用來避免梯度下溢。 在現代 GPU 上,它幾乎是大模型訓練的標配技巧。

情境判斷

Q1(情境題): 如果開了混合精度後,模型突然不穩,該怎麼看?

→ 先檢查 loss scaling、數值下溢和不支援的算子,有些層可能還是要保留較高精度。

Q2(情境題): 混合精度訓練一定會讓準確率掉很多嗎?

→ 通常不會,正確設定下多半能維持接近的效果,同時節省資源。

常見問題

混合精度訓練只適合 GPU 嗎?

主要是,但概念上也可以延伸到其他支援低精度運算的硬體。

它和量化訓練一樣嗎?

不一樣。混合精度訓練是混著用不同精度,量化訓練則更像把數值壓到更低位元表示。

為什麼它能提速?

因為低精度運算通常更快、資料搬移更少,GPU 吞吐也會更高。