This page was translated by the Cloud Translation API.
Switch to English

Das TFX-Benutzerhandbuch

Einführung

TFX ist eine maschinelle Lernplattform (ML) im Produktionsmaßstab von Google, die auf TensorFlow basiert. Es bietet ein Konfigurationsframework und gemeinsam genutzte Bibliotheken zur Integration allgemeiner Komponenten, die zum Definieren, Starten und Überwachen Ihres maschinellen Lernsystems erforderlich sind.

Installation

Python PyPI

pip install tfx

Über TFX

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

  • Ein Toolkit zum Bau 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, mit denen Sie problemlos mit dem Aufbau eines ML-Prozesses beginnen können.

    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 Ihren eigenen benutzerdefinierten Komponenten hinzuzufügen oder sie separat zu verwenden.

    Erfahren Sie mehr über die TFX-Bibliotheken .

TFX ist ein Toolkit für maschinelles Lernen im Google-Produktionsmaßstab, das auf TensorFlow basiert. Es bietet ein Konfigurationsframework und gemeinsam genutzte Bibliotheken zur Integration allgemeiner Komponenten, die zum Definieren, Starten und Überwachen Ihres maschinellen Lernsystems erforderlich sind.

TFX-Standardkomponenten

Eine TFX-Pipeline ist eine Folge von Komponenten, die eine ML-Pipeline implementieren, die speziell für skalierbare, leistungsstarke maschinelle Lernaufgaben entwickelt wurde. Dies umfasst das Modellieren, Trainieren, Bereitstellen von Inferenzen und das Verwalten von Bereitstellungen für Online-, native Mobil- und JavaScript-Ziele.

Eine TFX-Pipeline enthält normalerweise die folgenden Komponenten:

  • ExampleGen ist die anfängliche Eingabekomponente einer Pipeline, die das Eingabedatensatz aufnimmt und optional aufteilt.

  • StatisticsGen berechnet Statistiken für den Datensatz.

  • SchemaGen untersucht die Statistiken und erstellt ein Datenschema.

  • ExampleValidator sucht nach Anomalien und fehlenden Werten im Dataset.

  • Transform führt das Feature-Engineering für das Dataset durch.

  • Trainer trainiert das Modell.

  • Der Tuner stimmt die Hyperparameter des Modells ab.

  • Der Evaluator führt eine gründliche Analyse der Trainingsergebnisse durch und hilft Ihnen bei der Validierung Ihrer exportierten Modelle, um sicherzustellen, dass diese "gut genug" sind, um in die Produktion gebracht zu werden.

  • InfraValidator überprüft, ob das Modell tatsächlich über die Infrastruktur bedient werden kann, und verhindert, dass ein fehlerhaftes Modell übertragen wird.

  • Pusher setzt das Modell auf einer bedienenden Infrastruktur ein.

  • BulkInferrer führt eine Stapelverarbeitung für ein Modell mit unbeschrifteten Inferenzanforderungen durch.

Dieses Diagramm zeigt den Datenfluss zwischen diesen Komponenten:

Komponentenfluss

TFX-Bibliotheken

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

Bibliotheken und Komponenten

TFX bietet mehrere Python-Pakete, die die Bibliotheken sind, die zum Erstellen von Pipeline-Komponenten verwendet werden. Mit diesen Bibliotheken erstellen Sie die Komponenten Ihrer Pipelines, sodass sich Ihr Code auf die einzigartigen Aspekte Ihrer Pipeline konzentrieren kann.

