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

TFX auf Cloud AI Platform-Pipelines

Einführung

In dieser Anleitung werden TensorFlow Extended (TFX) und Cloud AI Platform Pipelines vorgestellt und Sie lernen, Ihre eigenen Pipelines für maschinelles Lernen in Google Cloud zu erstellen. Es zeigt die Integration mit TFX, AI Platform Pipelines und Kubeflow sowie die Interaktion mit TFX in Jupyter-Notebooks.

Am Ende dieser Anleitung haben Sie eine ML-Pipeline erstellt und ausgeführt, die in Google Cloud gehostet wird. Sie können die Ergebnisse jedes Durchlaufs visualisieren und die Herkunft der erstellten Artefakte anzeigen.

Sie folgen einem typischen ML-Entwicklungsprozess, beginnend mit der Untersuchung des Datasets bis hin zu einer vollständig funktionierenden Pipeline. Unterwegs erkunden Sie Möglichkeiten zum Debuggen und Aktualisieren Ihrer Pipeline sowie zum Messen der Leistung.

Chicago Taxi-Datensatz

TaxiChicago-Taxi

Sie verwenden das Taxi - Datensatz Ausflüge von der Stadt Chicago veröffentlicht.

Sie können mehr lesen über den Datensatz in Google BigQuery . Entdecken Sie die vollständige Datensatz in der BigQuery UI .

Modellziel - Binäre Klassifizierung

Wird der Kunde mehr oder weniger als 20 % Trinkgeld geben?

1. Richten Sie ein Google Cloud-Projekt ein

1.a Richten Sie Ihre Umgebung in Google Cloud ein

Um loszulegen, benötigen Sie ein Google Cloud-Konto. Wenn Sie bereits eine haben, fahren Sie mit Neuem Projekt zu erstellen .

  1. Gehen Sie auf die Google Cloud Console .

  2. Stimmen Sie den Nutzungsbedingungen von Google Cloud zu

  3. Wenn Sie mit einem kostenlosen Testzugang starten möchten, klicken Sie auf Try For Free (oder Jetzt kostenlos gestartet ).

    1. Wähle dein Land.

    2. Stimmen Sie den Nutzungsbedingungen zu.

    3. Geben Sie die Rechnungsdetails ein.

      Zu diesem Zeitpunkt werden Ihnen keine Kosten berechnet. Wenn Sie keine anderen Google Cloud - Projekte haben, können Sie dieses Tutorial ohne Überschreitung der Google Cloud Freie Tier Grenzen, die zur gleichen Zeit läuft ein Maximum von 8 Kerne enthält.

1.b Erstellen Sie ein neues Projekt.

  1. Von der Haupt Google Cloud Dashboard , klicken Sie auf das Projekt Dropdown neben dem Google Cloud Platform - Header und wählen Sie Neues Projekt.
  2. Geben Sie Ihrem Projekt einen Namen und geben Sie weitere Projektdetails ein
  3. Nachdem Sie ein Projekt erstellt haben, wählen Sie es aus der Projekt-Dropdown-Liste aus.

2. Richten Sie eine AI Platform-Pipeline auf einem neuen Kubernetes-Cluster ein und stellen Sie sie bereit

  1. Gehen Sie auf die AI - Plattform Pipelines Cluster Seite.

    Im Hauptnavigationsmenü: ≡ > AI Platform > Pipelines

  2. Klicken Sie auf + Neue Instanz einen neuen Cluster zu erstellen.

  3. Auf der Kubeflow Pipelines Übersichtsseite auf Konfigurieren.

    Möglicherweise müssen Sie einige Minuten warten, bevor Sie fortfahren, während die Kubernetes Engine-APIs für Sie aktiviert werden.

  4. Auf der Deploy Kubeflow Pipelines Seite:

    1. Wählen Sie eine Zone (oder "Region") für den Cluster.

    2. WICHTIG Überprüfen Sie markiert die Box Zugriff auf die APIs folgenden Wolke zulassen. (Dies ist erforderlich, damit dieser Cluster auf die anderen Teile Ihres Projekts zugreifen kann. Wenn Sie diesen Schritt verpassen, ist es etwas schwierig, ihn später zu reparieren.)

    3. Klicken Sie auf Erstellen, und einige Minuten warten , bis der Cluster erstellt wurde.

    4. Wählen Sie einen Namespace und einen Instanznamen aus (die Verwendung der Standardeinstellungen ist in Ordnung). Sie müssen nicht Verwenden verwalteten Speicher überprüfen.

    5. Klicken Sie auf Verteilen und einige Momente warten , bis die Pipeline eingesetzt wurde. Durch die Bereitstellung von Kubeflow Pipelines akzeptieren Sie die Nutzungsbedingungen.

