計算機算術

bfloat16がAIの学習で使われる主な理由はどれか。

  1. A指数部がFP32と同じ8ビットで、表せる数の範囲が広いから
  2. B仮数部がFP32より長く、精度が高いから
  3. C整数演算で計算できるから
答えと解説を見る

正解:A. 指数部がFP32と同じ8ビットで、表せる数の範囲が広いから

bfloat16は符号1ビット、指数部8ビット、仮数部7ビットの16ビット形式です。指数部がFP32と同じなので表せる範囲がほぼ同じで、学習中の勾配のような非常に小さい値や大きい値でもオーバーフローやアンダーフローを起こしにくく、FP32のモデルからの切り替えも簡単です。精度は低いものの、学習は多少の誤差に強いので問題になりにくく、データ量と演算器の面積を半分にできます。仮数部はFP32より短く、整数ではなく浮動小数点の演算で計算します。

  • A. 正しい。指数部がFP32と同じで、範囲が広いからです。
  • B. 仮数部はFP32の23ビットより短い7ビットです。
  • C. 整数ではなく浮動小数点の演算で計算します。
この分野を解く 分野ページへ

計算機算術のほかの問題

  1. FP16(半精度:符号1・指数部5・仮数10ビット)でニューラルネットワークを学習させるときに問題になりやすく、損失の値を何倍かに拡大して計算する工夫(ロススケーリング)で対策するのはどれか。
  2. FP16(符号1・指数部5ビット(バイアス15)・仮数10ビット)で表せる最大の有限の値はいくらか。
  3. FP8の2つの形式、E4M3(指数部4・仮数3ビット)とE5M2(指数部5・仮数2ビット)の使い分けとして一般的なものはどれか。
  4. AIの推論で、重みをFP32からINT8に変換(量子化)する主な利点はどれか。
  5. 値の範囲が −6.35〜6.35 のデータを、0を中心にした対称なINT8(−127〜127)に量子化する。スケールを「最大の絶対値 ÷ 127」とすると、1.0 はどの整数で表されるか。