Treten Sie der SIG TFX-Addons-Community bei und helfen Sie mit, TFX noch besser zu machen! SIG TFX-Addons beitreten

Setup der Tensorflow-Modellanalyse

Aufbau

TFMA speichert seine Konfiguration in einem Proto , das für JSON serialisiert ist. Dieses Proto konsolidiert die Konfiguration, die für Eingabedaten, Ausgabedaten, Modellspezifikationen, Metrikspezifikationen und Slicing-Spezifikationen erforderlich ist.

Alle TFMA-Pipelines sind einem Basismodell (primär) und null oder mehr Kandidatenmodellen (sekundär) zugeordnet. Die Basislinie und das Kandidatenmodell werden vom Benutzer zu Beginn der Pipeline definiert und erfordern jeweils einen eindeutigen Namen. Im Folgenden finden Sie Beispiele für typische Konfigurationskonfigurationen, die ein Benutzer verwenden kann:

  • Einzelmodellbewertung:
    • N / A (dh kein Name)
  • Validierungsbasierte Bewertung:
    • baseline
    • candidate
  • Modellvergleichsbewertung:
    • my_model_a
    • my_model_b

Modellspezifikationen

Modellspezifikationen sind vom Typ tfma.ModelSpec und werden verwendet, um die Position eines Modells sowie andere modellspezifische Parameter zu definieren. Die folgenden typischen Einstellungen müssen beispielsweise vor dem Ausführen einer Evaluierung konfiguriert werden:

  • name - Name des Modells (wenn mehrere Modelle verwendet werden)
  • signature_name - Name der Signatur, die für Vorhersagen verwendet wird (Standard ist serving_default ). Verwenden Sie eval wenn Sie ein EvalSavedModel verwenden.
  • label_key - Name des Features, das dem Label zugeordnet ist.
  • example_weight_key - Name des Features, das dem Beispielgewicht zugeordnet ist.

Metrikspezifikationen

Metrikspezifikationen sind vom Typ tfma.MetricsSpec und werden zum Konfigurieren der Metriken verwendet, die im Rahmen der Auswertung berechnet werden. Unterschiedliche Probleme beim maschinellen Lernen verwenden unterschiedliche Arten von Metriken, und TFMA bietet viele Optionen zum Konfigurieren und Anpassen der berechneten Metriken. Da Metriken einen sehr großen Teil von TFMA ausmachen, werden sie in Metriken separat ausführlich behandelt.

Schneidspezifikationen

Slicing-Spezifikationen sind vom Typ tfma.SlicingSpec und werden zum Konfigurieren der tfma.SlicingSpec Kriterien verwendet, die während der Auswertung verwendet werden. Das Schneiden kann entweder durch feature_keys , feature_values oder beides erfolgen. Einige Beispiele für Schneidspezifikationen sind wie folgt:

  • {}
    • Slice bestehend aus Gesamtdaten.
  • { feature_keys: ["country"] }
    • Slices für alle Werte im Feature "Land". Zum Beispiel könnten wir Slices "country: us", "country: jp" usw. bekommen.
  • { feature_values: [{key: "country", value: "us"}] }
    • Slice bestehend aus "country: us".
  • { feature_keys: ["country", "city"] }
    • Slices für alle Werte in Feature "Land" werden mit allen Werten in Feature "Stadt" gekreuzt (beachten Sie, dass dies teuer sein kann).
  • { feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }
    • Slices für alle Werte in Feature "Land" gekreuzt mit Wert "Alter: 20"

Beachten Sie, dass Feature-Keys entweder transformierte Features oder rohe Eingabe-Features sein können. Weitere Informationen finden Sie unter tfma.SlicingSpec .

EvalSharedModel

Zusätzlich zu den Konfigurationseinstellungen erfordert TFMA, dass eine Instanz eines tfma.EvalSharedModel erstellt wird, um ein Modell für mehrere Threads im selben Prozess tfma.EvalSharedModel . Die gemeinsam genutzte Modellinstanz enthält Informationen zum Modelltyp (Keras usw.) sowie zum Laden und Konfigurieren des Modells von seinem auf der Festplatte gespeicherten Speicherort (z. B. Tags usw.). Die API tfma.default_eval_shared_model kann verwendet werden, um eine Standardinstanz mit einem Pfad und einer Reihe von Tags zu erstellen.