3. Richten Sie die Cloud AI Platform Notebook-Instanz ein.

  1. Gehen Sie auf die AI - Plattform Notebooks Seite.

    Im Hauptnavigationsmenü: ≡ -> AI Platform -> Notebooks

  2. Aktivieren Sie die Compute Engine API, wenn Sie dazu aufgefordert werden.

  3. Erstellen einer neuen Instanz mit TensorFlow 2.1 (oder höher) installiert ist .

    Neue Instanz -> TensorFlow 2.1 -> Ohne GPU

    Um innerhalb der Grenzen des kostenlosen Kontingents zu bleiben, akzeptieren Sie die Standardeinstellungen hier nicht. Sie müssen die Anzahl der für diese Instanz verfügbaren vCPUs von 4 auf 2 reduzieren:

    1. Wählen Sie Anpassen an der Unterseite der neuen Notebook - Instanz bilden.
    2. Wählen Sie eine Maschinenkonfiguration mit 1 oder 2 vCPUs.

4. Starten Sie das Erste-Schritte-Notizbuch

  1. Gehen Sie auf die AI - Plattform Pipelines Cluster Seite.

    Im Hauptnavigationsmenü: ≡ -> AI Platform -> Pipelines

  2. Auf der Linie für den Cluster Sie in diesem Tutorial verwenden, klicken Sie auf Öffnen Pipelines Armaturenbrett.

    offenes Armaturenbrett

  3. Auf der Seite Erste Schritte auf Öffnen TF 2.1 Notebook.

  4. Wählen Sie das Notebook Instanz , die Sie für dieses Tutorial verwenden und auf Weiter.

    select-notebook

5. Arbeiten Sie im Notebook weiter

Installieren

Das Notebook startet Einführung durch die Installation von TFX und Kubeflow Pipelines (KFP) in die VM , die Jupyter Lab in läuft.

Es überprüft dann, welche Version von TFX installiert ist, führt einen Import durch und legt die Projekt-ID fest und druckt sie aus:

Python-Version überprüfen und importieren

Verbinden Sie sich mit Ihren Google Cloud-Diensten

Die Pipeline-Konfiguration benötigt Ihre Projekt-ID, die Sie über das Notebook abrufen und als Umgebungsvariable festlegen können.

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

Legen Sie nun Ihren KFP-Cluster-Endpunkt fest.

Dies kann der URL des Pipelines-Dashboards entnommen werden. Rufen Sie das Kubeflow-Pipeline-Dashboard auf und sehen Sie sich die URL an. Der Endpunkt ist alles in der URL mit dem Start https:// , bis zu und einschließlich googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

Das Notebook legt dann einen eindeutigen Namen für das benutzerdefinierte Docker-Image fest:

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. Kopieren Sie eine Vorlage in Ihr Projektverzeichnis

Bearbeiten Sie die nächste Notebookzelle, um einen Namen für Ihre Pipeline festzulegen. In diesem Tutorial werden wir verwenden my_pipeline .

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)

Das Notebook verwendet dann die tfx CLI die Pipeline - Vorlage zu kopieren. Dieses Tutorial verwendet den Chicago Taxi - Datensatz binäre Klassifizierung durchzuführen, so dass die Vorlage das Modell setzt taxi :

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

Das Notebook ändert dann seinen CWD-Kontext in das Projektverzeichnis:

%cd {PROJECT_DIR}

Durchsuchen Sie die Pipeline-Dateien

Auf der linken Seite des Cloud AI Platform Notebooks sollten Sie einen Dateibrowser sehen. Es sollte ein Verzeichnis mit dem Pipeline - Namen (seine my_pipeline ). Öffnen Sie es und sehen Sie sich die Dateien an. (Sie können sie auch in der Notebook-Umgebung öffnen und bearbeiten.)

# You can also list the files from the shell
 ls

Der tfx template copy Befehl über ein Grundgerüst von Dateien erstellt , die eine Pipeline bauen. Dazu gehören Python-Quellcodes, Beispieldaten und Jupyter-Notebooks. Diese sind für dieses spezielle Beispiel gedacht. Für Ihre eigenen Pipelines sind dies die unterstützenden Dateien, die Ihre Pipeline benötigt.

