検索意味モデルの大規模定量化実践

検索意味モデルの大規模定量化実践

1. 検索セマンティックモデルの現状

ERNIE: 知識統合による表現の強化は、中国語の NLP タスクで最先端の結果を達成した BERT モデルに基づいて、2019 年 4 月に Baidu が行ったさらなる最適化です。

近年、ERNIE 1.0/2.0/3.0 などのセマンティック モデルは、関連性や並べ替えなどの複数のサブ方向を含む検索のさまざまな主要なビジネス シナリオで広く使用されており、大量の GPU リソースを消費しています。各ビジネス ディレクションは、通常、最終的な計算を完了するために複数のモデルで構成されます。全体的な検索ビジネスには、多数のモデルと高速な反復が伴います。現在、オンラインでは数百を超える完全なトラフィック モデルが存在し、毎月 100 回近くの反復が行われています。セマンティック モデルの広範な適用は検索に大きな影響を与えており、関連するビジネス指標はモデルの精度の変化に非常に敏感です。一般に、モデル圧縮技術のエンジニアリング実践では、推論パフォーマンス、ビジネス指標、反復効率の最適化目標を一様に考慮する必要があります。

1. 推論パフォーマンス: INT8 量子化を使用すると、ERNIE モデルのパフォーマンスは平均で 25% 以上向上します。主な影響要因としては、入力データのサイズ(バッチサイズ、シーケンスの長さなど)、隠しノードの数、非標準のネットワーク構造、演算子融合の最適化などがあります。

2. ビジネス指標:特定の相関シナリオにおける ERNIE モデルを例にとると、モデル出力の数値差異率は 1% を超えず、オフライン テスト セットの評価指標はほぼロスレスです。

3. 反復効率: オフライン量子化は数時間で完了し、モデルのライフサイクル全体における関連リンク (モデルのマルチバージョン反復、小トラフィック実験、完全量子化プロモーションなど) をブロックすることなく、アセンブリ ライン方式で定量モデルを迅速に生成します。

2. モデル定量化の簡単な説明

つまり、モデル量子化とは、高精度のストレージ(計算)を低精度のストレージ(計算)に変換するモデル圧縮技術です。利点は次のとおりです。

ストレージ オーバーヘッドと帯域幅要件の削減: 重みの各レイヤーが量子化された後、32 ビットが 8 ビットまたはそれ以下のビットに圧縮され、モデルが占めるスペースが少なくなり、メモリ アクセス帯域幅への負荷が自然に軽減されます。

より高速な計算速度: 浮動小数点計算命令よりも単位時間あたりに実行される整数計算命令の数が多くなります。さらに、NVIDIA Ampere アーキテクチャ チップには専用の INT8 Tensor コアも搭載されています。

別の技術的な観点から見ると次のようになります。

  • マッピング関数が線形であるかどうかに基づいて、線形と非線形に分けられます。非線形量子化の計算は比較的複雑で、通常は線形量子化に重点が置かれます。式は次のとおりです: Q = clip(round(R/S) + Z)、ここで、R: 高精度浮動小数点数、Q: 量子化された整数、s: スケール、z: ゼロ点。
  • ゼロ点の対応する位置に基づいて、線形量子化は対称と非対称に分けられます。

写真

△ 図1: 対称量子化と非対称量子化

行列の乗算を例にとると、計算式は次のようになります。

𝑹𝟏𝑹𝟐 = 𝒔𝟏𝑸𝟏𝒔𝟐𝑸𝟐 = 𝒔𝟏𝒔𝟐𝑸𝟏𝑸𝟐

𝑹𝟏𝑹𝟐 = 𝒔𝟏(𝑸𝟏 − 𝒛𝟏) 𝒔𝟐(𝑸𝟐 − 𝒛𝟐) = 𝒔𝟏𝒔𝟐𝑸𝟏𝑸𝟐 − 𝒔𝟏𝒔𝟐𝒛𝟐𝑸𝟏 − 𝒔𝟏𝒔𝟐𝒛𝟏𝑸𝟐 + 𝒔𝟏𝒔𝟐𝒛𝟏𝒛𝟐

