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