Tensorflow モデル解析のセットアップ

構成

TFMA は、その設定を JSON にシリアル化されたプロトに保存します。このプロトは、入力データ、出力データ、モデル仕様、メトリック仕様、スライス仕様に必要な構成を統合します。

すべての TFMA パイプラインは、ベースライン (プライマリ) モデルと 0 個以上の候補 (セカンダリ) モデルに関連付けられています。ベースラインと候補モデルはパイプラインの開始時にユーザーによって定義され、それぞれに一意の名前が必要です。以下は、ユーザーが使用する一般的な構成セットアップの例です。

  • 単一モデルの評価:
    • N/A (つまり、名前がありません)
  • 検証ベースの評価:
    • baseline
    • candidate
  • モデル比較評価:
    • my_model_a
    • my_model_b

モデルスペック

モデルスペックはtfma.ModelSpecタイプで、モデルの位置や他のモデル固有のパラメーターを定義するために使用されます。たとえば、評価を実行する前に構成する必要がある一般的な設定は次のとおりです。

  • name - モデルの名前 (複数のモデルが使用されている場合)
  • signature_name - 予測に使用される署名の名前 (デフォルトはserving_default )。 EvalSavedModel を使用する場合は、 evalを使用します。
  • label_key - ラベルに関連付けられた機能の名前。
  • example_weight_key - サンプルの重みに関連付けられた特徴の名前。

メトリクスの仕様

メトリック仕様のタイプはtfma.MetricsSpecで、評価の一部として計算されるメトリックを構成するために使用されます。機械学習の問題が異なれば、使用するメトリクスのタイプも異なります。TFMA は、計算されるメトリクスを構成およびカスタマイズするための多くのオプションを提供します。メトリクスは TFMA の非常に大きな部分を占めるため、 「メトリクス」で個別に詳しく説明します。

スライス仕様

スライシング仕様はtfma.SlicingSpecタイプで、評価中に使用されるスライス基準を構成するために使用されます。スライスは、 feature_keysfeature_values 、またはその両方によって実行できます。スライス仕様の例は次のとおりです。

  • {}
    • データ全体から構成されるスライス。
  • { feature_keys: ["country"] }
    • 特徴「国」のすべての値のスライス。たとえば、「country:us」、「country:jp」などのスライスを取得する可能性があります。
  • { feature_values: [{key: "country", value: "us"}] }
    • 「国:米国」で構成されるスライス。
  • { feature_keys: ["country", "city"] }
    • フィーチャ「country」のすべての値のスライスが、フィーチャ「city」のすべての値と交差します (これはコストがかかる可能性があることに注意してください)。
  • { feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }
    • 値「age:20」と交差する特徴「country」のすべての値のスライス

機能キーは、変換された機能または生の入力機能のいずれかであることに注意してください。詳細については、 tfma.SlicingSpecを参照してください。

EvalSharedModel

TFMA では、構成設定に加えて、同じプロセス内の複数のスレッド間でモデルを共有するためにtfma.EvalSharedModelのインスタンスを作成することも必要です。共有モデル インスタンスには、モデルのタイプ (keras など) と、ディスク上の保存場所 (タグなど) からモデルをロードして構成する方法に関する情報が含まれています。 tfma.default_eval_shared_model API を使用すると、パスとタグのセットを指定してデフォルトのインスタンスを作成できます。