什麼是bfloat16

符號1位元、指數8位元、有效數7位元的16位元浮點格式。因指數與FP32相同,可表示的範圍廣,精度雖低但用於AI訓練。FP16為指數5位元、有效數10位元,精度高但範圍窄。

日文名稱: bfloat16

「bfloat16」出現在1領域的2道練習題中(電腦算術等)。

這個名詞所屬的領域: 電腦算術

練習bfloat16的題目

bfloat16主要被用於AI訓練的理由為下列何者?

  1. A因為指數部分與FP32相同為8位元,可表示的數值範圍廣
  2. B因為尾數部分比FP32長,精度高
  3. C因為可以用整數運算來計算
查看答案與解析

正確答案:A. 因為指數部分與FP32相同為8位元,可表示的數值範圍廣

bfloat16是由符號1位元、指數部分8位元、尾數部分7位元構成的16位元格式。由於指數部分與FP32相同,可表示的範圍幾乎一樣,即使是訓練中梯度這類非常小或非常大的值,也不易發生溢位或下溢,從FP32模型轉換過來也很簡單。精度雖然較低,但訓練對些許誤差有一定的容忍度,因此不易成為問題,並且能將資料量與運算單元的面積減半。尾數部分比FP32短,而且是以浮點數而非整數的運算來計算。

在AI的混合精度訓練中,大部分計算以FP16或bfloat16進行,同時以FP32保存權重的原始值(主權重,master weights),其主要理由為下列何者?

  1. A在將微小的更新量加到權重時,精度較低的格式會因資訊遺失而使更新消失
  2. B因為FP32比FP16計算更快,所以權重的計算全部交給FP32
  3. C因為規定FP16或bfloat16無法將權重的值儲存到記憶體中
查看答案與解析

正確答案:A. 在將微小的更新量加到權重時,精度較低的格式會因資訊遺失而使更新消失

在訓練中,會對權重反覆加上「學習率 × 梯度」這種非常小的值。FP16或bfloat16的尾數較短,若更新量相對於權重過小,相加的結果會因捨入而仍是原本的權重,使更新消失(資訊遺失)。因此權重以FP32保存,以正確累積更新,而前向與反向的計算則使用轉換為較低精度的副本。就計算速度而言是較低的精度比較快,而且較低精度的值也能儲存。

解析中的「bfloat16」

出現「bfloat16」的題目(2題)

  1. bfloat16主要被用於AI訓練的理由為下列何者?
  2. 在AI的混合精度訓練中,大部分計算以FP16或bfloat16進行,同時以FP32保存權重的原始值(主權重,master weights),其主要理由為下列何者?

相關名詞

混合精度(Mixed precision) 更新(Refresh) 資訊遺失(Absorption) 布斯演算法(Booth's algorithm) 先行進位加法器 有效位數損失(Catastrophic cancellation) 有效數(Significand) 定點數 非正規化數 指數欄位

前往名詞解釋列表