TFX-Bibliotheken umfassen:

  • TensorFlow Data Validation (TFDV) ist eine Bibliothek zur Analyse und Validierung von Daten zum maschinellen Lernen. Es ist hoch skalierbar und funktioniert gut mit TensorFlow und TFX. TFDV beinhaltet:

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

    • Automatisierte Generierung von Datenschemata zur Beschreibung der Erwartungen an Daten wie erforderliche Werte, Bereiche und Vokabulare.

    • Ein Schema-Viewer, mit dem Sie das Schema überprüfen können.

    • Anomalieerkennung zur Identifizierung von Anomalien wie fehlenden Merkmalen, Werten außerhalb des Bereichs oder falschen Merkmalstypen, um nur einige zu nennen.

    • Ein Anomalie-Viewer, damit Sie sehen können, welche Funktionen Anomalien aufweisen, und mehr erfahren, um sie zu korrigieren.

  • TensorFlow Transform (TFT) ist eine Bibliothek zur Vorverarbeitung von Daten mit TensorFlow. Die TensorFlow-Transformation ist nützlich für Daten, für die ein vollständiger Durchlauf erforderlich ist, z.

    • Normalisieren Sie einen Eingabewert durch Mittelwert und Standardabweichung.
    • Konvertieren Sie Zeichenfolgen in Ganzzahlen, indem Sie ein Vokabular über alle Eingabewerte generieren.
    • Konvertieren Sie Floats in Ganzzahlen, indem Sie sie basierend auf der beobachteten Datenverteilung Buckets zuweisen.
  • TensorFlow wird zum Trainieren von Modellen 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 wird zum Optimieren von Hyperparametern für das Modell verwendet.

  • Die TensorFlow-Modellanalyse (TFMA) ist eine Bibliothek zur Bewertung von TensorFlow-Modellen. Es wird zusammen mit TensorFlow verwendet, um ein EvalSavedModel zu erstellen, das die Grundlage für seine Analyse bildet. Benutzer können ihre Modelle anhand großer Datenmengen auf verteilte Weise bewerten, wobei dieselben in ihrem Trainer definierten Metriken verwendet werden. Diese Metriken können über verschiedene Datenscheiben berechnet und in Jupyter-Notizbüchern visualisiert werden.

  • TensorFlow-Metadaten (TFMD) bieten Standarddarstellungen für Metadaten, die beim Trainieren von Modellen für maschinelles Lernen mit TensorFlow hilfreich sind. Die Metadaten können von Hand oder automatisch während der Eingabedatenanalyse erstellt und zur Datenvalidierung, -exploration und -transformation verwendet werden. Die Metadatenserialisierungsformate umfassen:

    • Ein Schema, das tabellarische Daten beschreibt (z. B. Beispiele).
    • Eine Sammlung zusammenfassender Statistiken über solche Datensätze.
  • ML Metadata (MLMD) ist eine Bibliothek zum Aufzeichnen und Abrufen von Metadaten, die mit Workflows von ML-Entwicklern und Datenwissenschaftlern verknüpft sind. Meistens verwenden die Metadaten TFMD-Darstellungen. MLMD verwaltet die Persistenz mithilfe von SQL-Lite , MySQL und anderen ähnlichen Datenspeichern.

Unterstützende Technologien

Erforderlich

  • Apache Beam ist ein einheitliches Open Source-Modell zum Definieren von Pipelines für die parallele Verarbeitung von Stapel- und Streaming-Daten. TFX verwendet Apache Beam, um datenparallele Pipelines zu implementieren. Die Pipeline wird dann von einem der von Beam unterstützten Backends für verteilte Verarbeitung ausgeführt, zu denen Apache Flink, Apache Spark, Google Cloud Dataflow und andere gehören.

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 zum programmgesteuerten Erstellen, Planen und Überwachen von Workflows. TFX verwendet Airflow, um Workflows als gerichtete azyklische Diagramme (DAGs) von Aufgaben zu erstellen. Der Airflow-Scheduler führt Aufgaben für eine Reihe von Workern aus, während er den angegebenen Abhängigkeiten folgt. Umfangreiche Befehlszeilenprogramme machen das Ausführen komplexer Operationen an DAGs zum Kinderspiel. Die umfangreiche Benutzeroberfläche erleichtert die Visualisierung von Pipelines, die in der Produktion ausgeführt werden, die Überwachung des Fortschritts und die Behebung von Problemen bei Bedarf. Wenn Workflows als Code definiert werden, werden sie wartbarer, versionierbarer, testbarer und kollaborativer.

  • Kubeflow hat sich zum Ziel gesetzt, die Bereitstellung von Workflows für maschinelles Lernen (ML) auf Kubernetes einfach, portabel und skalierbar zu gestalten. Das Ziel von Kubeflow besteht nicht darin, andere Dienste neu zu erstellen, sondern eine einfache Möglichkeit zu bieten, erstklassige Open-Source-Systeme für ML in verschiedenen Infrastrukturen bereitzustellen. Kubeflow-Pipelines ermöglichen die Erstellung und Ausführung reproduzierbarer Workflows auf Kubeflow, integriert in Experimente und Notebook-basierte Erfahrungen. Zu den Kubeflow Pipelines-Diensten in Kubernetes gehören der gehostete Metadatenspeicher, die containergestützte Orchestrierungs-Engine, der Notebook-Server und die Benutzeroberfläche, mit deren Hilfe Benutzer komplexe ML-Pipelines in großem Maßstab entwickeln, ausführen und verwalten können. Das Kubeflow Pipelines SDK ermöglicht die programmgesteuerte Erstellung und gemeinsame Nutzung von Komponenten und die Zusammensetzung von Pipelines.