Hier ist eine kurze Beschreibung der Python-Dateien.

  • pipeline - Dieses Verzeichnis enthält die Definition der Pipeline
    • configs.py - definiert gemeinsame Konstanten für Pipeline - Läufern
    • pipeline.py - definiert TFX - Komponenten und eine Rohrleitung
  • models - Dieses Verzeichnis enthält ML Modelldefinitionen.
    • features.py features_test.py - eine klar definierte Funktionen für das Modell
    • preprocessing.py / preprocessing_test.py definiert Vorverarbeitung Aufträge mit - tf::Transform
    • estimator - Dieses Verzeichnis enthält ein Estimator basiertes Modell.
      • constants.py - definiert Konstanten des Modells
      • model.py / model_test.py - definiert DNN Modell TF - Schätzer unter Verwendung von
    • keras - Dieses Verzeichnis enthält eine Keras basiertes Modell.
      • constants.py - definiert Konstanten des Modells
      • model.py / model_test.py - definiert DNN - Modell unter Verwendung Keras
  • beam_runner.py / kubeflow_runner.py - definieren für jeden Läufer Orchestrierungsmodul

7. Führen Sie Ihre erste TFX-Pipeline auf Kubeflow aus

Das Notebook wird die Pipeline mit dem laufen tfx run CLI - Befehl.

Mit Speicher verbinden

Laufrohrleitungen erstellen Artefakte , die in gespeichert werden müssen , ML-Metadaten . Artefakte beziehen sich auf Nutzlasten, bei denen es sich um Dateien handelt, die in einem Dateisystem oder Blockspeicher gespeichert werden müssen. In dieser Anleitung verwenden wir GCS, um unsere Metadaten-Nutzlasten zu speichern, wobei der Bucket verwendet wird, der während der Einrichtung automatisch erstellt wurde. Sein Name wird <your-project-id>-kubeflowpipelines-default .

Erstellen Sie die Pipeline

Das Notebook lädt unsere Beispieldaten in den GCS-Bucket hoch, damit wir sie später in unserer Pipeline verwenden können.

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv

Das Notebook verwendet dann die tfx pipeline create Befehl , um die Pipeline zu erstellen.

!tfx pipeline create  \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image

Während eine Pipeline zu schaffen, Dockerfile generiert ein Docker Bild aufzubauen. Vergessen Sie nicht, diese Dateien zusammen mit anderen Quelldateien zu Ihrem Quellcodeverwaltungssystem (z. B. git) hinzuzufügen.

Führen Sie die Pipeline aus

Das Notebook verwendet dann der tfx run create Befehl einen Ausführungs Lauf Ihrer Pipeline zu starten. Dieser Lauf wird auch unter Experiments im Kubeflow Pipelines-Dashboard aufgeführt.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

Sie können Ihre Pipeline über das Kubeflow Pipelines-Dashboard anzeigen.

8. Bestätigen Sie Ihre Daten

Die erste Aufgabe in jedem Data Science- oder ML-Projekt besteht darin, die Daten zu verstehen und zu bereinigen.

  • Verstehen Sie die Datentypen für jedes Feature
  • Suchen Sie nach Anomalien und fehlenden Werten
  • Verstehen Sie die Verteilungen für jedes Feature

Komponenten

DatenkomponentenDatenkomponenten

  • ExampleGen Einspielen und teilt den Eingabedatensatz.
  • StatisticsGen berechnet Statistiken für den Datensatz.
  • SchemaGen SchemaGen sucht die Statistiken und erstellt ein Datenschema.
  • ExampleValidator sucht nach Anomalien und fehlenden Werten im Datensatz.

Im Dateieditor des Jupyter-Labors:

In pipeline / pipeline.py Kommentar- die Linien , die diese Komponenten in Ihre Pipeline anhängen:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

( ExampleGen wurde bereits aktiviert , wenn die Vorlagendateien kopiert wurden.)

Aktualisieren Sie die Pipeline und führen Sie sie erneut aus

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Überprüfen Sie die Rohrleitung

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite für Ihre Pipelineausführung nach Pipelineausgaben. Klicken Sie links auf den Tab "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten den Lauf mit dem Namen Ihrer Pipeline finden können.

Fortgeschritteneres Beispiel

Das hier vorgestellte Beispiel ist eigentlich nur als Einstieg gedacht. Ein komplexeres Beispiel finden Sie in der TensorFlow Data Validation Colab .

