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

Das TFX-Benutzerhandbuch

Einführung

TFX ist eine auf TensorFlow basierende Plattform für maschinelles Lernen (ML) im Produktionsmaßstab von Google. Es bietet ein Konfigurationsframework und gemeinsam genutzte Bibliotheken, um allgemeine Komponenten zu integrieren, die zum Definieren, Starten und Überwachen Ihres Systems für maschinelles Lernen erforderlich sind.

TFX 1.0

Wir freuen uns , die Verfügbarkeit des ankündigen TFX 1.0.0 . Dies ist die erste Post-Beta-Version von TFX, die stabile öffentliche APIs und Artefakte bereitstellt. Sie können sicher sein , dass Ihre Zukunft TFX - Pipelines in der Kompatibilität Umfang nach einer Aktualisierung arbeiten halten in diesem definierten RFC .

Installation

PythonPyPI

pip install tfx

Nächtliche Pakete

TFX beherbergt auch nächtliche Pakete bei https://pypi-nightly.tensorflow.org auf Google Cloud. Um das neueste Nightly-Paket zu installieren, verwenden Sie bitte den folgenden Befehl:

pip install -i https://pypi-nightly.tensorflow.org/simple --pre tfx

Dadurch werden die Nightly-Pakete für die wichtigsten Abhängigkeiten von TFX wie TensorFlow Model Analysis (TFMA), TensorFlow Data Validation (TFDV), TensorFlow Transform (TFT), TFX Basic Shared Libraries (TFX-BSL), ML Metadata (MLMD) installiert.

Über TFX

TFX ist eine Plattform zum Erstellen und Verwalten von ML-Workflows in einer Produktionsumgebung. TFX bietet Folgendes:

  • Ein Toolkit zum Erstellen von ML-Pipelines. Mit TFX-Pipelines können Sie Ihren ML-Workflow auf mehreren Plattformen orchestrieren, z. B.: Apache Airflow, Apache Beam und Kubeflow Pipelines.

    Erfahren Sie mehr über TFX - Pipelines .

  • Eine Reihe von Standardkomponenten, die Sie als Teil einer Pipeline oder als Teil Ihres ML-Trainingsskripts verwenden können. TFX-Standardkomponenten bieten bewährte Funktionen, die Ihnen den Einstieg in den Aufbau eines ML-Prozesses erleichtern.

    Erfahren Sie mehr über TFX Standardkomponenten .

  • Bibliotheken, die die Basisfunktionalität für viele der Standardkomponenten bereitstellen. Sie können die TFX-Bibliotheken verwenden, um diese Funktionalität zu Ihren eigenen benutzerdefinierten Komponenten hinzuzufügen, oder sie separat verwenden.

    Erfahren Sie mehr über die TFX - Bibliotheken .

TFX ist ein Toolkit für maschinelles Lernen im Produktionsmaßstab von Google, das auf TensorFlow basiert. Es bietet ein Konfigurationsframework und gemeinsam genutzte Bibliotheken, um allgemeine Komponenten zu integrieren, die zum Definieren, Starten und Überwachen Ihres Systems für maschinelles Lernen erforderlich sind.

TFX-Standardkomponenten

Ein TFX - Pipeline ist eine Folge von Komponenten , die ein Gerät ML - Pipeline , die speziell für skalierbare Hochleistungsmaschine Lernaufgaben ausgelegt ist. Dazu gehören Modellierung, Training, Bereitstellung von Inferenz und Verwaltung von Bereitstellungen für Online-, native mobile und JavaScript-Ziele.