Portabilität und Interoperabilität

TFX kann in mehrere Umgebungen und Orchestrierungs-Frameworks portiert werden , einschließlich Apache Airflow , Apache Beam und Kubeflow . Es ist auch auf verschiedene Computerplattformen, einschließlich On-Premise- und Cloud-Plattformen wie die Google Cloud Platform (GCP), portierbar. Insbesondere arbeitet TFX mit mehreren verwalteten GCP-Diensten wie der Cloud AI-Plattform für Training und Vorhersage und dem Cloud-Datenfluss für die verteilte Datenverarbeitung für verschiedene andere Aspekte des ML-Lebenszyklus zusammen.

Model 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 Gewichte 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 zu diesem Punkt gelernten Gewichte enthalten.

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

SavedModel

  • Was ist ein SavedModel? Eine universelle, sprachneutrale, hermetische und wiederherstellbare Serialisierung eines TensorFlow-Modells.
  • Warum ist es wichtig : Es ermöglicht übergeordneten Systemen, TensorFlow-Modelle mit einer einzigen Abstraktion zu erstellen, zu transformieren und zu konsumieren.

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-Service für Vorhersagen zu verwandeln, können Sie das Modell als SavedModel serialisieren und mit TensorFlow Serving bereitstellen. Weitere Informationen finden Sie unter Bereitstellen eines TensorFlow-Modells .

Schema

Einige TFX-Komponenten verwenden eine Beschreibung Ihrer Eingabedaten, die als Schema bezeichnet wird . Das Schema ist eine Instanz von schema.proto . Schemata sind eine Art Protokollpuffer , der allgemein als "Protobuf" bekannt ist. Das Schema kann Datentypen für Feature-Werte angeben, unabhängig davon, ob ein Feature in allen Beispielen, zulässigen Wertebereichen und anderen Eigenschaften vorhanden sein muss. 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 maschinellen Lernprojekts, von der Forschung, dem Experimentieren und der Entwicklung auf Ihrem lokalen Computer bis zur Bereitstellung. Um Codeduplizierungen zu vermeiden und das Potenzial für Trainings- / Serving-Skew auszuschließen, wird dringend empfohlen, Ihre TFX-Pipeline sowohl für das Modelltraining als auch für die Bereitstellung trainierter Modelle zu implementieren und Transformationskomponenten zu verwenden , die die TensorFlow Transform- Bibliothek sowohl für das Training als auch für die Inferenz nutzen. 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. Außerdem profitieren Sie davon, diesen Code einmal zu schreiben.

Datenexploration, -visualisierung und -bereinigung

Datenexploration, -visualisierung und -bereinigung