Weitere Informationen über TFDV unter Verwendung eines Datensatzes, zu erforschen und zu validieren siehe die Beispiele auf tensorflow.org .

9. Feature-Engineering

Mit Feature Engineering können Sie die Vorhersagequalität Ihrer Daten erhöhen und/oder die Dimensionalität reduzieren.

  • Merkmalskreuze
  • Vokabeln
  • Einbettungen
  • PCA
  • Kategoriale Kodierung

Einer der Vorteile der Verwendung von TFX besteht darin, dass Sie Ihren Transformationscode einmal schreiben und die resultierenden Transformationen zwischen Training und Bereitstellung konsistent sind.

Komponenten

Verwandeln

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

Im Dateieditor des Jupyter-Labors:

In pipeline / pipeline.py finden und die Zeile Kommentar- , die anfügt Transformation in die Pipeline.

# components.append(transform)

Aktualisieren Sie die Pipeline und führen Sie sie erneut aus

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Pipeline-Ausgaben prüfen

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite für Ihre Pipelineausführung nach Pipelineausgaben. Klicken Sie links auf den Tab "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten den Lauf mit dem Namen Ihrer Pipeline finden können.

Fortgeschritteneres Beispiel

Das hier vorgestellte Beispiel ist eigentlich nur als Einstieg gedacht. Ein komplexeres Beispiel sehen die TensorFlow Colab Transformation .

10. Ausbildung

Trainieren Sie ein TensorFlow-Modell mit Ihren schönen, sauberen, transformierten Daten.

  • Beziehen Sie die Transformationen aus dem vorherigen Schritt ein, damit sie konsistent angewendet werden
  • Speichern Sie die Ergebnisse als SavedModel für die Produktion
  • Visualisieren und erkunden Sie den Trainingsprozess mit TensorBoard
  • Speichern Sie auch ein EvalSavedModel zur Analyse der Modellleistung

Komponenten

  • Trainer trainiert ein TensorFlow Modell.

Im Dateieditor des Jupyter-Labors:

In pipeline / pipeline.py finden und Kommentar- der die Trainer in die Pipeline anfügt:

# components.append(trainer)

Aktualisieren Sie die Pipeline und führen Sie sie erneut aus

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Pipeline-Ausgaben prüfen

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite für Ihre Pipelineausführung nach Pipelineausgaben. Klicken Sie links auf den Tab "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten den Lauf mit dem Namen Ihrer Pipeline finden können.

Fortgeschritteneres Beispiel

Das hier vorgestellte Beispiel ist eigentlich nur als Einstieg gedacht. Ein komplexeres Beispiel finden Sie in der TensorBoard Tutorial .

11. Analyse der Modellleistung

Verstehen Sie mehr als nur die Top-Level-Metriken.

  • Benutzer erleben die Modellleistung nur für ihre Abfragen
  • Schlechte Leistung bei Datenscheiben kann durch Top-Level-Metriken verdeckt werden
  • Modellgerechtigkeit ist wichtig
  • Oft sind wichtige Teilmengen von Benutzern oder Daten sehr wichtig und können klein sein
    • Leistung unter kritischen, aber ungewöhnlichen Bedingungen
    • Leistung für wichtige Zielgruppen wie Influencer
  • Wenn Sie ein derzeit in Produktion befindliches Modell ersetzen, stellen Sie zunächst sicher, dass das neue besser ist

Komponenten

  • Evaluator führt tiefere Analyse der Trainingsergebnisse.

Im Dateieditor des Jupyter-Labors:

In pipeline / pipeline.py finden und die Zeile Kommentar- , den Evaluator an die Pipeline anfügt:

components.append(evaluator)

Aktualisieren Sie die Pipeline und führen Sie sie erneut aus

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Pipeline-Ausgaben prüfen

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite für Ihre Pipelineausführung nach Pipelineausgaben. Klicken Sie links auf den Tab "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten den Lauf mit dem Namen Ihrer Pipeline finden können.

12. Das Modell bedienen

Wenn das neue Modell fertig ist, machen Sie es so.

  • Pusher stellt SavedModels an bekannten Standorten bereit

Bereitstellungsziele erhalten neue Modelle von bekannten Standorten

  • TensorFlow-Bereitstellung
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow-Hub

Komponenten

  • Pusher setzt das Modell zu einer versorgenden Infrastruktur.

Im Dateieditor des Jupyter-Labors:

In pipeline / pipeline.py finden und Kommentar- die Zeile , die Pusher an die Pipeline anfügt:

