モデル展開に関するメモ

モデル展開作業

  1. トレーニングされたモデルは、特定のソフトウェアおよびハードウェア プラットフォームで推論を実行します。
  2. ハードウェア向けに最適化および高速化された推論コード

トレーニング機器プラットフォーム:
CPU、GPU、DSP

ONNXの存在意義

モデルとハードウェアの対応関係は適応複雑度 mxn に起因し、開発の複雑化や効率の低下などの問題を引き起こします。

ここに画像の説明を挿入します
モデル式構造を使用してトレーニング フレームワークの出力構造を統合し、モデル展開の複雑さを mxn から m+n に変換します。

ここに画像の説明を挿入します
ONNX 変換はモデル形式であり、プログラムではなくテキストであるため、デバイス上で直接実行できません。したがって、ハードウェア デバイス上で効率的な推論を可能にするために ONNX モデルをロードするにはソフトウェア スタックが必要です。このソフトウェア スタックは、モデルの推論フレームワークを指します。推論フレームワークは、ハードウェアベンダーが自社開発するものと、汎用の推論フレームワークに分類されます。独自に開発した推論フレームワークの最下層はよく最適化されており、推論の計算効率は高いですが、汎用性がなく、他のチップに適用することはできません。一般的な推論フレームワークは汎用性があり、さまざまなソフトウェアおよびハードウェア プラットフォームに適用できるため、開発の困難さが軽減され、開発効率が向上します。ユーザーは基礎となるフレームワークに注意を払う必要はなく、対応するインターフェイスを完了するだけで済みます。
ここに画像の説明を挿入します全体的な推論プロセス: 最初にモデル フレームワークを使用してモデルをトレーニングし、次にそれを ONNX モデル構造に変換し、次に推論フレームワークを使用してソフトウェアおよびハードウェア プラットフォーム上で ONNX モデルを効率的に実行します。
ここに画像の説明を挿入します

ONNX(オープンニューラルネットワークエクスチェンジ)

機械学習用に設計され、トレーニングされたモデルを保存するために使用されるオープン ファイル形式。異なるトレーニング フレームワークはモデルを同じ形式で保存し、相互に対話できます。Microsoft、Amazon、Facebook、IBMなどの企業が協賛しています。
ここに画像の説明を挿入します

ONNX の例

torch.onnx.exportonnx モデルのエクスポートを使用します。
ここに画像の説明を挿入します
onnx モデルをエクスポートした後、netron.appと入力してモデル構造を視覚化します。

ここに画像の説明を挿入します
ResNetのONNXモデルエクスポート
ここに画像の説明を挿入します
パラメータの説明
ここに画像の説明を挿入します

モデル推論の例

mmdeploy の例を使用してモデル推論に ONNX ランタイムを適用し、
ここに画像の説明を挿入します
TensorRT を使用して ONNX モデルを推論します。
ここに画像の説明を挿入します

一括調整

上記の ONNX を生成する場合、(1, X, X, これは、dynamic_axes パラメーターを使用して実現できます。

ここに画像の説明を挿入します
ここに画像の説明を挿入します
TensorRT モデルのデータ形式変換、minShapes および maxShapes パラメーター設定の変更
ここに画像の説明を挿入します

定量化する

バッチを使用してモデル推論速度を向上させることに加えて、量子化を使用して高速化することもできます。一般に、その使用はfloat16モデルの精度の変化には影響しませんが、int8保存形式を使用した後はモデルの精度がわずかに低下します。
ここに画像の説明を挿入します

定量的方法

  1. ポストトレーニング量子化: ポストトレーニング量子化 (PTQ)
  2. トレーニング中の量子化: 量子化を意識したトレーニング (QAT)

QAT を使用している場合、モデルのトレーニング プロセス中にモデルの精度変換が実装されているため、onnx データ構造変換を使用できます。PTQ を使用している場合は、対応するコンピューティング プラットフォームで精度変換を実行する必要があります。

対称量子化: モデルの数値対称区間を取得し、INT8 (-127, 127) に対応する量子化係数 (単純に比例係数として理解される 127/6) を取得でき、FP32 の値を INT8 に対応させます。
ここに画像の説明を挿入します
TensorRT では次のように呼ばれます。calibration
ここに画像の説明を挿入します

よくある問題

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/frighting_ing/article/details/129226248