このページは Cloud Translation API によって翻訳されました。
Switch to English

量子化を意識したトレーニング

TensorFlowモデルの最適化によって維持されます

量子化には、トレーニング後の量子化と量子化を意識したトレーニングの2つの形式があります。モデルの精度には量子化を意識したトレーニングの方が優れていることがよくありますが、使いやすいため、トレーニング後の量子化から始めます。

このページでは、量子化を意識したトレーニングの概要を説明し、ユースケースにどのように適合するかを判断するのに役立ちます。

概要概要

量子化対応トレーニングは、推論時間の量子化をエミュレートし、ダウンストリームツールが実際に量子化されたモデルを生成するために使用するモデルを作成します。量子化されたモデルは低精度(たとえば、32ビットフロートではなく8ビット)を使用するため、展開時にメリットがあります。

量子化を使用して展開

量子化は、モデルの圧縮とレイテンシーの削減によって改善をもたらします。 APIのデフォルトを使用すると、モデルサイズは4倍に縮小し、通常、テストしたバックエンドでCPUレイテンシが1.5〜4倍向上します。最終的に、 EdgeTPUやNNAPIなどの互換性のある機械学習アクセラレータでレイテンシの改善が見られます。

この手法は、スピーチ、ビジョン、テキストの制作、およびユースケースの翻訳で使用されます。コードは現在、これらのモデルのサブセットをサポートしています

量子化と関連するハードウェアを試す

ユーザーは、量子化パラメーター(ビット数など)と、ある程度、基礎となるアルゴリズムを構成できます。 APIのデフォルトからのこれらの変更により、デプロイへのサポートされたパスはありません。

この構成に固有のAPIは実験的なものであり、下位互換性の影響を受けません。

APIの互換性

ユーザーは、次のAPIを使用して量子化を適用できます。

  • モデル構築:シーケンシャルモデルと機能モデルのみをtf.kerasしたtf.keras
  • TensorFlowバージョン:tf-nightlyのTF2.x。
  • TensorFlow実行モード:熱心な実行

次の領域でサポートを追加することは、ロードマップにあります。

  • モデル構築:サブクラス化されたモデルがどのようにサポートなしに制限されているかを明確にします
  • 分散トレーニング: tf.distribute

一般的なサポートマトリックス

サポートは次の領域で利用できます。

  • モデルカバレッジ: allowlistedレイヤーを使用するモデル、 Conv2DレイヤーDepthwiseConv2Dレイヤーに続く場合のBatchNormalization、および限られたケースではConcat
  • ハードウェアアクセラレーション:APIのデフォルトは、EdgeTPU、NNAPI、TFLiteバックエンドなどのアクセラレーションと互換性があります。ロードマップの警告を参照してください。
  • 量子化を使用した展開:現在、テンソルごとの量子化ではなく、畳み込み層の軸ごとの量子化のみがサポートされています。

次の領域でサポートを追加することは、ロードマップにあります。

  • モデルカバレッジ:RNN / LSTMと一般的なConcatサポートを含むように拡張されました。
  • ハードウェアアクセラレーション:TFLiteコンバーターがフル整数モデルを生成できることを確認します。詳細については、この問題を参照してください。
  • 量子化のユースケースを試してください。
    • Kerasレイヤーにまたがる、またはトレーニングステップを必要とする量子化アルゴリズムを試してください。
    • APIを安定させます。

結果

ツールによる画像分類

モデル量子化されていないトップ1の精度8ビットの量子化された精度
MobilenetV1 224 71.03% 71.06%
Resnet v1 50 76.3% 76.1%
MobilenetV2 224 70.77% 70.01%

モデルはImagenetでテストされ、TensorFlowとTFLiteの両方で評価されました。

技術のための画像分類

モデル量子化されていないトップ1の精度8ビットの量子化された精度
Nasnet-モバイル74% 73%
Resnet-v2 50 75.6% 75%

モデルはImagenetでテストされ、TensorFlowとTFLiteの両方で評価されました。

量子化対応のトレーニング例に加えて、次の例を参照してください。

  • 量子化を使用したMNIST手書き数字分類タスクのCNNモデル: コード

同様の背景については、効率的な整数演算のみの推論のためのニューラルネットワークの量子化とトレーニングの論文を参照してください。このホワイトペーパーでは、このツールが使用するいくつかの概念を紹介します。実装は完全に同じではなく、このツールで使用される追加の概念があります(たとえば、軸ごとの量子化)。