# components.append(pusher)

Pipeline-Ausgaben prüfen

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite für Ihre Pipelineausführung nach Pipelineausgaben. Klicken Sie links auf den Tab "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten den Lauf mit dem Namen Ihrer Pipeline finden können.

Verfügbare Bereitstellungsziele

Sie haben Ihr Modell nun trainiert und validiert, und Ihr Modell ist nun produktionsbereit. Sie können Ihr Modell jetzt auf jedem der TensorFlow-Bereitstellungsziele bereitstellen, einschließlich:

  • TensorFlow Serving , für Ihr Modell auf einem Server oder einer Serverfarm dient , und die Verarbeitung REST und / oder gRPC Inferenz - Anfragen.
  • TensorFlow Lite , für Ihr Modell in einer Android- oder iOS - native mobilen Anwendung , einschließlich, oder in einem Raspberry Pi, IoT oder Mikrocontroller - Anwendung.
  • TensorFlow.js , für Ihr Modell in einem Web - Browser oder Node.JS Anwendung ausgeführt wird .

Fortgeschrittenere Beispiele

Das oben dargestellte Beispiel ist eigentlich nur als Einstieg gedacht. Im Folgenden finden Sie einige Beispiele für die Integration mit anderen Cloud-Diensten.

Überlegungen zu Kubeflow Pipelines-Ressourcen

Abhängig von den Anforderungen Ihres Workloads kann die Standardkonfiguration für Ihre Kubeflow Pipelines-Bereitstellung Ihren Anforderungen entsprechen oder nicht. Sie können Ihre Ressourcenkonfigurationen anpassen pipeline_operator_funcs in Ihrem Anruf KubeflowDagRunnerConfig .

pipeline_operator_funcs ist eine Liste der OpFunc Elemente, die alle die generierten verwandelt ContainerOp Instanzen in der KFP Pipeline - Spezifikation , die von kompiliert wird KubeflowDagRunner .

Zum Beispiel, um configure Speicher können wir verwenden set_memory_request zu erklären , wie viel Speicher benötigt. Eine typische Art und Weise zu tun , ist ein Wrapper für erstellen set_memory_request und es verwendet , um auf die Liste der Pipeline hinzuzufügen OpFunc s:

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

Ähnliche Funktionen zur Ressourcenkonfiguration umfassen:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

versuchen Sie BigQueryExampleGen

BigQuery ist ein serverless, hoch skalierbar und kosteneffizient Data - Warehouse - Wolke. BigQuery kann als Quelle für Trainingsbeispiele in TFX verwendet werden. In diesem Schritt werden wir hinzufügen BigQueryExampleGen an die Pipeline.

Im Dateieditor des Jupyter-Labors:

Doppelklick öffnen pipeline.py . Kommentieren Sie CsvExampleGen und Kommentar- die Linie , die eine Instanz erstellt BigQueryExampleGen . Sie müssen auch die Kommentar- query Argument der create_pipeline Funktion.

Wir müssen das GCP - Projekt verwenden für BigQuery angeben, und dies durch Setzen erfolgt --project in beam_pipeline_args wenn eine Pipeline zu schaffen.

Doppelklick öffnen configs.py . Kommentar- der Definition von BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS und BIG_QUERY_QUERY . Sie sollten die Projekt-ID und den Regionswert in dieser Datei durch die richtigen Werte für Ihr GCP-Projekt ersetzen.

Verzeichnis eine Ebene höher wechseln. Klicken Sie über der Dateiliste auf den Namen des Verzeichnisses. Der Name des Verzeichnisses ist der Name der Pipeline , die ist my_pipeline , wenn Sie nicht die Pipeline Namen geändert haben.

Doppelklick öffnen kubeflow_runner.py . Kommentar- zwei Argumente, query und beam_pipeline_args , für die create_pipeline Funktion.

Jetzt kann die Pipeline BigQuery als Beispielquelle verwenden. Aktualisieren Sie die Pipeline wie zuvor und erstellen Sie einen neuen Ausführungslauf wie in Schritt 5 und 6.

Aktualisieren Sie die Pipeline und führen Sie sie erneut aus

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Dataflow ausprobieren

Mehrere TFX - Komponenten verwenden Apache Beam - Daten-Pipelines parallel zu implementieren, und es bedeutet , dass Sie Datenverarbeitung Workloads mit verteilen können Google Cloud Dataflow . In diesem Schritt legen wir den Kubeflow Orchestrator so fest, dass er Dataflow als Datenverarbeitungs-Back-End für Apache Beam verwendet.

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

