モデル変換の概要

LiteRT で使用する機械学習(ML)モデルは、元々は TensorFlow のコアライブラリとツールを使用して構築、トレーニングされます。アプリケーションを 使用する場合は、それをより小さな、より小さな 効率的な ML モデル形式です。 このセクションでは、Terraform の LiteRT モデル形式に変換できます。

変換ワークフロー

TensorFlow モデルを LiteRT 形式に変換するには ML モデルのコンテンツによって異なりますこのプロセスの最初のステップとして モデルを評価して、直接変換できるかどうか判断する必要があります。 この評価では、モデルのコンテンツが TensorFlow オペレーション ベースの標準 LiteRT ランタイム環境 使用されます。サポートされているセット外の演算をモデルで使用すると、 モデルをリファクタリングしたり、高度な変換手法を使用したりするオプション。

下の図は、モデルの変換手順の概要を示しています。

TFLite 変換ワークフロー

図 1. LiteRT 変換ワークフロー。

以降のセクションでは、モデルの評価と変換のプロセスの概要を説明します。 。

入力モデルの形式

コンバータは、次の入力モデル形式で使用できます。

Keras モデルと具象関数モデルの両方を SavedModel として保存できる 推奨経路でコンバージョンを達成します

Jax モデルがある場合は、TFLiteConverter.experimental_from_jax を使用できます。 LiteRT 形式に変換することもできます。この API は テストモード時に変更できます

コンバージョンの評価

モデルの評価は、モデルを変換する前の重要なステップです。 評価の際には モデルのコンテンツが LiteRT 形式。モデルが適合しているかどうかも判断する必要があります。 モデルが使用するデータのサイズ、 ハードウェア処理要件、モデル全体のサイズと 複雑になります。

多くのモデルでは、コンバータはすぐに機能します。ただし、 LiteRT 組み込みオペレーター ライブラリは、 TensorFlow のコア演算子。つまり、モデルによっては追加の 手順を確認してください。 さらに、LiteRT でサポートされているオペレーションには、 パフォーマンス上の理由で使用が制限されています。詳しくは、 演算子の互換性に関するガイド 変換のためにモデルをリファクタリングする必要があるかどうかを判断できます。

モデル変換

LiteRT コンバータは TensorFlow モデルを受け取り、 LiteRT モデル(最適化された FlatBuffer 形式に .tflite ファイル拡張子)。ファイルを読み込む SavedModel を使うか、コードで作成したモデルを直接変換します。

コンバータは、コンバージョンをカスタマイズする 3 つのメインフラグ(またはオプション)を受け取ります。 必要があります。

  1. 互換性フラグを使用すると、 変換でカスタム演算子を許可するかどうか。
  2. 最適化フラグを使用すると、 適用する最適化のタイプを指定する 確認できます最も一般的な最適化手法は、 トレーニング後の量子化
  3. メタデータ フラグを使用すると、変換されたモデルにメタデータを追加できます。 デプロイ時にプラットフォーム固有のラッパーコードを簡単に作成できる サポートしています。

モデルは、Python API または コマンドライン ツール。詳しくは、 詳しい手順については、TF モデルの変換ガイド モデルでコンバータを実行する手順を説明します

通常はモデルを標準の LiteRT に変換する ランタイム環境Google Play 開発者サービスのランタイム環境 。一部の高度なユースケースでは、 モデル ランタイム環境のカスタマイズ。これには追加の手順が必要 渡されます。詳しくは、 Android の「Advanced Runtime Environment」セクション をご覧ください。

高度なコンバージョン

エラーが発生した場合 モデルでコンバータを実行しているときに、 携帯通信会社の互換性の問題。すべての TensorFlow 演算が サポートしています 。この問題を回避するには、モデルをリファクタリングするか、 変更された LiteRT を作成できる高度な変換オプション そのモデルのカスタムランタイム環境です。

次のステップ