用語集

ミックスド・プレシジョン

混合精度トレーニングでディープラーニングの効率を向上!精度を犠牲にすることなく、高速化、メモリ使用量の削減、省エネルギーを実現します。

混合精度は、モデル学習を高速化し、メモリ消費を削減するために深層学習で使用される手法である。これは、計算中に16ビット浮動小数点(FP16)のような低精度数値フォーマットと、32ビット浮動小数点(FP32)のような高精度フォーマットを組み合わせて使用するものである。重みの乗算のようなモデルの特定の部分に低精度数値を戦略的に使用し、重みの更新のような重要なコンポーネントを高精度に保つことで、混合精度トレーニングは、モデルの精度を大幅に損なうことなく、最新のGPUでパフォーマンスを大幅に加速することができます。

ミックスド・プレシジョンの仕組み

混合精度の背後にある核となる考え方は、低精度データ型の速度とメモリ効率を活用することです。最新のハードウェア、特にテンソルコアを搭載したNVIDIA GPUは、16ビット数に対する演算を32ビット数よりもはるかに高速に実行できる。このプロセスには通常、3つの重要なステップが含まれる:

  1. 低精度へのキャスト:モデルの演算のほとんど、特に計算量の多い行列の乗算と畳み込みは半精度(FP16)演算を使って実行される。これにより、メモリフットプリントが削減され、計算が高速化されます。
  2. 重みのマスターコピーの維持モデルの精度と安定性を維持するため、モデルの重みのマスターコピーは、標準的な32ビット浮動小数点(FP32)形式で保持される。このマスターコピーは、学習プロセスにおいて勾配を累積し、重みを更新するために使用されます。
  3. ロス・スケーリング:数値のアンダーフロー(小さな勾配値がFP16に変換されたときにゼロになる)を防ぐために、ロス・スケーリングと呼ばれる手法が使用される。これは、勾配値をFP16で表現可能な範囲に保つために、バックプロパゲーションの前に損失にスケーリング係数を掛けることを含む。重みが更新される前に、勾配はスケールダウンされる。

PyTorchや TensorFlowのようなディープラーニングフレームワークには、自動的な混合精度のサポートが組み込まれており、実装が容易である。

応用と実例

混合精度は、効率が最優先される大規模な機械学習(ML)モデルの学習に広く採用されている。

関連概念

混合精度は、深層学習モデルをより効率的にするために使用されるいくつかの最適化手法の1つです。関連する概念と区別することが重要だ:

  • モデルの量子化量子化は、浮動小数点数(FP32やFP16など)をINT8などの低ビット整数フォーマットに変換することで、モデルのサイズと計算コストを削減します。混合精度がトレーニング中に異なる浮動小数点フォーマットを使用するのに対して、量子化は一般的にトレーニング後(トレーニング後の量子化)またはトレーニング中(量子化を考慮したトレーニング)に適用され、特にエッジデバイスでの 推論に最適化されます。
  • モデルの刈り込みプルーニングとは、ニューラルネットワークから冗長な接続や重要でない接続(重み)を取り除く技術である。重みの数値形式を変更する混合精度とは異なり、プルーニングはモデルのアーキテクチャそのものを変更し、サイズと複雑さを軽減します。これらのテクニックを併用することで、さらに大きな性能向上を達成することができる。

Ultralyticsコミュニティに参加する

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク