YOLO Vision 2025にご期待ください!
2025年9月25日
10:00 — 18:00(英国夏時間)
ハイブリッドイベント
Yolo Vision 2024
用語集

混合精度

混合精度トレーニングで深層学習の効率を高めましょう!精度を犠牲にすることなく、より高速な速度、削減されたメモリ使用量、およびエネルギー節約を実現します。

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

混合精度演算の仕組み

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

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

PyTorchTensorFlowのような深層学習フレームワークは、自動混合精度を組み込みでサポートしており、実装が容易です。

アプリケーションと例

混合精度は、効率が最も重要な大規模機械学習(ML)モデルのトレーニングで広く採用されています。

関連概念

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

  • モデルの量子化: 量子化は、浮動小数点数(FP32やFP16など)を下位ビットの整数形式(INT8など)に変換することにより、モデルのサイズと計算コストを削減します。混合精度は学習中に異なる浮動小数点形式を使用しますが、量子化は通常、学習後(学習後量子化)または学習中(量子化対応学習)に適用され、特にエッジデバイスでの推論を最適化します。
  • モデルの枝刈り: 枝刈りは、ニューラルネットワークから冗長な、または重要でない接続(重み)を削除する手法です。重みの数値形式を変更する混合精度とは異なり、枝刈りはモデルのアーキテクチャ自体を変更して、サイズと複雑さを軽減します。これらの手法を組み合わせて使用​​すると、さらにパフォーマンスの向上を達成できます。

Ultralyticsコミュニティに参加しませんか?

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加
クリップボードにコピーしました