TFX-Pipelines beginnen normalerweise mit einer ExampleGen- Komponente, die Eingabedaten akzeptiert und als tf.Examples formatiert. Dies geschieht häufig, nachdem die Daten in Trainings- und Evaluierungsdatensätze aufgeteilt wurden, sodass tatsächlich zwei Kopien der ExampleGen-Komponenten vorhanden sind, jeweils eine für Training und Evaluierung. Darauf folgen normalerweise eine StatisticsGen- Komponente und eine SchemaGen- Komponente, die Ihre Daten untersuchen und auf ein Datenschema und Statistiken schließen. Das Schema und die Statistiken werden von einer ExampleValidator- Komponente verwendet, die nach Anomalien, fehlenden Werten und falschen Datentypen in Ihren Daten sucht. Alle diese Komponenten nutzen die Funktionen der TensorFlow Data Validation- Bibliothek.

Die TensorFlow-Datenvalidierung (TFDV) ist ein wertvolles Werkzeug für die erste Untersuchung, Visualisierung und Bereinigung Ihres Datensatzes. TFDV untersucht Ihre Daten und leitet daraus die Datentypen, Kategorien und Bereiche ab. Anschließend können Anomalien und fehlende Werte automatisch identifiziert werden. Es bietet auch Visualisierungstools, mit denen Sie Ihren Datensatz untersuchen und verstehen können. Nach Abschluss Ihrer Pipeline können Sie Metadaten aus MLMD lesen und die Visualisierungstools von TFDV in einem Jupyter-Notizbuch verwenden, um Ihre Daten zu analysieren.

Nach Ihrer ersten Modellschulung und -bereitstellung kann TFDV verwendet werden, um neue Daten von Inferenzanforderungen an Ihre bereitgestellten Modelle zu überwachen und nach Anomalien und / oder Abweichungen zu suchen. Dies ist besonders nützlich für Zeitreihendaten, die sich im Laufe der Zeit aufgrund von Trend oder Saisonalität ändern, und kann dazu beitragen, Informationen zu erhalten, wenn Datenprobleme vorliegen oder wenn Modelle auf neue Daten umgeschult werden müssen.

Datenvisualisierung

Nachdem Sie Ihren ersten Datenlauf 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 Lä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 fragen zuerst ML-Metadaten (MLMD) ab , um die Ergebnisse dieser Ausführungen dieser Komponenten zu ermitteln, und verwenden dann die Visualisierungsunterstützungs-API in TFDV, um die Visualisierungen in Ihrem Notizbuch zu erstellen. Dies umfasst tfdv.load_statistics () und tfdv.visualize_statistics (). Mit dieser Visualisierung können Sie die Eigenschaften Ihres Datasets besser verstehen und bei Bedarf nach Bedarf ändern.

Modelle entwickeln und trainieren

Feature Engineering

Eine typische TFX-Pipeline enthält eine Transformationskomponente , die das Feature-Engineering durch Nutzung der Funktionen der TensorFlow Transform (TFT) -Bibliothek durchführt. Eine Transformationskomponente verwendet das von einer SchemaGen-Komponente erstellte Schema und wendet Datentransformationen an, um die Features zu erstellen, zu kombinieren und zu transformieren, die zum Trainieren Ihres Modells verwendet werden. Die Bereinigung fehlender Werte und die Konvertierung von Typen sollten auch in der Transform-Komponente durchgeführt werden, wenn jemals die Möglichkeit besteht, dass diese auch in Daten vorhanden sind, die für Inferenzanforderungen gesendet werden. Beim Entwerfen von TensorFlow-Code für das Training in TFX sind einige wichtige Überlegungen zu beachten .

Modellierung und Training

Das Ergebnis einer Transformationskomponente ist ein SavedModel, das während einer Trainer- Komponente in Ihren Modellierungscode in TensorFlow importiert und verwendet wird. 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. Mithilfe des Modellierungscodes, einschließlich des SavedModel aus der Transform-Komponente, können Sie Ihre Trainings- und Bewertungsdaten verwenden 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. Durch das Speichern als EvalSavedModel wird sichergestellt, dass die zur Trainingszeit verwendeten Metriken auch während der Evaluierung verfügbar sind (beachten Sie, dass dies für Keras-basierte Modelle nicht erforderlich ist). Zum Speichern eines EvalSavedModel müssen Sie die TFMA- Bibliothek (TensorFlow Model Analysis) in Ihre Trainer-Komponente importieren.

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)

