FP32(単精度浮動小数点数)とは、コンピュータで数値を32ビットのデータ長で表現する形式です。高い計算精度と広い数値範囲をカバーできるため、ディープラーニングのモデル訓練や科学計算における標準的なデータ形式として広く利用されてきました。近年は軽量なFP16やBF16も多用されますが、基準となる精度を提供する重要用語です。
FP32とは
FP32は、1つの数値を32ビット(4バイト)のデータ量で表現する浮動小数点数のフォーマットであり、AIモデルの学習において高い計算精度を担保する標準的なデータ型です。
詳しく解説
FP32は、符号部1ビット、指数部8ビット、仮数部23ビットの計32ビットで数値を構成します。これにより非常に広い範囲の数値を高精度に表現できるため、桁落ちやアンダーフローといった計算誤差を最小限に抑えることが可能です。ディープラーニングの黎明期から、ニューラルネットワークの重みや勾配の計算におけるデファクトスタンダードとして用いられてきました。しかし、モデルの大規模化に伴い、FP32による計算はメモリ消費量やデータ転送コストが大きく、計算速度のボトルネックになるという課題も顕在化しています。
具体例・使われ方
例えば、高い数値精度が求められる医療画像の解析モデルや、複雑な科学シミュレーションの初期学習フェーズで使用されます。また、AIモデルの最適化を行う際に、量子化や精度の比較検証を行うための基準モデル(ベースライン)としてFP32形式が保持されます。
似た用語との違い
FP16やBF16は、16ビットで数値を表現する半精度形式です。これらはFP32と比較してメモリ使用量を半分に削減し、高速な計算を可能にします。特にBF16はFP32と同じ指数部領域を持つため、数値の範囲を維持しつつ高速化を図れます。また、INT8は8ビットの整数型であり、モデルの推論処理を大幅に軽量化する目的で使われますが、FP32よりも表現できる精度は大幅に低下します。
注意点
FP32は精度が高い反面、モデルのパラメータ数が増大した現代のプロセッサ環境においては、GPUのVRAM(ビデオメモリ)を大量に消費します。そのため、大規模言語モデル(LLM)の学習や推論をすべてFP32で実施することはコストや効率の面で非現実的となる場合があります。学習時にも低精度形式を組み合わせる混合精度学習が一般的になっており、常にFP32だけで計算が行われるわけではない点に注意が必要です。