Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

TFX auf Cloud AI-Plattform-Pipelines

Einführung

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

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

Sie folgen einem typischen ML-Entwicklungsprozess, indem Sie zunächst den Datensatz untersuchen und eine vollständige funktionierende Pipeline erstellen. Unterwegs werden Sie nach Möglichkeiten suchen, Ihre Pipeline zu debuggen, zu aktualisieren und die Leistung zu messen.

Chicago Taxi Datensatz

TaxiChicago Taxi

Sie verwenden den von der Stadt Chicago veröffentlichten Datensatz für Taxifahrten .

Weitere Informationen zum Datensatz finden Sie in Google BigQuery . Durchsuchen Sie den vollständigen Datensatz in der BigQuery-Benutzeroberfläche .

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

Für den Einstieg benötigen Sie ein Google Cloud-Konto. Wenn Sie bereits eines haben, fahren Sie mit Erstellen eines neuen Projekts fort .

  1. Wechseln Sie zur Google Cloud Console .

  2. Stimmen Sie den Allgemeinen Geschäftsbedingungen von Google Cloud zu

  3. Wenn Sie mit einem kostenlosen Testkonto beginnen möchten, klicken Sie auf Kostenlos testen (oder Kostenlos loslegen ).

    1. Wähle dein Land.

    2. Stimmen Sie den Nutzungsbedingungen zu.

    3. Geben Sie die Rechnungsdetails ein.

      Sie werden zu diesem Zeitpunkt nicht belastet. Wenn Sie keine anderen Google Cloud-Projekte haben, können Sie dieses Lernprogramm abschließen, ohne die Grenzwerte für die kostenlose Google Cloud-Stufe zu überschreiten, die maximal 8 gleichzeitig ausgeführte Kerne umfasst.

1.b Erstellen Sie ein neues Projekt.

  1. Klicken Sie im Haupt-Dashboard von Google Cloud auf die Projekt-Dropdown-Liste neben der Kopfzeile der Google Cloud-Plattform und wählen Sie Neues Projekt .
  2. Geben Sie Ihrem Projekt einen Namen und geben Sie weitere Projektdetails ein
  3. Wenn Sie ein Projekt erstellt haben, wählen Sie es aus der Projekt-Dropdown-Liste aus.

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

  1. Wechseln Sie zur Seite AI Platform Pipelines Clusters .

    Unter dem Hauptnavigationsmenü: ≡> AI-Plattform> Pipelines

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

  3. Klicken Sie auf der Übersichtsseite der Kubeflow-Pipelines 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 Seite Kubeflow-Pipelines bereitstellen :

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

    2. WICHTIG Aktivieren Sie das Kontrollkästchen Zugriff auf die folgenden Cloud-APIs 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 beheben.)

    3. Klicken Sie auf Erstellen und warten Sie einige Minuten, 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 die Option Verwalteten Speicher verwenden aktivieren .

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

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

  1. Wechseln Sie zur Seite AI Platform Notebooks .

    Unter dem Hauptnavigationsmenü: ≡ -> AI-Plattform -> Notebooks

  2. Wenn Sie dazu aufgefordert werden, aktivieren Sie die Compute Engine-API.

  3. Erstellen Sie eine neue Instanz mit installiertem TensorFlow 2.1 (oder höher).

    Neue Instanz -> TensorFlow 2.1 -> Ohne GPU

    Akzeptieren Sie hier nicht die Standardeinstellungen, um innerhalb der Free Tier-Grenzwerte zu bleiben. Sie müssen die Anzahl der für diese Instanz verfügbaren vCPUs von 4 auf 2 reduzieren:

    1. Wählen Sie unten im Formular " Neue Notebook-Instanz" die Option " Anpassen" .
    2. Wählen Sie eine Maschinenkonfiguration mit 1 oder 2 vCPUs.

4. Starten Sie das Notebook Erste Schritte

  1. Wechseln Sie zur Seite AI Platform Pipelines Clusters .

    Unter dem Hauptnavigationsmenü: ≡ -> AI-Plattform -> Pipelines

  2. Klicken Sie in der Zeile für den Cluster, den Sie in diesem Lernprogramm verwenden, auf Pipelines-Dashboard öffnen .

    offenes Armaturenbrett

  3. Klicken Sie auf der Seite Erste Schritte auf TF 2.1-Notizbuch öffnen .

  4. Wählen Sie die Notebook-Instanz aus, die Sie für dieses Lernprogramm verwenden, und fahren Sie fort .

    Notebook auswählen