Eine TFX-Pipeline umfasst normalerweise die folgenden Komponenten:

  • ExampleGen ist die anfängliche Eingangskomponente einer Rohrleitung , das Einspielen und gegebenenfalls der Eingabedatensatz aufspaltet.

  • StatisticsGen berechnet Statistiken für den Datensatz.

  • SchemaGen sucht die Statistiken und erstellt ein Datenschema.

  • ExampleValidator sucht nach Anomalien und fehlenden Werten im Datensatz.

  • Verwandeln Sie führt Feature - Engineering auf dem Datensatz.

  • Trainer trainiert das Modell.

  • Tuner stimmt die Hyperparameter des Modells.

  • Evaluator führt tiefe Analyse der Trainingsergebnisse und hilft Ihnen , Ihre exportierten Modelle zu validieren, um sicherzustellen , dass sie „gut genug“ sind , um die Produktion zu schieben.

  • InfraValidator prüft das Modell von der Infrastruktur tatsächlich servierbaren ist, und verhindert schlechtes Modell aus geschoben wird.

  • Pusher setzt das Modell auf einer Servierte Infrastruktur.

  • BulkInferrer führt die Stapelverarbeitung auf einem Modell mit unmarkierten Inferenz - Anfragen.

Dieses Diagramm veranschaulicht den Datenfluss zwischen diesen Komponenten:

Komponentenfluss

TFX-Bibliotheken

TFX enthält sowohl Bibliotheken als auch Pipeline-Komponenten. Dieses Diagramm veranschaulicht die Beziehungen zwischen TFX-Bibliotheken und Pipeline-Komponenten:

Bibliotheken und Komponenten

TFX stellt mehrere Python-Pakete bereit, die Bibliotheken sind, die zum Erstellen von Pipelinekomponenten verwendet werden. Sie verwenden diese Bibliotheken, um die Komponenten Ihrer Pipelines zu erstellen, damit sich Ihr Code auf die einzigartigen Aspekte Ihrer Pipeline konzentrieren kann.

TFX-Bibliotheken umfassen:

  • TensorFlow Data Validation (TFDV) ist eine Bibliothek für die Analyse und Validierung von Daten des maschinellen Lernens. Es ist so konzipiert, dass es hoch skalierbar ist und gut mit TensorFlow und TFX zusammenarbeitet. TFDV umfasst:

    • Skalierbare Berechnung von zusammenfassenden Statistiken von Trainings- und Testdaten.
    • Integration mit einem Viewer für Datenverteilungen und Statistiken sowie Facettenvergleich von Datensatzpaaren (Facetten).

    • Automatisierte Datenschemagenerierung, um Erwartungen an Daten wie erforderliche Werte, Bereiche und Vokabulare zu beschreiben.

    • Ein Schema-Viewer, der Sie bei der Überprüfung des Schemas unterstützt.

    • Anomalieerkennung zur Erkennung von Anomalien, wie fehlende Features, Werte außerhalb des zulässigen Bereichs oder falsche Feature-Typen, um nur einige zu nennen.

    • Ein Anomalien-Viewer, mit dem Sie sehen können, welche Features Anomalien aufweisen und mehr erfahren, um diese zu korrigieren.

  • Verwandeln TensorFlow (TFT) ist eine Bibliothek , zur Vorverarbeitung von Daten mit TensorFlow. TensorFlow Transform ist nützlich für Daten, die einen vollständigen Durchgang erfordern, wie zum Beispiel:

    • Normalisieren Sie einen Eingabewert durch Mittelwert und Standardabweichung.
    • Konvertieren Sie Strings in ganze Zahlen, indem Sie ein Vokabular über alle Eingabewerte generieren.
    • Wandeln Sie Gleitkommazahlen in Ganzzahlen um, indem Sie sie Buckets basierend auf der beobachteten Datenverteilung zuweisen.
  • TensorFlow ist für die Ausbildung Modelle mit TFX verwendet. Es nimmt Trainingsdaten und Modellierungscode auf und erstellt ein SavedModel-Ergebnis. Es integriert auch eine von TensorFlow Transform erstellte Feature-Engineering-Pipeline zur Vorverarbeitung von Eingabedaten.

    KerasTuner ist für Tuning Hyper für Modell verwendet.

  • TensorFlow Modellanalyse (TFMA) ist eine Bibliothek für TensorFlow Modelle zu bewerten. Es wird zusammen mit TensorFlow verwendet, um ein EvalSavedModel zu erstellen, das die Grundlage für seine Analyse wird. Es ermöglicht Benutzern, ihre Modelle anhand großer Datenmengen verteilt auszuwerten, wobei dieselben Metriken verwendet werden, die in ihrem Trainer definiert wurden. Diese Metriken können über verschiedene Datenscheiben berechnet und in Jupyter-Notebooks visualisiert werden.

  • TensorFlow Metadaten (TFMD) bietet Standarddarstellungen für Metadaten , die nützlich sind , wenn die Maschine Ausbildungsmodelle mit TensorFlow lernen. Die Metadaten können während der Eingabedatenanalyse von Hand oder automatisch erstellt werden und können für die Datenvalidierung, -exploration und -transformation verwendet werden. Die Formate für die Metadatenserialisierung umfassen:

    • Ein Schema, das tabellarische Daten beschreibt (zB tf.Examples).
    • Eine Sammlung von zusammenfassenden Statistiken über solche Datensätze.
  • ML Metadaten (MLMD) ist eine Bibliothek , zum Aufzeichnen und Abrufen von Metadaten , die mit ML - Entwicklern und Daten Wissenschaftler Workflows. Meistens verwenden die Metadaten TFMD-Darstellungen. MLMD verwaltet Persistenz mit SQL-Lite , MySQL und andere ähnliche Daten speichert.