実際のアプリケーションでは、両者の精度の差はそれほど大きくなく、対称量子化の方が推論の実装が容易で、計算も高速です。

  • 量子化の粒度によって、レイヤーごとの量子化、グループごとの量子化、チャネルごとの量子化に分けられます。最初のものは推論の点で最も実装が簡単で、パフォーマンスが優れており、通常は入力行列に使用されます。 2 番目と 3 番目のタイプは、推論の面では実装が難しいですが、ビジネス上の精度が高く、通常は重みマトリックスで使用されます。
  • 浮動小数点行列の最大値を切り捨てるかどうかによって、飽和量子化と非飽和量子化に分けられます。一般的に、重みには非飽和量子化が使用されます。入力/出力行列データが不均一に分散されている場合は、飽和量子化が使用されます。
  • トレーニングに参加するかどうかによって、トレーニング後の量子化(PTQ)と量子化を考慮したトレーニング(QAT)に分けられます。実用的な観点から見ると、前者は最も費用対効果が高く、許容できる精度損失の範囲内で量子化モデルを迅速に生成し、優れたパフォーマンス加速を実現できます。後者はトレーニングと組み合わせる必要があり、PTQ によって過度の精度損失が発生した場合に追加で取られる手段となることがよくあります。

写真

△ 図2: PTQとQATのプロセス

  • スケール係数が推論中に動的に生成されるかどうかに応じて、オンライン(動的)量子化とオフライン(静的)量子化に分けられます。オンライン量子化では、推論プロセス中の実際のアクティベーションに基づいて量子化パラメータを計算する必要があり、推論速度に影響します。

3. トレーニング後の量子化

実際の応用シナリオと組み合わせて、トレーニング後のINT8量子化技術に関する詳細な研究と大規模な実践を主導しました。この記事で取り上げるハードウェア テスト環境は、GPU A10、CUDA 11.2、TensorRT8 であり、ツール チェーンには PaddlePaddle、PaddleInference、PaddleSlim などが含まれます。

3.1 定量的損失の精密分析

低精度表現空間は高精度表現空間よりもはるかに小さく、どのようなキャリブレーション方法とキャリブレーションデータを使用しても、量子化によってさまざまな程度の数値誤差が必然的に生じます。エラーを最小限に抑え、モデルのビジネス指標に影響を与えないようにするには、エラーの原因と解決策を包括的かつ慎重に調査および分析する必要があります。たとえば、どの演算子が量子化に適しているか、各演算子の量子化によって生じるエンドツーエンドのエラーをどのように測定するか、エラーが大きい一部の演算子を量子化しないことが可能かどうかなどです。

3.1.1 量子化演算子の選択

一般的に、計算集約型の演算子 (mul、matmul、conv2d、depthwise_conv2d、pooling(pool2d)、concat、elementwise_add など) は最初に量子化する必要がありますが、非線形演算子 (softmax、tanh、sigmoid、GeLU など) および計算集約型でないレイヤーの演算子は量子化しないでください。

写真

△ 図3: 演算子融合後のERNIEモデルのFP16推論時間比

ERNIE モデルを推論する際に、パフォーマンス分析ツール (nsight など) を使用して観察すると、FC (paddle の mul に相当) 関連カーネルが時間消費の 70% 以上を占め、BGEMM (paddle の matmul に相当) 関連カーネルが約 10% を占めていることがわかります。したがって、これら 2 種類の演算子の定量化に焦点を当てることができます。オンライン ERNIE モデル (入力データ バッチ サイズ = 10、最大シーケンス長 = 128) のテスト結果は次のとおりです。

写真

△ 図4: ERNIEモデルのFP16およびINT8推論中のパフォーマンス加速とオフライン指標の比較

FC については、推論中の演算子融合後のネットワークの位置に応じて分割すると、人為的に 4 つのカテゴリに分類できます。

  • QKV FC: 推論中に、Q、K、V の位置にある 3 つの FC が計算のために 1 つのカーネルに融合され、その後全体として扱われます。
  • multi-head att-FC: マルチヘッドアテンション計算後の線形演算子。
  • FFN FC: FFN には 2 つの FC があります。最初の FC と活性化関数 (relu など) は 1 つのカーネルに統合され、2 番目の FC は独立したカーネルです。
  • ビジネス FC (図には示されていません): 微調整のためにメインの ERNIE 構造の後にいくつかの FC を追加し、さまざまなビジネス シナリオに適用します。推論中に演算子融合演算が行われる場合もあります。

上記のように分割する理由は、第一に、分割の粒度が細かくなり、量子化誤差の原因を観察および特定するのに便利になること、第二に、現在の推論実装ロジックと可能な限り一貫性を保ち、不必要な複雑な変更を減らすことです。演算子のカテゴリと数量の複数の組み合わせでは、より細かい量子化により、パフォーマンスの高速化と精度のバランスをより適切に取ることができます。

3.1.2 量子化演算子の感度

