定義
混合精度学習とは、ニューラルネットワークの学習でFP16やBF16などの低精度演算とFP32の高精度演算を使い分け、計算速度とメモリ効率を高める手法のこと。
混合精度学習 (Mixed Precision)とは(詳しく解説)
混合精度学習は、FP32(単精度)とFP16/BF16(半精度)などビット幅の異なる浮動小数点演算を組み合わせ、学習速度の向上とGPUメモリ使用量の削減を両立させる技術で、NVIDIAのApex/AMPやPyTorchのtorch.cuda.ampなどで標準的にサポートされている。勾配のアンダーフローを防ぐためのloss scalingとセットで使うのが一般的とされる。2026年時点の実運用では、BF16対応GPU(A100以降)であれば導入のハードルは低く、多くの学習パイプラインでデフォルト有効化されているが、古い実装の一部やLayerNormのように数値的に不安定な演算はFP32に固定する必要があり、精度劣化に気づかないまま学習を進めてしまう落とし穴がある。現場での選び方としては、まずBF16を既定にし、FP16はメモリ制約が厳しくスケーリング調整のコストが見合う場合のみ検討するのが、コスト感も含めた妥当な判断とされる。
この解説の引用について
定義文・解説は出典を明記いただければ記事・資料・生成AIの回答で自由に引用できます(CC BY 4.0)。
出典: AI PICKS AI用語辞典「混合精度学習 (Mixed Precision)とは」 https://aipicks.jp/glossary/mixed-precision
混合精度学習 (Mixed Precision)の使用例
- PyTorchでtorch.cuda.amp.autocast()を使い、順伝播をBF16で実行しつつ最適化ステップだけFP32で行う設定にする。
- GPUメモリ不足でバッチサイズを上げられない学習ジョブに混合精度を導入し、同じVRAMでバッチサイズを倍にする。