定義
bfloat16(BF16)とは、指数部をFP32と同じ8ビット確保し仮数部を7ビットのみにした16ビット浮動小数点形式のこと。
bfloat16 (BF16)とは(詳しく解説)
bfloat16(BF16)は、Googleが機械学習向けに設計した16ビット浮動小数点フォーマットで、指数部をFP32と同じ8ビット確保し仮数部を7ビットに絞ることで、表現できる数値の範囲はFP32とほぼ同等に保ちつつメモリ使用量と演算コストを半分程度に抑える形式として、大規模言語モデルの学習・推論で広く採用されているとされる。仮数部が少ない分、FP16と比べて桁あふれ(オーバーフロー)は起きにくいが、細かい数値の丸め誤差は大きくなりやすく、勾配が小さい層で精度劣化が起きる場合があると指摘される。2026年時点の実運用では、学習はFP32やFP8混合精度と組み合わせるケースが多く、BF16単体運用は推論寄りの現場で採用が進んでいる。クラウドGPUの相場感で言えば、BF16化はVRAM消費とコストを大きく圧縮できる一方、Ampere以降のNVIDIA GPUやTPUなど対応ハードウェアを選ぶ必要があり、現場では自社の推論基盤が対応しているかを先に確認する選び方が定石とされる。
bfloat16 (BF16)の使用例
- モデルの学習ログでdtype=bfloat16と表示されていたら、GPUのTensor Coreがbf16演算に対応しているか確認する。
- 推論コストを抑えたい場合、fp32のチェックポイントをbfloat16に変換して読み込む設定に切り替える。