BF16

Bfloat16

腦浮點16位格式

詳細解釋

BFloat16(Brain Floating Point 16)的縮寫,Google Brain 開發的 16 位浮點格式,廣泛用於 AI 訓練,平衡精度和效率。

與 FP16 的對比:

  • BF16:8 位指數,7 位尾數(與 FP32 相同指數範圍)
  • FP16:5 位指數,10 位尾數(更高精度但更小範圍)

優勢:

  • 與 FP32 相同動態範圍:不易上溢/下溢
  • 無需損失縮放(Loss Scaling):FP16 需特殊處理防止梯度下溢
  • 硬件支持:TPU、NVIDIA Ampere+、Intel、AMD 都支持
  • 訓練穩定:大模型訓練比 FP16 更穩定

劣勢:

  • 精度低於 FP16:某些需要高精度的任務可能不足
  • 適用範圍:主要深度學習,其他科學計算可能不夠

應用現狀:

  • TPU:從設計就支持 BF16
  • NVIDIA:A100、H100、RTX 30/40 系列支持
  • 框架:PyTorch、TensorFlow、JAX 原生支持
  • 大模型訓練:Llama、GPT、Claude 等都用 BF16

與混合精度的關係:

  • 通常 BF16 前向/反向,FP32 主權重(Adam 優化器狀態)
  • 或純 BF16 訓練,速度更快

選擇指南:

  • 優先 BF16:除非特定任務需更高精度
  • 不確定時:從 BF16 開始,有問題再試 FP16/FP32

這是「AI 訓練效率」的關鍵—— 沒有 BF16,大模型訓練成本會高數倍。

探索更多AI詞彙

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