Vor dem Trainer kann eine optionale Tuner- Komponente hinzugefügt werden, um die Hyperparameter (z. B. Anzahl der Ebenen) für das Modell zu optimieren. Mit dem angegebenen Modell und dem Suchraum der Hyperparameter findet der Optimierungsalgorithmus die besten Hyperparameter basierend auf dem Ziel.

Modellleistung analysieren und verstehen

Modellanalyse

Nach der ersten Modellentwicklung und Schulung ist es wichtig, die Leistung Ihres Modells zu analysieren und wirklich zu verstehen. Eine typische TFX-Pipeline wird eine Evaluator- Komponente enthalten, die die Funktionen der TFMA- Bibliothek (TensorFlow Model Analysis) nutzt , die ein Power-Toolset für diese Entwicklungsphase bereitstellt. Eine Evaluator-Komponente verwendet das oben exportierte Modell und ermöglicht es Ihnen, eine Liste von tfma.SlicingSpec anzugeben, die Sie zur Visualisierung und Analyse der Leistung Ihres Modells verwenden können. Jede SlicingSpec definiert einen Teil Ihrer Trainingsdaten, den Sie untersuchen möchten, z. B. bestimmte Kategorien für kategoriale Merkmale oder bestimmte Bereiche für numerische Merkmale.

Dies ist beispielsweise wichtig, um zu versuchen, die Leistung Ihres Modells für verschiedene Segmente Ihrer Kunden zu verstehen, die nach jährlichen Einkäufen, geografischen Daten, Altersgruppen oder Geschlecht unterteilt sein 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, jedoch kleinere Gruppen maskieren kann. Beispielsweise kann Ihr Modell für durchschnittliche Mitarbeiter eine gute Leistung erbringen, für leitende Angestellte jedoch kläglich scheitern, und es kann für Sie wichtig sein, dies zu wissen.

Modellanalyse und Visualisierung

Nachdem Sie Ihren ersten Datenlauf abgeschlossen haben, indem Sie Ihr Modell trainiert und die Evaluator- Komponente (die TFMA nutzt) für die Trainingsergebnisse ausgeführt haben, können Sie die Ergebnisse in einem Notizbuch im Jupyter-Stil visualisieren. Für zusätzliche Lä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 fragen zuerst ML-Metadaten (MLMD) ab , um die Ergebnisse dieser Ausführungen dieser Komponenten zu ermitteln, und verwenden dann die Visualisierungsunterstützungs-API in TFMA, um die Visualisierungen in Ihrem Notizbuch zu erstellen. Dies umfasst tfma.load_eval_results und tfma.view.render_slicing_metrics. Mit dieser Visualisierung können Sie die Eigenschaften Ihres Modells besser verstehen und bei Bedarf nach Bedarf ändern.

Überprüfen der Modellleistung

Im Rahmen der Analyse der Leistung eines Modells möchten Sie möglicherweise die Leistung anhand einer Basislinie (z. B. des aktuell bereitgestellten Modells) überprüfen. Die Modellvalidierung wird durchgeführt, indem sowohl ein Kandidaten- als auch ein Basismodell an die Evaluator- Komponente übergeben werden. Der Evaluator berechnet Metriken (z. B. AUC, Verlust) sowohl für den Kandidaten als auch für die Basislinie zusammen mit einem entsprechenden Satz von Diff-Metriken. Anschließend können Schwellenwerte angewendet und verwendet werden, um Ihre Modelle in die Produktion zu bringen.

Überprüfen, ob ein Modell bedient werden kann

Infra-Validierung

Bevor Sie das trainierte Modell bereitstellen, möchten Sie möglicherweise überprüfen, ob das Modell in der bereitstellenden Infrastruktur wirklich bedienbar ist. Dies ist besonders in Produktionsumgebungen wichtig, um sicherzustellen, dass das neu veröffentlichte Modell das System nicht daran hindert, Vorhersagen zu treffen. Die InfraValidator- Komponente führt eine kanarische Bereitstellung Ihres Modells in einer Sandbox-Umgebung durch und sendet optional echte Anforderungen, um zu überprüfen, ob Ihr Modell ordnungsgemäß funktioniert.