5. Arbeiten Sie im Notebook weiter

Installieren

Das Erste Schritte-Notizbuch beginnt mit der Installation von TFX und Kubeflow Pipelines (KFP) auf der VM, auf der Jupyter Lab ausgeführt wird, zusammen mit dem Skaffold- Modul:

Installieren Sie tf und kfp

Anschließend wird der PATH , dass er das Benutzer-Python-Binärverzeichnis und ein Verzeichnis mit dem skaffold :

Pfad festlegen

Anschließend wird überprüft, welche Version von TFX installiert ist, ein Import durchgeführt und die Projekt-ID festgelegt und gedruckt:

Überprüfen Sie die Python-Version und importieren Sie sie

Stellen Sie eine Verbindung zu Ihren Google Cloud-Diensten her

Die Pipeline-Konfiguration benötigt Ihre Projekt-ID, die Sie über das Notizbuch 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 finden Sie unter der URL des Pipelines-Dashboards. Gehen Sie zum Kubeflow Pipeline-Dashboard und sehen Sie sich die URL an. Der Endpunkt ist alles in der URL nach https:// bis einschließlich googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

Das Notizbuch 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 Notizbuchzelle, um einen Namen für Ihre Pipeline festzulegen. In diesem Tutorial verwenden wir my_pipeline .

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

Das Notizbuch verwendet dann die tfx CLI, um die Pipeline-Vorlage zu kopieren. In diesem Lernprogramm wird der Chicago Taxi-Datensatz verwendet, um eine binäre Klassifizierung durchzuführen. In der Vorlage wird das Modell daher auf taxi :

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

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

%cd {PROJECT_DIR}

Durchsuchen Sie die Pipeline-Dateien

Auf der linken Seite des Cloud AI Platform-Notizbuchs sollte ein Dateibrowser angezeigt werden. Es sollte ein Verzeichnis mit Ihrem Pipeline-Namen ( my_pipeline ) vorhanden sein. Öffnen Sie es und zeigen Sie 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

Mit dem tfx template copy Befehl zum tfx template copy wurde ein Grundgerüst aus Dateien erstellt, die eine Pipeline erstellen. Dazu gehören Python-Quellcodes, Beispieldaten und Jupyter-Notizbücher. 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 - configs.py allgemeine Konstanten für Pipeline-Läufer
    • pipeline.py - Definiert TFX-Komponenten und eine Pipeline
  • models - Dieses Verzeichnis enthält ML-Modelldefinitionen.
    • features.py features_test.py - Definiert Features für das Modell
    • preprocessing.py / preprocessing_test.py - Definiert Vorverarbeitungsjobs mit tf::Transform
    • estimator - Dieses Verzeichnis enthält ein auf Schätzern basierendes Modell.
      • constants.py - Definiert Konstanten des Modells
      • model.py / model_test.py - model_test.py das DNN-Modell mithilfe des TF-Schätzers
    • keras - Dieses Verzeichnis enthält ein Keras-basiertes Modell.
      • constants.py - Definiert Konstanten des Modells
      • model.py / model_test.py - model_test.py das DNN-Modell mithilfe von Keras
  • beam_dag_runner.py / kubeflow_dag_runner.py - Definieren Sie Läufer für jede Orchestrierungs-Engine

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

Das Notebook führt die Pipeline mit dem Befehl tfx run CLI aus.

Stellen Sie eine Verbindung zum Speicher her

Laufende Pipelines erzeugen Artefakte, die in ML-Metadaten gespeichert werden müssen. Artefakte beziehen sich auf Nutzdaten, bei denen es sich um Dateien handelt, die in einem Dateisystem oder Blockspeicher gespeichert werden müssen. In diesem Tutorial verwenden wir GCS zum Speichern unserer Metadaten-Nutzdaten unter Verwendung des Buckets, der beim Setup automatisch erstellt wurde. Das Notizbuch erhält die Namen der aktuellen Eimer:

Holen Sie sich eine Liste der Bucket-Namen:

gsutil ls | cut -d / -f 3

Kopieren Sie den Namen des verwendeten Buckets in die Zwischenablage.

Erstellen Sie die Pipeline

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

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

Beim Erstellen einer Pipeline werden Dockerfile und build.yaml generiert, um ein Docker-Image zu erstellen. Vergessen Sie nicht, diese Dateien zusammen mit anderen Quelldateien zu Ihrem Versionsverwaltungssystem (z. B. git) hinzuzufügen.