ある層における演算子の不適切な量子化によって生じた損失は、徐々に層間で伝達され蓄積されます。モデル層が深く、幅が広いほど、損失が大きくなる可能性があります。各レイヤーの演算子の量子化誤差がエンドツーエンドの指標に与える影響も異なります。実際には、定量化されたビジネス指標の損失は、ビジネス シナリオやモデル バージョンによって異なり、必ずしも許容範囲内であるとは限りません。この場合、最も直接的なアプローチは、最大の損失を引き起こす演算子を見つけて、それを量子化せずにスキップすることです。量子化された演算子の数が減ると、損失も減少します。 12 層の ERNIE モデル構造には少なくとも 12*6 FC 演算子があり、そのほとんどは INT8 を使用して計算され、FP16 を使用して計算されるのはごくわずかです。パフォーマンスの加速はそれほど変わりませんが、モデル インジケーターの損失は小さくなる可能性があります。各 FC 演算子のモデル指標に対する感度を調べることで、どの FC を定量化する必要がないかを判断できます。

写真

△ 図5: 量子化演算子の感度解析法

スキップ クォンタム マークの粒度は、前のセクションで説明した FC 分割方法と一致しています。たとえば、QKV の 3 つの FC はすべて完全に量子化されているか、量子化されていません。 EMD距離とは、量子化前後の小さなデータセット上の出力値間の分布距離を指します。距離が小さいほど、感度が強いと考えられます。

ケース 1: 複数回の微調整反復の後、完全な FC 量子化後のオンライン ERNIE モデルのオフライン評価指数は約 1.4% 低下しました。感度分析法を使用し、最初の 8 つの感度 FC をスキップした後、量子化モデルのオフライン評価指標の損失は非常に小さく、パフォーマンスの加速は依然として 30% 以上です。

写真

△ 図6: 完全なFC量子化を実行した場合と、4つのFCを量子化せずにスキップした場合の推論加速とオフライン指標の比較

ケース 2: オンライン ERNIE モデルの場合、完全な FC 量子化後にオフライン評価インデックスが約 2% 低下しました。最初の敏感な FC のみをスキップした後、オフライン評価インデックスは適切に復元されます。

写真

△ 図7: 完全なFC量子化を実行した場合と、1つのFCを量子化せずにスキップした場合の推論加速とオフライン指標の比較

この方法により、パフォーマンスの高速化とモデルの精度の間で適切なバランスを実現できます。多数の実験を行った結果、FFN の FC はより敏感であり、ビジネス指標に大きな影響を与えることが多いことが判明しました。

3.1.3 数値統計解析

量子化プロセスは本質的に、量子化の前後の入力/出力行列または重み行列をより適合させるための適切なマッピング関数を見つけることです。ソース分析を遡ると、入出力行列と重み行列の分布が量子化効果の品質を根本的に決定します。量子化効果が極めて低いモデルの場合、一般的には相関行列に対して視覚的な数値統計分析を実行し、外れ値が多数存在するかどうか、キャリブレーションアルゴリズムが適用可能かどうかなどを調べて、より良いソリューションを導き出します。

写真

△図8: ERNIEモデルにおけるFC重み値の分布のヒストグラム統計

3.2 キャリブレーションデータの拡張

キャリブレーションデータの品質は、定量損失の大きさを決定する重要な要素の 1 つです。

情報を検索するビジネス シナリオでは、次のように複数の出力 (1 つの出力スコアが 1 つのサブタスクに対応) を持つ ERNIE モデルが使用されます。

写真

△ 図9:マルチヘッド出力のモデル構造の概略図

このモデルを量子化する際に、トレーニング データの一部をキャリブレーション セットとして使用しました。サブタスク 2 のオフライン効果が非常に悪くなることがわかりました。モデルのトレーニングと微調整のプロセスを分析した後、サブタスク 1 とサブタスク 2 のトレーニング データを同じ割合でランダムに混合し、キャリブレーション セットとして使用しました。定量化されたオフライン効果はすべて満たされました。

写真

△ 図10: データ拡張前のテストセットにおけるサブタスク1とサブタスク2のスコア分布

写真

△ 図11: データ拡張後のテストセットにおけるサブタスク1とサブタスク2のスコア分布

キャリブレーション データは、トレーニング/テスト データから抽出された小さなセットであり、データ分布を可能な限り一貫したものにする必要があります。一部のモデルのオフラインテストセットは完全ではなく、オフライン指標は定量的な損失をうまく反映できません。オフライン効果がオンライン実験評価と一致しない状況も発生する可能性があります。この場合、オンラインデータを校正データとしてオフラインデータと混合することができます。さらに、モデルの反復により通常は不良ケースが解決されるため、キャリブレーション データでは不良ケースの割合にも注意を払う必要があります。

