演算精度とは、コンピュータが数値を表現するためのビット数とフォーマットのことです。AI分野では、FP32(32ビット浮動小数点数)、FP16(16ビット浮動小数点数)、INT8(8ビット整数)などの精度フォーマットが使い分けられ、演算速度・メモリ使用量・計算精度のトレードオフを最適化します。
主要な精度フォーマット
FP32(単精度)は最も高い精度を持ち、従来のディープラーニング学習の標準でした。FP16(半精度)はFP32の半分のメモリでほぼ同等の学習精度を達成でき、学習の高速化に広く使われています。INT8(8ビット整数)は推論時のモデル量子化で使用され、演算速度を大幅に向上させます。
| ひとことで言うと | 数値を何ビットで表すかの設定。精度と速度・メモリのトレードオフ。 |
|---|---|
| 使い分け | FP32=高精度で重い/FP16・BF16=学習の標準/INT8・INT4=推論の高速化。 |
| 注意点 | 精度を落とすほど速いが、モデルの品質が落ちる場合がある。必ず検証する。 |
精度と性能のトレードオフ
低精度演算はメモリ使用量が少なく、演算速度も速い反面、数値の表現範囲が狭くなり精度が低下するリスクがあります。例えばFP32からFP16に変更すると、理論上のスループットは2倍、メモリ使用量は半分になりますが、数値のアンダーフローやオーバーフローに注意が必要です。
1FP32(32ビット)高精度・メモリ大
▶
2FP16/BF16(16ビット)メモリ半分・約2倍速
▶
3INT8(8ビット)さらに1/2・推論向け
▶
4INT4(4ビット)極限の軽量化
▶
5精度を検証落ち幅が許容内か確認
AI向け専用精度フォーマット
AI処理に最適化された専用フォーマットも登場しています。BFloat16はFP16より広いダイナミックレンジを持ち、学習の安定性に優れます。TF32(TensorFloat-32)はNVIDIAが導入した19ビットフォーマットです。FP8やFP4はさらに低い精度で高速推論を可能にし、最新GPUでハードウェアサポートされています。