Führen Sie die Pipeline aus

Das Notizbuch verwendet dann den Befehl tfx run create , um einen Ausführungslauf Ihrer Pipeline zu starten. Sie sehen diesen Lauf auch unter Experimente im Kubeflow Pipelines Dashboard.

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

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

8. Überprüfen Sie Ihre Daten

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

  • Verstehen Sie die Datentypen für jede Funktion
  • Suchen Sie nach Anomalien und fehlenden Werten
  • Verstehen Sie die Verteilungen für jede Funktion

Komponenten

DatenkomponentenDatenkomponenten

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

Im Jupyter Lab-Datei-Editor:

Kommentieren Sie in pipeline / pipeline.py die Zeilen aus, mit denen diese Komponenten an Ihre Pipeline angehängt werden:

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

( ExampleGen war bereits aktiviert, als die Vorlagendateien kopiert wurden.)

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

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

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

Überprüfen Sie die Pipeline

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite nach Pipeline-Ausgaben für Ihren Pipeline-Lauf. Klicken Sie links auf die Registerkarte "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten in der Lage sein, den Lauf mit dem Namen Ihrer Pipeline zu finden.

Fortgeschritteneres Beispiel

Das hier vorgestellte Beispiel soll Ihnen nur den Einstieg erleichtern. Ein ausführlicheres Beispiel finden Sie im TensorFlow Data Validation Colab .

Weitere Informationen zur Verwendung von TFDV zum Erkunden und Validieren eines Datensatzes finden Sie in den Beispielen 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.

  • Feature Kreuze
  • Vokabeln
  • Einbettungen
  • PCA
  • Kategoriale Codierung

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

Komponenten

Verwandeln

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

Im Jupyter Lab-Datei-Editor:

Suchen und kommentieren Sie in pipeline / pipeline.py die Zeile, die Transform an die Pipeline anfügt.

# components.append(transform)

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

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

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

Überprüfen Sie die Pipeline-Ausgänge

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite nach Pipeline-Ausgaben für Ihren Pipeline-Lauf. Klicken Sie links auf die Registerkarte "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten in der Lage sein, den Lauf mit dem Namen Ihrer Pipeline zu finden.

Fortgeschritteneres Beispiel

Das hier vorgestellte Beispiel soll Ihnen nur den Einstieg erleichtern. Ein ausführlicheres Beispiel finden Sie im TensorFlow Transform Colab .

10. Schulung

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

  • Schließen 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

Im Jupyter Lab-Datei-Editor:

Suchen und kommentieren Sie in pipeline / pipeline.py , was Trainer an die Pipeline anhängt:

# components.append(trainer)

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

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

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

Überprüfen Sie die Pipeline-Ausgänge

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite nach Pipeline-Ausgaben für Ihren Pipeline-Lauf. Klicken Sie links auf die Registerkarte "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten in der Lage sein, den Lauf mit dem Namen Ihrer Pipeline zu finden.

Fortgeschritteneres Beispiel

Das hier vorgestellte Beispiel soll Ihnen nur den Einstieg erleichtern. Ein ausführlicheres Beispiel finden Sie im TensorBoard-Tutorial .

11. Analyse der Modellleistung

Mehr als nur die Metriken der obersten Ebene verstehen.

  • Benutzer erfahren die Modellleistung nur für ihre Abfragen
  • Eine schlechte Leistung auf Datenscheiben kann durch Metriken der obersten Ebene ausgeblendet 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 Modell ersetzen, das derzeit in Produktion ist, stellen Sie zunächst sicher, dass das neue Modell besser ist

Komponenten

  • Der Evaluator führt eine gründliche Analyse der Trainingsergebnisse durch.

Im Jupyter Lab-Datei-Editor:

Suchen und kommentieren Sie in pipeline / pipeline.py die Zeile, in der Evaluator an die Pipeline angehängt wird:

components.append(evaluator)

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

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

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

Überprüfen Sie die Pipeline-Ausgänge

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite nach Pipeline-Ausgaben für Ihren Pipeline-Lauf. Klicken Sie links auf die Registerkarte "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten in der Lage sein, den Lauf mit dem Namen Ihrer Pipeline zu finden.

12. Das Modell bedienen

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

  • Pusher setzt SavedModels an bekannten Standorten ein

Bereitstellungsziele erhalten neue Modelle von bekannten Standorten

  • TensorFlow Serving
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