Unterstützende Technologien

Erforderlich

  • Apache Strahl ist ein Open Source, einheitliches Modell zur Definition sowohl Chargen- und Streaming - Daten-Verarbeitungspipelines parallel. TFX verwendet Apache Beam, um datenparallele Pipelines zu implementieren. Die Pipeline wird dann von einem Beam unterstützt die verteilte Verarbeitung Back-Ends ausgeführt, die Apache Flink, Apache Spark, gehören Google Cloud Dataflow und andere.

Optional

Orchestratoren wie Apache Airflow und Kubeflow erleichtern die Konfiguration, den Betrieb, die Überwachung und die Wartung einer ML-Pipeline.

  • Apache Airflow ist eine Plattform , um programmatisch Autor, Zeitplan und Monitor - Workflows. TFX verwendet Airflow, um Workflows als gerichtete azyklische Graphen (DAGs) von Aufgaben zu erstellen. Der Airflow-Scheduler führt Aufgaben für ein Array von Workern aus und befolgt dabei die angegebenen Abhängigkeiten. Umfangreiche Befehlszeilen-Dienstprogramme machen die Durchführung komplexer Operationen an DAGs zum Kinderspiel. Die umfangreiche Benutzeroberfläche macht es einfach, Pipelines in der Produktion zu visualisieren, den Fortschritt zu überwachen und bei Bedarf Probleme zu beheben. Wenn Workflows als Code definiert werden, werden sie leichter wartbar, versionierbar, testbar und kollaborativ.

  • Kubeflow gewidmet Implementierungen des maschinellen Lernens zu machen (ML) Workflows auf Kubernetes einfache, tragbare und skalierbar. Das Ziel von Kubeflow besteht nicht darin, andere Dienste neu zu erstellen, sondern eine unkomplizierte Möglichkeit zu bieten, erstklassige Open-Source-Systeme für ML in verschiedenen Infrastrukturen bereitzustellen. Kubeflow Pipelines ermöglichen Zusammensetzung und Ausführung von reproduzierbaren Workflows auf Kubeflow, integriert mit Experimenten und Notebook - basierten Erfahrungen. Kubeflow Pipelines-Dienste auf Kubernetes umfassen den gehosteten Metadatenspeicher, eine containerbasierte Orchestrierungs-Engine, einen Notebook-Server und eine Benutzeroberfläche, die Benutzern bei der Entwicklung, Ausführung und Verwaltung komplexer ML-Pipelines in großem Maßstab helfen. Das Kubeflow Pipelines SDK ermöglicht die programmgesteuerte Erstellung und Freigabe von Komponenten und die Zusammenstellung von Pipelines.

