データ表現ハードウェア機械学習

単精度浮動小数点数

たんせいどふどうしょうすうてんすう · Single-precision floating-point number
2 views

単精度浮動小数点数(FP32)とは、コンピュータで実数を表現するためのデータフォーマットの一つで、32ビットのデータ幅を使用します。符号部1ビット、指数部8ビット、仮数部23ビットで構成され、AIのディープラーニングにおいてモデルの初期の学習や高精度な推論を実行する際の標準的なデータ型として広く利用されています。

単精度浮動小数点数とは

単精度浮動小数点数(FP32)とは、コンピュータ内で実数を表現するための標準的な32ビットのデータフォーマットです。AIやディープラーニングの分野では、ニューラルネットワークの重みやバイアス、活性化関数などの数値を高い精度で保持・計算するための標準的なデータ表現として位置づけられています。

詳しく解説

IEEE 754規格で定義されている単精度浮動小数点数は、符号部に1ビット、指数部に8ビット、仮数部に23ビットの合計32ビット(4バイト)を割り当てて数値を表現します。これにより、約7桁の有効桁数と広大な数値範囲(約10のマイナス38乗からプラス38乗まで)をサポートします。ディープラーニングの初期から標準データ型として使われており、複雑な数式計算や勾配降下法における微小な値の変化を正確に記録するために必要不可欠でした。近年はメモリ帯域や計算速度の向上のため、半精度浮動小数点数(FP16)や混合精度学習が普及していますが、依然としてモデルのベースラインとなる学習や、最高レベルの精度が求められる推論においては単精度浮動小数点数が基準となっています。

具体例・使われ方

例えば、GPUを用いたディープラーニングモデルのパラメータ(重み)の初期化や、最適化アルゴリズムでの学習率の適用などで、単精度浮動小数点数が直接使用されます。具体的なフレームワークであるPyTorchやTensorFlowでは、デフォルトのテンソルのデータ型として、このFP32が採用されているケースが多く見られます。

似た用語との違い

混同されやすい概念として、「倍精度浮動小数点数(FP64)」と「半精度浮動小数点数(FP16)」があります。倍精度浮動小数点数は64ビットを使用し、科学技術計算などのより厳密な精度が必要な場面で使われますが、AI分野では計算負荷が高すぎるためあまり使われません。一方、半精度浮動小数点数は16ビットを使用し、計算速度の向上やメモリ節約のためにAIの学習・推論で多用されますが、表現できる数値の範囲や精度が単精度浮動小数点数よりも低くなります。

注意点

注意点として、単精度浮動小数点数は高精度である反面、メモリ使用量と処理時間が大きくなるという限界があります。大規模言語モデル(LLM)のような数千億パラメータを持つAIモデルをすべてFP32で扱うと、膨大なGPUメモリが必要となり、実用的な速度での動作が困難になります。そのため、精度と処理速度のトレードオフを考慮し、必要に応じて適切なデータ型を選択することが重要です。

更新日時: 2026年9月3日 17:11