Komponenten

  • Pusher stellt das Modell in einer bedienenden Infrastruktur bereit.

Im Jupyter Lab-Datei-Editor:

Suchen und kommentieren Sie in pipeline / pipeline.py die Zeile, die Pusher an die Pipeline anfügt:

# components.append(pusher)

Überprüfen Sie die Pipeline-Ausgänge

Besuchen Sie für Kubeflow Orchestrator das KFP-Dashboard und suchen Sie auf der Seite nach Pipeline-Ausgaben für Ihren Pipeline-Lauf. Klicken Sie links auf die Registerkarte "Experimente" und auf der Seite "Experimente" auf "Alle Läufe". Sie sollten in der Lage sein, den Lauf mit dem Namen Ihrer Pipeline zu finden.

Verfügbare Bereitstellungsziele

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

  • TensorFlow Serving , um Ihr Modell auf einem Server oder einer Serverfarm bereitzustellen und REST- und / oder gRPC-Inferenzanforderungen zu verarbeiten.
  • TensorFlow Lite , um Ihr Modell in eine native mobile Android- oder iOS-Anwendung oder in eine Raspberry Pi-, IoT- oder Mikrocontroller-Anwendung aufzunehmen.
  • TensorFlow.js , um Ihr Modell in einem Webbrowser oder einer Node.JS-Anwendung auszuführen.

Fortgeschrittenere Beispiele

Das oben dargestellte Beispiel soll Ihnen nur den Einstieg erleichtern. Im Folgenden finden Sie einige Beispiele für die Integration mit anderen Cloud-Diensten.

Überlegungen zu Kubeflow Pipelines-Ressourcen

Abhängig von den Anforderungen Ihrer Workload kann die Standardkonfiguration für Ihre Kubeflow Pipelines-Bereitstellung Ihren Anforderungen entsprechen oder nicht. Sie können Ihre Ressourcenkonfigurationen mithilfe von pipeline_operator_funcs in Ihrem Aufruf von KubeflowDagRunnerConfig .

pipeline_operator_funcs ist eine Liste von OpFunc Elementen, die alle generierten ContainerOp Instanzen in der aus KubeflowDagRunner kompilierten KFP-Pipeline-Spezifikation KubeflowDagRunner .

Zum Konfigurieren des Speichers können wir beispielsweise set_memory_request , um die benötigte Speichermenge zu deklarieren. Ein typischer Weg, dies zu tun, besteht darin, einen Wrapper für set_memory_request zu erstellen und ihn zur Liste der Pipeline- OpFunc :

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 Ressourcenkonfigurationsfunktionen umfassen:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

Probieren Sie BigQueryExampleGen

BigQuery ist ein serverloses, hoch skalierbares und kostengünstiges Cloud-Data-Warehouse. BigQuery kann als Quelle für Trainingsbeispiele in TFX verwendet werden. In diesem Schritt fügen BigQueryExampleGen der Pipeline BigQueryExampleGen .

Im Jupyter Lab-Datei-Editor:

Doppelklicken Sie, um pipeline.py zu öffnen . Kommentieren Sie CsvExampleGen und CsvExampleGen die Zeile aus, die eine Instanz von BigQueryExampleGen . Sie müssen auch das query der Funktion create_pipeline .

Wir müssen angeben, welches GCP-Projekt für BigQuery verwendet werden soll, und dies erfolgt durch Setzen von --project beam_pipeline_args beim Erstellen einer Pipeline.

Doppelklicken Sie, um configs.py zu öffnen . Kommentieren Sie die 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.

Wechseln Sie das Verzeichnis um eine Ebene nach oben. Klicken Sie auf den Namen des Verzeichnisses über der Dateiliste. Der Name des Verzeichnisses ist der Name der Pipeline. my_pipeline ist my_pipeline wenn Sie den Namen der Pipeline nicht geändert haben.

Doppelklicken Sie, um kubeflow_dag_runner.py zu öffnen . Kommentieren Sie zwei Argumente aus, query beam_pipeline_args , für die Funktion create_pipeline .

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_dag_runner.py \
--endpoint={ENDPOINT}

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

Versuchen Sie Dataflow

Mehrere TFX-Komponenten verwenden Apache Beam , um datenparallele Pipelines zu implementieren. Dies bedeutet, dass Sie Datenverarbeitungs-Workloads mithilfe von Google Cloud Dataflow verteilen können. In diesem Schritt stellen wir den Kubeflow-Orchestrator so ein, dass Dataflow als Datenverarbeitungs-Backend für Apache Beam verwendet wird.

