混合精度学習

term_id: mixed_precision_training

Category: training_techniques

Definition

混合精度学習(MPT)は、ニューラルネットワークの学習中に半精度(FP16)と全精度(FP32)のデータ型を組み合わせた手法です。ほとんどの演算にFP16を使用することで、メモリフットプリントを削減し、計算速度を向上させます。

Summary

16ビットと32ビットの浮動小数点数を併用して計算を加速し、メモリ使用量を削減する学習手法。

Key Concepts

  • FP16(半精度浮動小数点数)
  • FP32(全精度浮動小数点数)
  • Tensor Cores(テンソルコア)
  • 数値的安定性

Use Cases

  • 大規模モデルの学習
  • GPUのアクセラレーション
  • メモリ制約のある環境

Code Example

1
2
3
4
5
6
7
import torch
import torch.cuda.amp as amp

# Example snippet showing automatic mixed precision context
with amp.autocast():
    output = model(input)
    loss = criterion(output, target)