Portabilität und Interoperabilität

TFX wurde entwickelt , um mehrere Umgebungen und Orchestrierung Frameworks portabel zu sein, einschließlich Apache Airflow , Apache Strahl und Kubeflow . Es ist auch tragbar zu verschiedenen Plattformen, einschließlich On-Premise und Cloud - Plattformen wie die Google Cloud Platform (GCP) . Insbesondere TFX harmoniert mit den Runden GCP Managed Service, wie zum Beispiel Cloud - AI - Plattform für Ausbildung und Prediction und Cloud - Datenfluss für verteilte Datenverarbeitung für verschiedene andere Aspekte des ML - Lebenszyklus.

Modell vs. SavedModel

Modell

Ein Modell ist das Ergebnis des Trainingsprozesses. Es ist die serialisierte Aufzeichnung der Gewichte, die während des Trainingsprozesses gelernt wurden. Diese Gewichtungen können anschließend verwendet werden, um Vorhersagen für neue Eingabebeispiele zu berechnen. Bei TFX und TensorFlow bezieht sich „Modell“ auf die Prüfpunkte, die die bis dahin gelernten Gewichtungen enthalten.

Beachten Sie, dass sich „Modell“ auch auf die Definition des TensorFlow-Berechnungsgraphen (dh einer Python-Datei) beziehen kann, die ausdrückt, wie eine Vorhersage berechnet wird. Die beiden Sinne können je nach Kontext austauschbar verwendet werden.

Gespeichertes Modell

  • Was ist ein SavedModel : eine universelle, sprachneutrale, hermetische, erzielbare Serialisierung eines TensorFlow Modells.
  • Warum ist es wichtig: Es geordnete Systeme produzieren kann, transformieren und verbrauchen TensorFlow Modelle eine einzige Abstraktion mit.

SavedModel ist das empfohlene Serialisierungsformat zum Bereitstellen eines TensorFlow-Modells in der Produktion oder zum Exportieren eines trainierten Modells für eine native mobile oder JavaScript-Anwendung. Um beispielsweise ein Modell in einen REST-Dienst für Vorhersagen umzuwandeln, können Sie das Modell als SavedModel serialisieren und mit TensorFlow Serving bereitstellen. Siehe Serving ein TensorFlow Modell für weitere Informationen.

Schema

Einige TFX - Komponenten verwenden , um eine Beschreibung Ihrer Eingabedaten ein Schema bezeichnet. Das Schema ist eine Instanz schema.proto . Schemen ist eine Art von Protokollpuffer , allgemeiner als „protobuf“ bekannt. Das Schema kann Datentypen für Merkmalswerte angeben, ob ein Merkmal in allen Beispielen vorhanden sein muss, zulässige Wertebereiche und andere Eigenschaften. Einer der Vorteile der Verwendung von TensorFlow Data Validation (TFDV) besteht darin, dass automatisch ein Schema generiert wird, indem Typen, Kategorien und Bereiche aus den Trainingsdaten abgeleitet werden.

Hier ist ein Auszug aus einem Schema-Protobuf:

...
feature {
  name: "age"
  value_count {
    min: 1
    max: 1
  }
  type: FLOAT
  presence {
    min_fraction: 1
    min_count: 1
  }
}
feature {
  name: "capital-gain"
  value_count {
    min: 1
    max: 1
  }
  type: FLOAT
  presence {
    min_fraction: 1
    min_count: 1
  }
}
...

Die folgenden Komponenten verwenden das Schema:

  • TensorFlow-Datenvalidierung
  • TensorFlow-Transformation