Doppelklicken Sie auf pipeline zu ändern Verzeichnis, und doppelklicken Sie auf offene configs.py . Kommentar- der Definition von GOOGLE_CLOUD_REGION und DATAFLOW_BEAM_PIPELINE_ARGS .

Verzeichnis eine Ebene höher wechseln. Klicken Sie über der Dateiliste auf den Namen des Verzeichnisses. Der Name des Verzeichnisses ist der Name der Pipeline , die ist my_pipeline , wenn Sie nicht ändern.

Doppelklick öffnen kubeflow_runner.py . Kommentar- beam_pipeline_args . (Vergewissern Sie sich auch Strom auszukommen beam_pipeline_args , dass Sie in Schritt 7 hinzugefügt)

Aktualisieren Sie die Pipeline und führen Sie sie erneut aus

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Sie können Ihre Datenfluss Jobs finden Dataflow in Cloud Console .

Testen Sie Cloud AI Platform Training and Prediction mit KFP

TFX arbeitet mit mehreren verwaltet GCP - Dienste wie Cloud - AI - Plattform für Ausbildung und Prognose . Sie können Ihren Set Trainer Komponente verwenden Cloud - AI - Plattform Training, einen Managed Service für die Ausbildung ML - Modelle. Wenn darüber hinaus das Modell gebaut und bereit , serviert werden, können Sie Ihr Modell zu Cloud - AI - Plattform Vorhersage für Servieren drücken. In diesem Schritt werden wir unsere setzen Trainer und Pusher - Komponente verwenden Cloud - AI Plattform - Dienste.

Vor dem Bearbeiten von Dateien, können Sie erste AI Platform Training & Prediction API ermöglichen.

Doppelklicken Sie auf pipeline zu ändern Verzeichnis, und doppelklicken Sie auf offene configs.py . Kommentar- der Definition von GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS und GCP_AI_PLATFORM_SERVING_ARGS . Wir werden unsere speziell angefertigten Behälter Bild verwenden , um ein Modell in Cloud - AI - Plattform Ausbildung zu trainieren, so dass wir setzen sollten masterConfig.imageUri in GCP_AI_PLATFORM_TRAINING_ARGS auf den gleichen Wert wie CUSTOM_TFX_IMAGE oben.

Ändern Sie das Verzeichnis eine Ebene nach oben, und doppelklicken Sie auf offene kubeflow_runner.py . Kommentar- ai_platform_training_args und ai_platform_serving_args .

Aktualisieren Sie die Pipeline und führen Sie sie erneut aus

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Sie können Ihre Ausbildung Jobs finden Cloud - AI - Plattform Jobs . Wenn Ihre Pipeline erfolgreich abgeschlossen haben , können Sie Ihr Modell in finden Cloud - AI - Plattform Models .

14. Verwenden Sie Ihre eigenen Daten

In diesem Tutorial haben Sie mit dem Chicago Taxi-Dataset eine Pipeline für ein Modell erstellt. Versuchen Sie nun, Ihre eigenen Daten in die Pipeline einzubringen. Ihre Daten können überall dort gespeichert werden, wo die Pipeline darauf zugreifen kann, einschließlich Google Cloud Storage, BigQuery oder CSV-Dateien.

Sie müssen die Pipelinedefinition ändern, um Ihre Daten aufzunehmen.

Wenn Ihre Daten in Dateien gespeichert sind

  1. Ändern DATA_PATH in kubeflow_runner.py , die den Ort.

Wenn Ihre Daten in BigQuery gespeichert sind

  1. Ändern BIG_QUERY_QUERY in configs.py auf Ihre Abfrage - Anweisung.
  2. Hinzufügen von Features in models / features.py .
  3. Ändern models / preprocessing.py zu Eingangsdaten für die Ausbildung transformieren .
  4. Ändern models / keras / model.py und models / keras / constants.py beschreiben Ihr ML - Modell .

Erfahre mehr über Trainer

Siehe Trainer Komponente Leitfaden für weitere Details zu dem Training Pipelines.

Aufräumen

So bereinigen Sie alle Ressourcen Google Cloud in diesem Projekt verwendet, können Sie die Google Cloud Projekt löschen Sie für das Tutorial verwendet.

Alternativ können Sie einzelne Ressourcen aufzuräumen von jeweils Konsolen Besuch: - Google Cloud Storage - Google Container Registry - Google Kubernetes Motor