3.3 ハイパーパラメータの自動最適化

量子化には、さまざまなキャリブレーション アルゴリズム (avg、abs_max、mse、KL、hist など)、キャリブレーション データ サイズ (バッチ サイズ/数値)、バイアス キャリブレーションを有効にするかどうか、およびその他のハイパーパラメータが含まれます。異なるモデルは同じ量子化パラメータ セットを使用し、損失の変化も異なるため、ハイパーパラメータの自動最適化が不可欠です。自動化により反復効率が向上する一方で、検索空間が広くなると、手動のパラメータ調整よりも優れた量子化モデルを取得できます。

写真

△ 図12: ハイパーパラメータ自動最適化手法

具体的な実装手順:

  • いくつかの初期パラメータ セットを選択して量子化モデルを生成し、キャリブレーション セット上の量子化前後のモデルの出力値間の分布距離 (Earth Mover's distance、EMD) を推測して計算します。
  • ハイパーパラメータと分布距離に基づいてランダムツリーを構築する
  • 異なるパラメータの組み合わせのいくつかのグループをランダムにサンプリングし、それらをランダムツリーに順番に挿入して推論し、関連する距離を計算します。
  • 前のステップで分布距離が最短のパラメータのグループに従って実際の量子化を実行します。
  • 分布距離が収束するまで最初のステップを繰り返す

手動チューニングと比較して、この方法ではより優れた量子化モデルをより迅速に検索できます。例えば:

写真

△ 図13: ハイパーパラメータの自動最適化の実例

実際、同じタイプのビジネス シナリオでは、モデル構造はあまり変わりません。微調整を複数回繰り返した後、自動ハイパーパラメータ最適化のパラメータは狭い範囲に固定されることがよくあります。したがって、私たちは、漏斗のような方法で定量モデルを最適化します。つまり、最初に事前に定義されたパラメータの狭い範囲内で量子化を走査し、損失が要件を満たしていない場合は大規模な検索を実行します。

3.4 効果評価

検索ビジネスにはさまざまなシナリオとオフライン評価方法があります。定量的スキームの汎用性や多次元的な評価能力を考慮すると、独立した定量的な損失評価指標を構築する必要がある。 EMD やスコアリング バケット配布方法に類似した距離メトリックを補助指標として使用できます。

△ 図14: 量子化前後のテストセットにおけるモデルセットのスコア/出力の数値差


4. 量子化を考慮したトレーニング

トレーニング後の量子化と比較すると、量子化を考慮したトレーニングではモデルの精度が向上しますが、プロセスはより複雑になります。一般的に、量子化を考慮したトレーニングは、トレーニング後の量子化損失を改善するための高度な技術的手段として使用されます。

4.1 非侵入型量子化トレーニング

定量的なトレーニングの難しさを軽減するために、実際には非侵入的なアプローチ、つまり推論モデル + トレーニングデータを採用します。まず、推論モデルの勾配を復元して、学習可能なパラメータを持つネットワークに変換し、偽の量子演算を挿入して量子化ネットワークに変換します。次に、量子化された推論モデルを使用して、量子化ネットワークに対してブロック量子化損失監視を実行し、量子化損失を削減します。

4.2 完全な演算子量子化

精度の問題により、トレーニング後の量子化では通常、一部の演算子のみが量子化されます。推論パフォーマンスをさらに向上させ、すべての演算子を量子化するには、量子化を考慮したトレーニングと組み合わせる必要があります。 mul または matmul 演算子の量子化に加えて、完全な演算子の量子化では、レイヤー ノルム関連の演算子と中間パラメーターの転送プロセスも追加されます。

写真

△ 完全演算子と部分演算子のINT8量子化のモデルネットワーク図

完全な演算子量子化は、中国のシナリオにおいていくつかの特異性を示します。

  • 量子化後、活性化分布には多くの外れ値があり、推論側の累積量子化誤差が大きくなります。
  • QKVの出力活性化スケール値が大きく、推論側の中間層の出力が0となり、精度誤差が生じます。

調査の結果、実行可能な解決策は次のとおりです。

  • 最初にトレーニングしてから量子化し、ヒストグラム キャリブレーションを使用してアクティベーション スケール値をより狭い範囲に制限します。
  • オフライン量子化によって生成されたアクティベーション スケール値を修正し、重みに対してチャネルごとの量子化トレーニングを実行します。

検索関連性 ERNIE モデルでは、入力データ バッチ サイズ = 20、最大シーケンス長 = 128 の場合、具体的な実験結果は次のようになります。

写真

△ 図16: 完全演算子INT8量子化の性能加速とオフライン評価実験結果

4.3 スムースクォント

SmoothQuant は、トレーニング不要で、精度を維持し、トレーニング後に汎用的に量子化できるソリューションであり、大規模モデル (>6.7B) の量子化問題を解決します。簡単に言えば、重みは定量化しやすいが、アクティベーションは定量化が難しいという事実に基づいて、アクティベーションの難しさはオフラインの数学的な等価変換を通じて重みに転送され、アクティベーションと重みの両方を定量化しやすくします。

写真

△17:スムースクオントの基本原則[1]

量子化損失が大きいいくつかの小規模モデルでは、量子化を考慮したトレーニング + SmoothQuant を使用して関連する実験を実施し、これも良好なパフォーマンスを達成しました。例えば:

写真

△ 図18: SmoothQuant実験結果


5. 展望

現在、INT8 量子化テクノロジはオンラインで広く使用されており、全体的な GPU リソースの利用効率が大幅に向上し、より複雑なモデルの進化をサポートしています。

膨大な実践経験と技術研究を集約し、低ビット量子化(INT4など)、INT8量子化+トークンプルーニング、複数の圧縮方式などが実験・実装されています。

オンライン ビジネスには多くのサブ ディレクション、多くのモデル、そして高速な反復があるため、実践的な経験を一般的なソリューションに抽象化することが不可欠です。ライフサイクル全体にわたるプラットフォーム ベースの組立ライン管理モデルを構築することで、効率を大幅に向上できます。同時に、一般的な方法論は、他のモデル圧縮技術のエンジニアリングアプリケーションにも適用できます。

最近、大規模モデルに関連する技術の研究が盛んになっており、モデル圧縮もホットな話題の一つです。予備調査の結果、小型モデルで有効であった技術的手段の一部は大型モデルに直接転用できる一方で、改良が必要なものがあることが判明しました。たとえば、大規模なモデルのトレーニングは非常に複雑であり、量子化を考慮したトレーニングはそれほど経済的ではないようです。関連する業界の動向に応じて、PTQ-Weight Only、LLM.int8()、SmoothQuant などのテクノロジが研究され、使用されています。

終わり

参考文献: [1] https://arxiv.org/pdf/2211.10438.pdf

<<:  Google DeepMindは、新しいAIモデルGeminiを開発中であることを明らかにし、「GPT-4よりも強力」であると主張している。

>>: 

ブログ    

推薦する

JavaScript: ソートアルゴリズムとコード実装のトップ 10

この記事の内容には、(双方向) バブル ソート、選択ソート、挿入ソート、クイック ソート (穴埋めと...

ロボット工学と自動化は医療業界にどのような影響を与えるでしょうか?

ヘルスケアにおけるロボット工学と自動化は業界を変革し、精度、効率、患者ケアを向上させました。これらの...

世界最大の公開顔データセット | 清華大学と信義科技が共同リリース

[[387945]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

AIによる顔の改造の一般的な手法の詳細な説明

最近また「AI変顔」が流行っていますね。 Leiphone.com(公式アカウント:Leiphone...

新型コロナウイルスはどのように変異するのでしょうか?機械学習が答えを教えてくれる

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

人工知能研究は行き詰まりに陥っているかもしれない

[51CTO.com クイック翻訳]フィリップ・K・ディックの1968年の小説『アンドロイドは電気羊...

...

AlphaGo の最初のバグ: 囲碁アルゴリズムの最大の弱点は何でしょうか?

[[163852]]どれほど恐ろしいモンスターにも弱点はあります。なぜAlphaGoは皆を驚かせる...

データベースセキュリティとテーブル検索攻撃における MD5 暗号化アルゴリズムの応用

MD5 は最も広く使用されているハッシュ アルゴリズムの 1 つです。1992 年に MIT の R...

年間5億ドルの損失で、OpenAIは2024年に破産するのでしょうか?アルタマン、GPU不足を明らかに、優秀な人材が退社

ChatGPT は、開始から 9 か月ですでに 2 億ドル近くを費やしています。海外メディアAnal...

...

...

マスク氏はテスラの完全自動運転が今年中に利用可能になると予測するが、AIの大きな変化を懸念している

同氏は、テスラは人間の介入なしの完全自動運転の実現に近づいていると述べ、完全自動運転の実用性と自動車...

Google AIオープンソース:携帯電話で3D物体検出が可能、しかもリアルタイム

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...