In einer typischen TFX-Pipeline generiert TensorFlow Data Validation ein Schema, das von den anderen Komponenten verwendet wird.

Entwickeln mit TFX

TFX bietet eine leistungsstarke Plattform für jede Phase eines Machine-Learning-Projekts, von der Forschung, dem Experimentieren und der Entwicklung auf Ihrem lokalen Computer bis hin zur Bereitstellung. Um Code Doppelarbeit zu vermeiden und beseitigen das Potenzial für eine Ausbildung / Portion Skew es wird dringend empfohlen , Ihre TFX - Pipeline für beide Modell Ausbildung und den Einsatz von geschultem Modell zu implementieren und verwenden Trans Komponenten , die Hebelwirkung der TensorFlow Trans Bibliothek sowohl für die Ausbildung und Inferenz. Auf diese Weise verwenden Sie konsistent denselben Vorverarbeitungs- und Analysecode und vermeiden Unterschiede zwischen den für das Training verwendeten Daten und den Daten, die Ihren trainierten Modellen in der Produktion zugeführt werden, und profitieren davon, diesen Code einmal zu schreiben.

Datenexploration, Visualisierung und Bereinigung

Datenexploration, Visualisierung und Bereinigung

TFX Pipelines beginnen typischerweise mit einem ExampleGen Komponente, die Eingabedaten und formatiert sie als tf.Examples annimmt. Dies geschieht häufig, nachdem die Daten in Trainings- und Evaluierungs-Datasets aufgeteilt wurden, sodass tatsächlich zwei Kopien der ExampleGen-Komponenten vorhanden sind, jeweils eine für Training und Evaluierung. Dies ist in der Regel gefolgt von einer StatisticsGen Komponente und einer SchemaGen Komponente, die Ihre Daten untersuchen und ein Datenschema und Statistiken ableiten. Das Schema und Statistiken werden von einem konsumiert werden ExampleValidator Komponente, die auf Anomalien, fehlende Werte aussehen werden, und falsche Datentypen in Ihren Daten. Alle diese Komponenten der Fähigkeiten der nutzen TensorFlow Data Validation - Bibliothek.

TensorFlow Data Validation (TFDV) ist ein wertvolles Werkzeug , wenn erste Exploration, Visualisierung zu tun, und die Reinigung Ihres Datensatzes. TFDV untersucht Ihre Daten und leitet die Datentypen, Kategorien und Bereiche ab und hilft dann automatisch, Anomalien und fehlende Werte zu identifizieren. Es bietet auch Visualisierungstools, mit denen Sie Ihr Dataset untersuchen und verstehen können. Nach Ihrer Pipeline abgeschlossen ist können Sie Metadaten aus lesen MLMD und verwenden Sie die Visualisierungstools von TFDV in einem Jupyter Notebook Ihre Daten zu analysieren.

Nach Ihrer anfänglichen Modellschulung und -bereitstellung kann TFDV verwendet werden, um neue Daten aus Inferenzanfragen an Ihre bereitgestellten Modelle zu überwachen und nach Anomalien und/oder Drift zu suchen. Dies ist besonders nützlich für Zeitreihendaten, die sich im Laufe der Zeit aufgrund von Trends oder Saisonalität ändern, und kann hilfreich sein, wenn Datenprobleme auftreten oder Modelle mit neuen Daten neu trainiert werden müssen.

Datenvisualisierung

Nachdem Sie Ihren ersten Durchlauf Ihrer Daten durch den Abschnitt Ihrer Pipeline abgeschlossen haben, der TFDV verwendet (normalerweise StatisticsGen, SchemaGen und ExampleValidator), können Sie die Ergebnisse in einem Notizbuch im Jupyter-Stil visualisieren. Für zusätzliche Durchläufe können Sie diese Ergebnisse vergleichen, während Sie Anpassungen vornehmen, bis Ihre Daten für Ihr Modell und Ihre Anwendung optimal sind.

