混合精度

Mixed Precision

FP16與FP32混合訓練

詳細解釋

混合精度(Mixed Precision)是結合FP32(單精度)和FP16(半精度)的訓練技術,加速計算、減少記憶體,同時保持模型準確性。

為何使用:

  • 速度:FP16 Tensor Core比FP32快2-8倍(NVIDIA (與 AI 硬體/軟體) GPU)
  • 記憶體:FP16佔用一半記憶體,可訓練更大模型或使用更大批次
  • 能耗:減少數據移動和計算能耗

挑戰與解決:

  • 精度損失:FP16動態範圍小(5.96e-8 到 65504),容易下溢/上溢
  • 解決方案:
  • Loss Scaling:損失乘以比例因子,梯度反向傳播時還原
  • FP32 Master Weights:權重以FP32存儲,計算時轉FP16
  • 動態損失縮放:自動調整比例因子

實現方式:

什麼保持FP32:

  • 權重更新:累積小梯度需要高精度
  • Loss Scaling統計:計算縮放因子
  • 批量正規化統計:均值和方差計算

使用建議:

  • 現代GPU必備:V100、A100、RTX系列支援Tensor Core
  • 自動混合精度:推薦使用框架自動功能
  • 梯度累積:結合使用模擬大批次
  • 檢查收斂:監測損失確保穩定

應用:

混合精度是現代深度學習訓練的標準實踐。

探索更多AI詞彙

查看所有分類,繼續學習AI知識