混合精度トレーニングは、中間計算に低精度の演算を利用し、重要な重み更新には高精度を維持することで、高性能な深層学習ワークフローを実現します。この手法は、最新のGPUアーキテクチャにおいて、メモリ使用量を大幅に削減し、スループットを向上させます。そのため、大規模なTransformerモデルを現実的な時間内にトレーニングするために不可欠です。精度要件と計算効率のバランスを取ることで、企業は複雑なAIシステムを、従来のFP32演算と比較して、より迅速かつ低コストで展開できます。
システムは、標準的な32ビット浮動小数点形式から、ハーフまたはbfloat16形式へ移行する際に、数値範囲を正規化するために、勾配スケーリング係数を初期化します。
順伝播の過程において、ハードウェアの利用効率を最大化し、メモリ帯域幅の消費を最小限に抑えるために、演算精度を下げてアクティベーションと重みを計算します。
勾配累積は、スケーリング係数を適用する前にフル精度で行われ、これにより、最適化器の更新が数値的に安定し、正確な結果を維持します。
入力データの統計情報を分析し、特定のテンソル型およびレイヤーアーキテクチャに対して最適な精度レベルを決定します。
トレーニングフレームワークを構成する際、勾配スケーリングパラメータやオーバーフロー対策を含む、混合精度フラグを設定してください。
初期検証として、データセットのサブセットを用いて、数値的な安定性と収束挙動を確認するための検証テストを実行します。
トレーニングデータセット全体に適用可能であり、同時にNaN(欠損値)勾配や、精度に起因する発散の兆候を継続的に監視します。
エンジニアは、JSON形式のマニフェストを通じて、勾配の大きさに基づいて、どのレイヤーでFP16を使用するか、BF16を使用するかといった、精度に関するポリシーを定義します。
リアルタイムのテレメトリ表示では、オーバーフロー回数、メモリ使用率、および1秒あたりの有効スループットなど、様々な精度で計測された指標が表示されます。
自動テストでは、FP16/BF16モデルの出力結果を、参照となるFP32のベースラインと比較し、精度劣化の閾値を定量化します。