Sie werden zunächst abfragen ML Metadaten (MLMD) die Ergebnisse dieser Ausführungen dieser Komponenten zu lokalisieren und dann die API Visualisierung Unterstützung in TFDV verwenden , um die Visualisierungen in Ihrem Notebook zu erstellen. Dazu gehören tfdv.load_statistics () und tfdv.visualize_statistics () diese Visualisierung können Sie besser die Eigenschaften Ihres Datensatzes verstehen und bei Bedarf ändern , wie erforderlich.

Modelle entwickeln und trainieren

Feature-Engineering

Eine typische TFX - Pipeline beinhaltet eine Transform- Komponente, die durch die Nutzung der Fähigkeiten der Feature - Engineering durchführen wird TensorFlow Transformation (TFT) Bibliothek. Eine Transformation Komponente verbraucht das Schema durch eine SchemaGen Komponente erstellt und wendet Transformationen Daten zu erstellen, kombinieren und die Eigenschaften verwandeln , die verwendet wird , um Ihr Modell zu trainieren. Die Bereinigung fehlender Werte und die Konvertierung von Typen sollten auch in der Transform-Komponente durchgeführt werden, wenn die Möglichkeit besteht, dass diese auch in Daten vorhanden sind, die für Inferenzanforderungen gesendet werden. Es gibt einige wichtige Überlegungen , wenn TensorFlow Code für die Ausbildung in TFX entwerfen.

Modellierung und Training

Das Ergebnis einer Transformation Komponente ist ein SavedModel , die importiert werden und in Ihrem Modellierungs Code in TensorFlow während einer verwendeten Trainers Komponente. Dieses SavedModel enthält alle Data Engineering-Transformationen, die in der Transform-Komponente erstellt wurden, sodass die identischen Transformationen während des Trainings und der Inferenz mit genau demselben Code ausgeführt werden. Mit dem Modellierungscode, einschließlich SavedModel aus der Transform-Komponente, können Sie Ihre Trainings- und Bewertungsdaten nutzen und Ihr Modell trainieren.

Wenn Sie mit Estimator-basierten Modellen arbeiten, sollte der letzte Abschnitt Ihres Modellierungscodes Ihr Modell sowohl als SavedModel als auch als EvalSavedModel speichern. Das Speichern als EvalSavedModel stellt sicher, dass die zur Trainingszeit verwendeten Metriken auch während der Evaluierung verfügbar sind (beachten Sie, dass dies für kerasbasierte Modelle nicht erforderlich ist). Ein EvalSavedModel Speicher erfordert , dass Sie die Import TensorFlow Modellanalyse (TFMA) Bibliothek in Ihrer Trainer - Komponente.

import tensorflow_model_analysis as tfma
...

tfma.export.export_eval_savedmodel(
        estimator=estimator,
        export_dir_base=eval_model_dir,
        eval_input_receiver_fn=receiver_fn)

Eine optionale Tuner - Komponente kann der Hyperparameter (zB Anzahl der Schichten) für das Modell vor dem Trainer abzustimmen hinzugefügt werden. Mit dem gegebenen Modell und dem Suchraum der Hyperparameter findet der Tuning-Algorithmus die besten Hyperparameter basierend auf dem Ziel.

Modellleistung analysieren und verstehen

Modellanalyse

Nach der anfänglichen Modellentwicklung und dem Training ist es wichtig, die Leistung Ihres Modells zu analysieren und wirklich zu verstehen. Eine typische TFX - Pipeline wird eine umfassen Evaluator - Komponente, die die Fähigkeiten der nutzt TensorFlow Modellanalyse (TFMA) Bibliothek, die für diese Phase der Entwicklung einen Leistungs Toolset zur Verfügung stellt. Ein Evaluator - Komponente verbraucht das Modell , dass Sie oben ausgeführt, und ermöglicht es Ihnen , eine Liste angeben tfma.SlicingSpec , dass Sie verwenden können , wenn die Visualisierung und das Modell die Leistung zu analysieren. Jeder SlicingSpec definiert eine Scheibe Ihrer Trainingsdaten , die Sie untersuchen möchten, wie bestimmte Kategorien für kategoriale Merkmale oder bestimmte Bereiche für numerische Funktionen.