# 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 die pipeline , um das Verzeichnis zu wechseln, und configs.py Sie, um configs.py zu öffnen . Kommentieren Sie die Definition von GOOGLE_CLOUD_REGION und DATAFLOW_BEAM_PIPELINE_ARGS .

Wechseln Sie das Verzeichnis um eine Ebene nach oben. Klicken Sie auf den Namen des Verzeichnisses über der Dateiliste. Der Name des Verzeichnisses ist der Name der Pipeline, die my_pipeline wenn Sie nichts geändert haben.

Doppelklicken Sie, um kubeflow_dag_runner.py zu öffnen . Kommentieren Sie beam_pipeline_args . ( beam_pipeline_args Sie außerdem sicher, dass Sie die aktuellen beam_pipeline_args , die Sie in Schritt 7 hinzugefügt haben.)

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

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

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

Sie finden Ihre Datenflussjobs in Datenfluss in der Cloud-Konsole .

Probieren Sie das Training und die Vorhersage der Cloud AI-Plattform mit KFP aus

TFX arbeitet mit mehreren verwalteten GCP-Diensten zusammen, z. B. der Cloud AI-Plattform für Training und Vorhersage . Sie können Ihre Trainer so einstellen, dass sie Cloud AI Platform Training verwendet, einen verwalteten Dienst zum Trainieren von ML-Modellen. Wenn Ihr Modell erstellt und bereit ist, bereitgestellt zu werden, können Sie Ihr Modell zur Bereitstellung an Cloud AI Platform Prediction senden. In diesem Schritt stellen wir unsere Trainer und Pusher Komponente so ein, dass sie Cloud AI Platform-Dienste verwendet.

Vor dem Bearbeiten von Dateien müssen Sie möglicherweise zuerst die AI Platform Training & Prediction API aktivieren.

Doppelklicken Sie auf die pipeline , um das Verzeichnis zu wechseln, und configs.py Sie, um configs.py zu öffnen . Kommentieren Sie die Definition von GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS und GCP_AI_PLATFORM_SERVING_ARGS . Wir werden unser benutzerdefiniertes Container-Image verwenden, um ein Modell in Cloud AI Platform Training zu trainieren. masterConfig.imageUri sollten wir masterConfig.imageUri in GCP_AI_PLATFORM_TRAINING_ARGS auf den gleichen Wert wie CUSTOM_TFX_IMAGE oben setzen.

Wechseln Sie das Verzeichnis um eine Ebene nach oben und kubeflow_dag_runner.py Sie, um kubeflow_dag_runner.py zu öffnen . Kommentieren Sie 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_dag_runner.py \
--endpoint={ENDPOINT}

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

Sie finden Ihre Schulungsjobs in Cloud AI Platform Jobs . Wenn Ihre Pipeline erfolgreich abgeschlossen wurde, finden Sie Ihr Modell in Cloud AI Platform Models .

14. Verwenden Sie Ihre eigenen Daten

In diesem Lernprogramm haben Sie mithilfe des Chicago Taxi-Datensatzes eine Pipeline für ein Modell erstellt. Versuchen Sie nun, Ihre eigenen Daten in die Pipeline aufzunehmen. 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 Pipeline-Definition ändern, um Ihre Daten aufzunehmen.

Wenn Ihre Daten in Dateien gespeichert sind

  1. DATA_PATH kubeflow_dag_runner.py DATA_PATH in kubeflow_dag_runner.py und geben Sie den Speicherort an.

Wenn Ihre Daten in BigQuery gespeichert sind

  1. BIG_QUERY_QUERY Sie BIG_QUERY_QUERY in configs.py in Ihre Abfrageanweisung.
  2. Fügen Sie Features in models / features.py .
  3. Ändern Sie models / preprocessing.py um Eingabedaten für das Training zu transformieren .
  4. Ändern Sie models / keras / model.py und models / keras / constants.py , um Ihr ML-Modell zu beschreiben .

Erfahren Sie mehr über Trainer

Weitere Informationen zu Trainings-Pipelines finden Sie im Handbuch für Trainerkomponenten.

Aufräumen

Um alle in diesem Projekt verwendeten Google Cloud-Ressourcen zu bereinigen, können Sie das Google Cloud-Projekt löschen, das Sie für das Lernprogramm verwendet haben.

Alternativ können Sie einzelne Ressourcen bereinigen, indem Sie die einzelnen Konsolen besuchen: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine