TensorFlow モデルの最適化

TensorFlow Model Optimization Toolkit は、機械学習の推論を最適化する際の複雑さを最小限に抑えます。

機械学習モデルをデプロイするときには、レイテンシ、メモリ使用量はもちろん、多くの場合に消費電力の観点からも、推論の効率性が重要になります。特にモバイルやモノのインターネット(IoT)のようなエッジデバイスでは、リソースがさらに制約され、モデルサイズとコンピューティングの効率が重視されます。

トレーニングに必要なコンピューティング性能は、さまざまなアーキテクチャでトレーニングされるモデルの数とともに増大しますが、推論に必要なコンピューティング性能は、ユーザーの数に比例して増大します。

ユースケース

モデルの最適化は、特に次のような場合に有用です。

  • クラウド デバイスとエッジデバイス(モバイル、IoT など)の両方で推論のレイテンシとコストを削減する。
  • 処理能力、メモリ、消費電力に制約のあるエッジデバイスにモデルをデプロイする。
  • モデルの無線(OTA)アップデートでのペイロード サイズを削減する。
  • 固定小数点演算に特化した、または最適化したハードウェアでの実行を可能にする。
  • 専用ハードウェア アクセラレータ用にモデルを最適化する。

最適化の手法

モデル最適化の分野には、さまざまな手法があります。

  • プルーニングと構造化プルーニングを使用して、パラメータ数を減らす。
  • 量子化を使用して表現精度を下げる。
  • 元のモデルトポロジを、パラメータを減らしたり、実行を高速化したりすることで、より効率的なものに更新する。たとえば、テンソル分解の手法や抽出を使用します。

Google のツールキットは、トレーニング後の量子化量子化認識トレーニングプルーニングをサポートしています。

量子化

量子化モデルとは、32 ビット浮動小数点数ではなく 8 ビット整数などの精度の低いモデルで表現するものです。特定のハードウェアを活用するには、精度を低くする必要があります。

スパース性とプルーニング

スパースモデルは、演算子間の接続(ニューラル ネットワーク レイヤ)がプルーニングされ、パラメータ テンソルにゼロが導入されたモデルです。