Dies wäre beispielsweise wichtig, um die Leistung Ihres Modells für verschiedene Segmente Ihrer Kunden zu verstehen, die nach jährlichen Einkäufen, geografischen Daten, Altersgruppe oder Geschlecht segmentiert werden können. Dies kann besonders wichtig für Datensätze mit langen Schwänzen sein, bei denen die Leistung einer dominanten Gruppe eine inakzeptable Leistung für wichtige, aber kleinere Gruppen maskieren kann. Zum Beispiel kann Ihr Modell für durchschnittliche Mitarbeiter gut abschneiden, aber für Führungskräfte kläglich versagen, und es könnte für Sie wichtig sein, dies zu wissen.

Modellanalyse und Visualisierung

Nachdem Sie Ihre ersten Lauf Ihrer Daten durch Ausbildung Ihres Modells und den Betrieb der Abschluss Evaluator - Komponente (die nutzt TFMA auf die Trainingsergebnisse), können Sie die Ergebnisse in einem Jupyter Stil Notebook visualisieren. Für zusätzliche Durchläufe können Sie diese Ergebnisse vergleichen, während Sie Anpassungen vornehmen, bis Ihre Ergebnisse für Ihr Modell und Ihre Anwendung optimal sind.

Sie werden zunächst abfragen ML Metadaten (MLMD) die Ergebnisse dieser Ausführungen dieser Komponenten zu lokalisieren und dann die API Visualisierung Unterstützung in TFMA verwenden , um die Visualisierungen in Ihrem Notebook zu erstellen. Dazu gehören tfma.load_eval_results und tfma.view.render_slicing_metrics diese Visualisierung verwenden Sie besser die Eigenschaften des Modells verstehen und bei Bedarf ändern , wie erforderlich.

Validierung der Modellleistung

Als Teil der Analyse der Leistung eines Modells möchten Sie möglicherweise die Leistung anhand einer Baseline (z. B. des derzeit bereitgestellten Modells) überprüfen. Modellvalidierung wird sowohl durchgeführt , indem ein Kandidat und das Basismodell der Evaluator - Komponente. Der Evaluator berechnet Metriken (zB AUC, Verlust) sowohl für den Kandidaten als auch für die Baseline zusammen mit einem entsprechenden Satz von Diff-Metriken. Schwellenwerte können dann angewendet und verwendet werden, um Ihre Modelle mit einem Gate in die Produktion zu bringen.

Validieren, dass ein Modell bereitgestellt werden kann

Infrarot-Validierung

Bevor Sie das trainierte Modell bereitstellen, sollten Sie möglicherweise überprüfen, ob das Modell in der Bereitstellungsinfrastruktur wirklich bereitgestellt werden kann. Dies ist besonders in Produktionsumgebungen wichtig, um sicherzustellen, dass das neu veröffentlichte Modell das System nicht daran hindert, Vorhersagen zu liefern. Die InfraValidator Komponente einen Kanarienvogel Einsatz des Modells in einer Sandbox - Umgebung machen und gegebenenfalls echte Anfragen senden zu überprüfen, ob Ihr Modell richtig funktioniert.

Bereitstellungsziele

Nachdem Sie ein Modell entwickelt und trainiert haben, mit dem Sie zufrieden sind, ist es nun an der Zeit, es auf einem oder mehreren Bereitstellungszielen bereitzustellen, wo es Rückschlussanforderungen empfängt. TFX unterstützt die Bereitstellung auf drei Klassen von Bereitstellungszielen. Trainierte Modelle, die als SavedModels exportiert wurden, können auf einem oder allen dieser Bereitstellungsziele bereitgestellt werden.

