モデル最適化ガイド

モデルの最適化は、8 ビット量子化やプルーニング (枝刈り) など特殊な最適化手法を適用することで、最終モデルのパフォーマンスを向上させ、モデルサイズを縮小するオプションの作業です。OpenVINO は、ニューラル・ネットワーク圧縮フレームワーク (NNCF) で実装された 3 つの最適化パスを提供します。

  • トレーニング後の量子化は、モデルの再トレーニングや調整を必要としないトレーニング後の 8 ビット整数量子化を適用することで、ディープラーニング・モデルの推論を最適化するように設計されています。

  • トレーニング時間の最適化は、PyTorch や TensorFlow 2.x など、DL フレームワーク内でトレーニング時間モデルを最適化するための高度なメソッドのスイートによって行われます。量子化対応トレーニング、構造化および非構造化プルーニングなどをサポートします。

  • 重み圧縮は、大規模言語モデルのフットプリント削減と推論の高速化のための使いやすい手法です。

OpenVINO は、PyTorch、TensorFlow、ONNX (Q/DQ、Quantize/DeQuantize 形式) などのソース・フレームワークからの最適化されたモデル (量子化など) もサポートします。この場合、特別な手順は必要なく、最適化されたモデルをすぐに OpenVINO 中間表現形式 (IR) に変換できます。

トレーニング後の量子化は、任意の DL モデルを最適化する最速の方法であり、最初に適用する必要がありますが、達成可能な精度とパフォーマンスのトレードオフの点で制限があります。OpenVINO 量子化モデルを取得する推奨アプローチは、モデルを元のフレームワークから ov.Model に変換し、モデルメトリックを計算するなどして、モデルが OpenVINO で正しく動作することを確認する方法です。次に、ov.Modelnncf.quantize() メソッドの入力として使用して、量子化されたモデルを取得できます (下の図を参照)。

トレーニング後の量子化でも精度やパフォーマンスが満足できない場合は、オプションとしてトレーニング時間の最適化を行います。

../_images/DEVELOPMENT_FLOW_V3_crunch.svg

前述の方法でモデルが最適化すると、通常の OpenVINO 推論ワークフローを使用した推論に使用できます。推論コードを変更する必要はありません。

../_images/WHAT_TO_USE.svg