AI LAB / KEYWORD DICTIONARY

基礎知識

BF16(BFloat16形式)とは?

Brain Floating Point 16-bit

BF16(bfloat16)は、機械学習向けの16ビット浮動小数点形式です。FP32と同じ指数部の幅を持ち、広い数値範囲を保ちながら、計算量やメモリ使用量の削減に利用されます。

仕組みと使いどころ

BF16は、符号部1ビット、指数部8ビット、仮数部7ビットで数値を表します。指数部はFP32と同じ8ビットのため、表現できる数値の範囲はFP32と同等ですが、仮数部が短いため数値の精度は低くなります。深層学習では、行列演算の乗算にBF16、加算結果の蓄積にFP32を使う混合精度計算などに用いられます。データ量を抑えられる一方、すべての計算やモデルでFP32と同じ結果が保証されるわけではありません。また、BF16では非正規化数がゼロとして処理される点もFP32と異なります。

BF16の活用例

たとえば、こんな場面で

深層学習モデルの学習で、活性値をBF16に変換し、重みや勾配をFP32のまま保持する使い方が考えられます。対応するTPUでは、行列乗算をBF16、累積をFP32で実行する構成も利用できます。

使うときのポイント

利用前に、使用するハードウェアとソフトウェアがBF16に対応しているか確認します。モデルへの影響は一律ではないため、FP32での基準実行と結果を比較することが重要です。

参考資料

BFloat16: The secret to high performance on Cloud TPUs | Google Cloud Blog (新しいタブで開きます)

用語の説明や活用例に関連する参考資料です。

READ & LEARN

用語を知ったら、活用を知る。

AI LABで、AIの動向や業務に取り入れるヒントを読む。

記事一覧を見る