Komponentenfluss

Schlussfolgerung: TensorFlow-Bereitstellung

TensorFlow Portion (TFS) ist ein flexibles, hochleistungsfähigen Serving - System für die maschinellen Lernmodelle, für Produktionsumgebungen konzipiert. Es verwendet ein SavedModel und akzeptiert Inferenzanforderungen entweder über REST- oder gRPC-Schnittstellen. Es läuft als eine Reihe von Prozessen auf einem oder mehreren Netzwerkservern und verwendet eine von mehreren fortschrittlichen Architekturen, um Synchronisation und verteilte Berechnungen zu handhaben. Siehe die TFS - Dokumentation für weitere Informationen über die Entwicklung und TFS - Lösungen bereitstellen.

In einer typischen Pipeline, ein SavedModel , die in einen trainiert wurde Trainer Komponente erster infra validierten in einer würde InfraValidator Komponente. InfraValidator startet einen Canary-TFS-Modellserver, um das SavedModel tatsächlich bereitzustellen. Wenn die Validierung bestanden hat, ein Pusher wird Komponente schließlich die SavedModel auf Ihre TFS Infrastruktur bereitstellen. Dies beinhaltet die Handhabung mehrerer Versionen und Modellaktualisierungen.

Inferenz in nativen Mobil- und IoT-Anwendungen: TensorFlow Lite

TensorFlow Lite ist eine Suite von Tools, die helfen Entwicklern nutzen , um ihre geschulten TensorFlow Models in native mobile und IoT - Anwendungen gewidmet ist. Es verwendet dieselben SavedModels wie TensorFlow Serving und wendet Optimierungen wie Quantisierung und Beschneidung an, um die Größe und Leistung der resultierenden Modelle für die Herausforderungen bei der Ausführung auf mobilen und IoT-Geräten zu optimieren. Weitere Informationen zur Verwendung von TensorFlow Lite finden Sie in der Dokumentation zu TensorFlow Lite.

Inferenz in JavaScript: TensorFlow JS

TensorFlow JS ist eine JavaScript - Bibliothek für die Ausbildung und den Einsatz von ML - Modelle im Browser und auf Node.js. Es verwendet dieselben SavedModels wie TensorFlow Serving und TensorFlow Lite und konvertiert sie in das TensorFlow.js-Webformat. Weitere Informationen zur Verwendung von TensorFlow JS finden Sie in der Dokumentation zu TensorFlow JS.

Erstellen einer TFX-Pipeline mit Airflow

Überprüfen Sie Luftstrom Workshop für Details

Erstellen einer TFX-Pipeline mit Kubeflow

Installieren

Kubeflow erfordert einen Kubernetes-Cluster, um die Pipelines im großen Maßstab auszuführen. Siehe die Kubeflow Einsatz Richtlinie , die Führung durch die Optionen für den Cluster Kubeflow bereitstellen.

Konfigurieren und Ausführen der TFX-Pipeline

Bitte beachten Sie die TFX auf Cloud - AI - Plattform Pipeline Tutorial die TFX Beispiel Pipelines auf Kubeflow laufen. TFX-Komponenten wurden containerisiert, um die Kubeflow-Pipeline zusammenzustellen, und das Beispiel veranschaulicht die Möglichkeit, die Pipeline so zu konfigurieren, dass sie große öffentliche Datasets liest und Trainings- und Datenverarbeitungsschritte in großem Maßstab in der Cloud ausführt.

Befehlszeilenschnittstelle für Pipeline-Aktionen

TFX bietet eine einheitliche CLI, die die Durchführung aller Pipeline-Aktionen wie Erstellen, Aktualisieren, Ausführen, Auflisten und Löschen von Pipelines auf verschiedenen Orchestratoren wie Apache Airflow, Apache Beam und Kubeflow unterstützt. Für Details folgen Sie bitte diesen Anweisungen .