Yolo 深圳
深セン
今すぐ参加
用語集

混合精度

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

ミックスド・プレシジョン(混合精度)は、次のような場面で威力を発揮する最適化手法である。 ディープラーニング戦略的に 異なる数値フォーマット、具体的には16ビット(半精度)と32ビット(単精度)の浮動小数点型を戦略的に組み合わせることで、高速化を実現する。 を高速化する。 モデル学習を高速化し メモリ使用量を削減します。のマスター・コピーを維持しながら、計算集約的な演算を低精度で実行することで、モデル・トレーニングを高速化し、メモリ使用量を削減します。 モデル重みを高精度で維持する、 を損なうことなく、最新のハードウェア上で大幅な高速化を実現する。 精度安定性を損なうことなく ネットワークを実現する。これにより、研究者やエンジニアは、より大規模な ニューラルネットワークあるいは バッチサイズ同じハードウェア 制約がある。

混合精度演算の仕組み

混合精度の核となるメカニズムは、以下のような最新の加速器のアーキテクチャに依存している。 NVIDIA Tensor の行列乗算を実行できる。 半精度(FP16)の行列乗算を 標準的な単精度(FP32)よりもはるかに高速です。このプロセスには、一般的に3つの重要なステップが含まれる:

  1. キャスティング:こんな業務 コンボリューションや行列 のような演算はFP16にキャストされる。これにより、必要なメモリ帯域幅が削減され、計算が高速化される。
  2. マスターウエイトのメンテナンス:モデルのパラメータのマスターコピーはFP32に保存される。その間 バックプロパゲーション勾配はFP16で計算されるが、FP32のマスター重みに適用される。これにより の更新が保存される。 勾配の消失.
  3. 損失のスケーリング:数値的な安定性を確保するために 損失関数の値にスケーリング係数 にスケーリング係数を掛けることが多い。これにより、勾配値はFP16がより効果的に表現できる範囲にシフトされ、重み更新のために変換し直す前のアンダーフローエラーが回避される。 アンダーフローエラーを避けることができます。

実際のアプリケーション

混合精度は、ハードウェアの効率を最大限に高めることができるため、人工知能のさまざまな領域で標準的な手法となっている。 ハードウェアの効率を最大化する。

  • 最先端のビジョンモデルのトレーニングハイパフォーマンスの開発 コンピュータビジョン アーキテクチャの開発 Ultralytics YOLO11のような膨大なデータセットで学習する必要がある。 COCO.混合精度により、このようなトレーニングの実行が大幅に高速化され、より多くの反復 ハイパーパラメータ・チューニングと より迅速な展開サイクルが可能になります。
  • 大規模言語モデル(LLM):の作成 基礎モデルそして 大規模な言語モデル では、何テラバイトものテキストデータを処理する必要がある。ここで重要なのは混合精度である。 のクラスタに数十億のパラメータを持つモデルをフィットさせることができる。 GPU.

Ultralyticsミックスドプレシジョンの実装

について ultralytics ライブラリはAutomatic Mixed Precision (AMP)の使用を簡素化します。デフォルトでは、トレーニング ルーチンは互換性のあるハードウェアをチェックし、最適なパフォーマンスを保証するためにAMPを有効にします。

from ultralytics import YOLO

# Load the YOLO11 model for training
model = YOLO("yolo11n.pt")

# Train using Automatic Mixed Precision (AMP)
# 'amp=True' is the default setting, ensuring faster training on supported GPUs
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)

混合精度 vs 関連用語

混合精度を他の最適化やデータ表現の概念と区別することは有益である:

  • ハーフの精度純粋な半精度 純粋半精度(FP16)は、すべてを16ビット・フォーマットで保存し、計算する。これは速度を最大化する一方で、多くの場合 数値が不安定になり、トレーニング中の収束が悪くなります。混合精度は、FP32 のマスターコピーを保持することで、これを軽減します。
  • モデルの量子化 量子化によって精度はさらに低下し、通常は重みを整数(INT8)に変換して最適化する。 推論レイテンシとモデル サイズを最適化する。 エッジAIデバイスに展開する。 混合精度は主に浮動小数点数を使用した学習時の最適化であり、量子化は推論のために学習後に適用されることが多い。 多くの場合、推論のために学習後に適用されます。
  • Bfloat16ブレイン・フローティング・ポイント (Bfloat16)は、Google開発した代替16ビットフォーマットである。標準的な IEEE 754FP16とは異なり、Bfloat16はFP32と同じ指数範囲を維持する。 Bfloat16は、標準のIEEE 754 FP16とは異なり、指数範囲はFP32と同じである。一般的に の混合精度トレーニングで一般的に使用されています。 TPUや新しいGPUでの混合精度トレーニングで一般的に使用されます。

以下のようなフレームワークでサポートされています。 PyTorch AMPのようなフレームワークによって支えられており、混合精度は高性能ディープラーニングへのアクセスを民主化する最も効果的な方法の1つである、 開発者は、アクセス可能なハードウェア上で複雑なモデルを訓練することができます。

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

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

今すぐ参加