Bereitstellungsziele

Nachdem Sie ein Modell entwickelt und trainiert haben, mit dem Sie zufrieden sind, können Sie es jetzt auf einem oder mehreren Bereitstellungszielen bereitstellen, auf denen Inferenzanforderungen empfangen werden. TFX unterstützt die Bereitstellung auf drei Klassen von Bereitstellungszielen. Geschulte Modelle, die als SavedModels exportiert wurden, können auf einem oder allen dieser Bereitstellungsziele bereitgestellt werden.

Komponentenfluss

Inferenz: TensorFlow Serving

TensorFlow Serving (TFS) ist ein flexibles, leistungsstarkes Serving-System für Modelle des maschinellen Lernens, das für Produktionsumgebungen entwickelt wurde. Es verbraucht ein SavedModel und akzeptiert Inferenzanforderungen über REST- oder gRPC-Schnittstellen. Es wird als eine Reihe von Prozessen auf einem oder mehreren Netzwerkservern ausgeführt und verwendet eine von mehreren erweiterten Architekturen, um die Synchronisation und verteilte Berechnung zu handhaben. Weitere Informationen zum Entwickeln und Bereitstellen von TFS-Lösungen finden Sie in der TFS-Dokumentation .

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 kanarischen TFS-Modellserver, um das SavedModel tatsächlich zu bedienen. Wenn die Validierung abgeschlossen ist, stellt eine Pusher- Komponente das SavedModel endgültig für Ihre TFS-Infrastruktur bereit. Dies umfasst die Behandlung mehrerer Versionen und Modellaktualisierungen.

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

TensorFlow Lite ist eine Suite von Tools, mit denen Entwickler ihre geschulten TensorFlow-Modelle in nativen Mobil- und IoT-Anwendungen verwenden können. Es verwendet dieselben SavedModels wie TensorFlow Serving und wendet Optimierungen wie Quantisierung und Bereinigung an, um die Größe und Leistung der resultierenden Modelle für die Herausforderungen beim Ausführen auf Mobil- 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 zum Trainieren und Bereitstellen von ML-Modellen im Browser und auf Node.js. Es verwendet dieselben SavedModels wie TensorFlow Serving und TensorFlow Lite und konvertiert sie in das Webformat TensorFlow.js. Weitere Informationen zur Verwendung von TensorFlow JS finden Sie in der Dokumentation zu TensorFlow JS.

Erstellen einer TFX-Pipeline mit Luftstrom

Überprüfen Sie die Luftstromwerkstatt auf Details

Erstellen einer TFX-Pipeline mit Kubeflow

Konfiguration

Für Kubeflow ist ein Kubernetes-Cluster erforderlich, um die Pipelines im Maßstab auszuführen. Weitere Informationen finden Sie in der Kubeflow-Bereitstellungsrichtlinie, die die Optionen für die Bereitstellung des Kubeflow-Clusters enthält.

Konfigurieren Sie die TFX-Pipeline und führen Sie sie aus

Befolgen Sie das Tutorial zur TFX on Cloud AI-Plattform-Pipeline , um die TFX-Beispielpipeline auf Kubeflow auszuführen. TFX-Komponenten wurden containerisiert, um die Kubeflow-Pipeline zu erstellen. Das Beispiel zeigt die Möglichkeit, die Pipeline so zu konfigurieren, dass große öffentliche Datenmengen gelesen und Schulungs- und Datenverarbeitungsschritte in der Cloud in großem Maßstab ausgeführt werden.

Befehlszeilenschnittstelle für Pipeline-Aktionen

TFX bietet eine einheitliche CLI, mit der alle Pipeline-Aktionen wie das Erstellen, Aktualisieren, Ausführen, Auflisten und Löschen von Pipelines auf verschiedenen Orchestratoren wie Apache Airflow, Apache Beam und Kubeflow ausgeführt werden können. Für Details folgen Sie bitte diesen Anweisungen .