Pipeline ausführen

Mit Vertex AI Pipelines können Sie ML-Pipelines ausführen, die mit dem Kubeflow Pipelines SDK oder TensorFlow Extended serverlos erstellt wurden. In diesem Dokument wird beschrieben, wie Sie eine ML-Pipeline ausführen.

Sie können Pipelineausführungen auch mit vordefinierten Vorlagen in der Vorlagengalerie erstellen. Weitere Informationen zur Vorlagengalerie finden Sie unter Vorgefertigte Vorlagen aus der Vorlagengalerie verwenden.

Hinweis

Bevor Sie eine Pipeline mit Vertex AI-Pipelines ausführen, folgen Sie der Anleitung unten, um Ihr Google Cloud-Projekt und Ihre Entwicklungsumgebung einzurichten:

  1. Pipeline erstellen.

  2. Installieren Sie das Vertex SDK, um eine Pipeline mit dem Vertex AI SDK für Python auszuführen.

Pipeline-Ausführung erstellen

Gehen Sie nach der folgenden Anleitung vor, um eine ML-Pipeline mit der Google Cloud Console oder Python auszuführen.

Console

Gehen Sie nach der folgenden Anleitung vor, um eine ML-Pipeline mit der Google Cloud Console auszuführen.

  1. Rufen Sie in der Google Cloud Console im Abschnitt Vertex AI die Seite Pipelines auf.

    Zu Pipelines

  2. Wählen Sie in der Drop-down-Liste Region die Region aus, in der Sie die Pipeline ausführen möchten.

  3. Klicken Sie auf Ausführung erstellen, um den Bereich Pipeline-Ausführung erstellen zu öffnen.

  4. Geben Sie im Abschnitt Ausführungsdetails Folgendes an:

    1. Klicken Sie auf eine Ausführungsquelle. Folgende Optionen sind verfügbar:

      • Aus vorhandenen Pipelines auswählen: Klicken Sie zum Erstellen einer Pipeline-Ausführung basierend auf einer vorhandenen Pipeline-Vorlage auf Aus vorhandenen Pipelines auswählen und geben Sie die folgenden Details ein:

        1. Wählen Sie das Repository mit der Pipeline- oder Komponentendefinitionsdatei aus.

        2. Wählen Sie die Pipeline oder Komponente und die Version aus.

        3. Geben Sie einen Ausführungsnamen an, um die Pipelineausführung zu identifizieren.

      • Vorlagengalerie-Pipeline auswählen: Um eine Pipeline zu erstellen, die auf einer von Google erstellten Pipeline-Vorlage aus der Vorlagen-Galerie basiert, klicken Sie auf Vorlagen-Galerie-Pipeline auswählen und geben folgende Details ein:

        1. Wählen Sie in der Liste Vorlagengalerie-Pipeline die Pipeline-Vorlage aus.

        2. Optional: Ändern Sie den Standard-Ausführungsnamen, der die Pipeline-Ausführung identifiziert.

      • Datei hochladen: Klicken Sie zum Hochladen einer kompilierten Pipelinedefinition auf Datei hochladen und geben Sie die folgenden Details ein:

        1. Klicken Sie auf Durchsuchen, um die Dateiauswahl zu öffnen. Wechseln Sie zur YAML-Datei der kompilierten Pipeline, die Sie ausführen möchten, wählen Sie die Pipeline aus und klicken Sie auf Öffnen.

        2. Der Name der Pipeline oder Komponente zeigt standardmäßig den in der Pipelinedefinition angegebenen Namen an. Geben Sie optional einen anderen Pipelinenamen an.

        3. Geben Sie einen Ausführungsnamen an, um die Pipelineausführung zu identifizieren.

      • Aus Cloud Storage importieren: Klicken Sie zum Importieren einer Pipelinedefinitionsdatei aus Cloud Storage auf Aus Cloud Storage importieren und geben Sie die folgenden Details ein:

        1. Klicken Sie auf Durchsuchen, um den Cloud Storage-Bucket aufzurufen, der das Pipelinedefinitionsobjekt enthält. Wählen Sie die Datei aus und klicken Sie auf Auswählen.

        2. Geben Sie den Namen der Pipeline oder Komponente an.

        3. Geben Sie einen Ausführungsnamen an, um die Pipelineausführung zu identifizieren.

    2. Optional: Geben Sie zum Planen wiederkehrender Pipelineausführungen den Ausführungszeitplan so an:

      1. Wählen Sie Wiederkehrend aus.

      2. Geben Sie unter Startzeit an, wann der Zeitplan aktiv werden soll.

        • Wählen Sie Sofort aus, um die erste Ausführung sofort nach der Zeitplanerstellung zu planen.

        • Wenn Sie die erste Ausführung zu einem bestimmten Zeitpunkt und Datum planen möchten, wählen Sie An aus.

      3. Geben Sie im Feld Häufigkeit die Häufigkeit an, mit der die Pipelineausführungen geplant und ausgeführt werden sollen. Verwenden Sie dazu einen Cron-Zeitplanausdruck, der auf unix-cron basiert.

      4. Geben Sie unter Ende an, wann der Zeitplan endet.

        • Wenn Sie angeben möchten, dass der Zeitplan Pipelineausführungen unbegrenzt erstellt, wählen Sie Nie aus.

        • Wenn der Zeitplan mit einem bestimmten Datum und einer bestimmten Uhrzeit endet, wählen Sie Ein aus und geben Sie das Enddatum und die Uhrzeit für den Zeitplan an.

      5. Optional: Wenn Sie angeben möchten, dass die Pipelineausführung ein benutzerdefiniertes Dienstkonto, einen vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) oder ein Peering-VPC-Netzwerk verwendet, klicken Sie auf Erweiterte Optionen und verwenden Sie dann die folgende Anleitung:

        • Wählen Sie zum Angeben eines Dienstkontos ein Dienstkonto aus der Drop-down-Liste Dienstkonto aus.

          Wenn Sie kein Dienstkonto angeben, führt Vertex AI-Pipelines Ihre Pipeline mit dem Compute Engine-Standarddienstkonto aus.

          Weitere Informationen zum Konfigurieren eines Dienstkontos für die Verwendung mit Vertex AI-Pipelines

        • Wählen Sie Vom Kunden verwalteten Verschlüsselungsschlüssel verwenden aus, um einen CMEK zu verwenden. Die Drop-down-Liste Vom Kunden verwalteten Schlüssel auswählen wird angezeigt. Wählen Sie in der Drop-down-Liste Vom Kunden verwalteten Schlüssel auswählen den Schlüssel aus, den Sie verwenden möchten.

        • Damit Sie ein Peering-VPC-Netzwerk in dieser Pipeline verwenden können, geben Sie den Namen des VPC-Netzwerks in das Feld Peering-VPC-Netzwerk ein.

    3. Klicken Sie auf Weiter.

  5. Konfigurieren Sie im Abschnitt Laufzeitkonfiguration die Pipelineausführung so:

    1. Klicken Sie unter Cloud Storage-Speicherort auf Durchsuchen, um den Cloud Storage-Bucket zum Speichern der Pipeline-Ausgabeartefakte auszuwählen. Klicken Sie dann auf Auswählen.

    2. Optional: Um die Fehlerrichtlinie und den Cache für die Pipelineausführung zu konfigurieren klicken Sie auf Erweiterte Optionen und berücksichtigen folgende Anleitungen:

      • Geben Sie unter Fehlerrichtlinie die Fehlerrichtlinie für die gesamte Pipeline an. Weitere Informationen zu Richtlinien zu Pipelineausfällen

        • Wählen Sie Alle Schritte bis zum Abschluss ausführen, um die Pipeline so zu konfigurieren, dass verbleibende Aufgaben nach dem Fehlschlagen einer Aufgabe weiter ausgeführt werden. Diese Option ist standardmäßig aktiviert.

        • Wählen Sie Ausführung als fehlgeschlagen ansehen, sobald ein Schritt fehlschlägt, um die Pipeline so zu konfigurieren, dass sie fehlschlägt, sobald eine Aufgabe fehlgeschlagen ist.

      • Geben Sie unter Caching-Konfiguration die Cache-Konfiguration für die gesamte Pipeline an.

        • Wenn Sie die Cache-Konfiguration auf Aufgabenebene für Aufgaben in der Pipeline verwenden möchten, wählen Sie Cache-Konfiguration auf Aufgabenebene nicht überschreiben.

        • Wählen Sie Lesen aus dem Cache für alle Schritte aktivieren (am schnellsten), um das Caching für alle Aufgaben in der Pipeline zu aktivieren und alle Cache-Konfigurationen auf Aufgabenebene zu überschreiben.

        • Wählen Sie Lesen aus dem Cache für alle Schritte deaktivieren (am schnellsten), um das Caching für alle Aufgaben in der Pipeline zu deaktivieren und alle Cache-Konfigurationen auf Aufgabenebene zu überschreiben.

    3. Optional: Wenn Ihre Pipeline Parameter enthält, geben Sie unter Pipelineparameter die Parameter für die Pipelineausführung an.

  6. Klicken Sie auf Senden, um die Pipelineausführung zu erstellen.

Vertex AI SDK für Python

Verwenden Sie die folgende Anleitung, um eine ML-Pipeline mit dem Vertex AI SDK für Python auszuführen. Bevor Sie das folgende Codebeispiel ausführen, müssen Sie die Authentifizierung einrichten.

Authentifizierung einrichten

Für die Einrichtung der Authentifizierung müssen Sie einen Dienstkontoschlüssel erstellen und eine Umgebungsvariable für den Pfad zum Dienstkontoschlüssel festlegen.

  1. Erstellen Sie ein Dienstkonto:

    1. Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“

    2. Geben Sie im Feld Dienstkontoname einen Namen ein.
    3. Optional: Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein.
    4. Klicken Sie auf Erstellen.
    5. Klicken Sie auf das Feld Rolle auswählen. Wählen Sie unter Alle Rollen die Option Vertex AI > Vertex AI-Nutzer aus.
    6. Klicken Sie auf Fertig, um das Dienstkonto zu erstellen.

      Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

  2. Erstellen Sie einen Dienstkontoschlüssel für die Authentifizierung:

    1. Klicken Sie in der Google Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
    2. Klicken Sie auf Schlüssel.
    3. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
    4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
    5. Klicken Sie auf Schließen.
  3. Gewähren Sie dem neuen Dienstkonto Zugriff auf das Dienstkonto, das Sie zum Ausführen von Pipelines verwenden.
    1. Klicken Sie auf , um zur Liste der Dienstkonten zurückzukehren.
    2. Klicken Sie auf den Namen des Dienstkontos, mit dem Sie Pipelines ausführen. Die Seite Dienstkontodetails wird angezeigt.

      Wenn Sie der Anleitung zum Konfigurieren Ihres Projekts für Vertex AI Pipelines gefolgt sind, ist dies dasselbe Dienstkonto, das Sie im Schritt Dienstkonto mit detaillierten Berechtigungen konfigurieren erstellt haben. Andernfalls verwendet Vertex AI das Compute Engine-Standarddienstkonto zum Ausführen von Pipelines. Das Compute Engine-Standarddienstkonto hat folgenden Namen: PROJECT_NUMBER-compute@developer.gserviceaccount.com

    3. Klicken Sie auf den Tab Berechtigungen.
    4. Klicken Sie auf Zugriff erlauben. Das Feld Hauptkonten hinzufügen wird angezeigt.
    5. Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse für das Dienstkonto ein, das Sie in einem vorherigen Schritt erstellt haben.
    6. Wählen Sie in der Drop-down-Liste Rolle die Option Dienstkonten > Dienstkontonutzer aus.
    7. Klicken Sie auf Speichern.
  4. Legen Sie für die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS den Pfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable noch einmal festlegen.

    Beispiel: Linux oder macOS

    Geben Sie für [PATH] den Dateipfad der JSON-Datei an, die Ihren Dienstkontoschlüssel enthält.

    export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    Beispiel:

    export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

    Beispiel: Windows

    Geben Sie für [PATH] den Dateipfad der JSON-Datei an, die Ihren Dienstkontoschlüssel enthält, und für [FILE_NAME] den Dateinamen.

    Mit PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    Beispiel:

    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"

    Mit Eingabeaufforderung:

    set GOOGLE_APPLICATION_CREDENTIALS=[PATH]

Pipeline ausführen

Für das Ausführen eines Vertex AI-PipelineJob müssen Sie ein PipelineJob-Objekt erstellen und dann die Methode submit aufrufen.

Spezielle von KFP unterstützte Eingabetypen

Beim Erstellen einer Pipeline-Ausführung können Sie auch die folgenden Platzhalter übergeben, die vom KFP SDK SDK als Eingaben unterstützt werden:

  • {{$.pipeline_job_name_placeholder}}

  • {{$.pipeline_job_resource_name_placeholder}}

  • {{$.pipeline_job_id_placeholder}}

  • {{$.pipeline_task_name_placeholder}}

  • {{$.pipeline_task_id_placeholder}}

  • {{$.pipeline_job_create_time_utc_placeholder}}

  • {{$.pipeline_root_placeholder}}

Weitere Informationen finden Sie in der Kubeflow Pipelines Version 2-Dokumentation unter Spezielle Eingabetypen.

from google.cloud import aiplatform

job = aiplatform.PipelineJob(display_name = DISPLAY_NAME,
                             template_path = COMPILED_PIPELINE_PATH,
                             job_id = JOB_ID,
                             pipeline_root = PIPELINE_ROOT_PATH,
                             parameter_values = PIPELINE_PARAMETERS,
                             enable_caching = ENABLE_CACHING,
                             encryption_spec_key_name = CMEK,
                             labels = LABELS,
                             credentials = CREDENTIALS,
                             project = PROJECT_ID,
                             location = LOCATION,
                             failure_policy = FAILURE_POLICY)

job.submit(service_account=SERVICE_ACCOUNT,
           network=NETWORK)

Ersetzen Sie Folgendes:

  • DISPLAY_NAME: Der Name der Pipeline, der in der Google Cloud Console angezeigt wird.
  • COMPILED_PIPELINE_PATH: Der Pfad zur kompilierten Pipeline-YAML-Datei. Dies kann ein lokaler Pfad oder ein Google Cloud Storage-URI sein.

    Optional: Wenn Sie eine bestimmte Version einer kompilierten Pipeline angeben möchten, fügen Sie das Versions-Tag in einem der folgenden Formate ein:

    • COMPILED_PIPELINE_PATH:TAG, wobei TAG das Versions-Tag ist.

    • COMPILED_PIPELINE_PATH@SHA256_TAG, wobei SHA256_TAG der sha256-Hashwert der Pipelineversion ist.

  • JOB_ID: (optional) Eine eindeutige Kennung für diese Pipeline-Ausführung. Wenn die Job-ID nicht angegeben ist, erstellt Vertex AI-Pipelines eine Job-ID für Sie anhand des Pipeline-Namens und des Zeitstempels für den Start der Pipeline-Ausführung.

  • PIPELINE_ROOT_PATH: (optional) Damit der in der Pipelinedefinition angegebene Root-Pfad der Pipeline überschrieben werden kann, geben Sie einen Pfad an, auf den Ihr Pipelinejob zugreifen kann, z. B. einen Cloud Storage-Bucket-URI.

  • PIPELINE_PARAMETERS: (optional) Die Pipelineparameter, die an diese Ausführung übergeben werden sollen. Erstellen Sie beispielsweise ein dict(), das die Parameternamen als Wörterbuchschlüssel und die Parameterwerte als Wörterbuchwerte enthält.

  • ENABLE_CACHING: (optional) Gibt an, ob diese Pipeline-Ausführung Ausführungs-Caching verwendet. Ausführungs-Caching reduziert die Kosten, da Pipelineaufgaben übersprungen werden, deren Ausgabe für den aktuellen Satz von Eingaben bekannt ist. Wenn das Argument zum Aktivieren des Cachings nicht angegeben ist, wird in dieser Pipeline-Ausführung das Ausführungs-Caching verwendet. Weitere Informationen zum Ausführungs-Caching

  • CMEK: (optional) Der Name des vom Kunden verwalteten Verschlüsselungsschlüssels, den Sie für diese Pipeline verwenden möchten.

  • LABELS: (optional) Die benutzerdefinierten Labels, um PipelineJob zu organisieren. Weitere Informationen zu Ressourcenlabels finden Sie in der Resource Manager-Dokumentation unter Labels erstellen und verwalten.

    Vertex AI Pipelines fügt der Pipelineausführung automatisch das folgende Label hinzu:

    vertex-ai-pipelines-run-billing-id: pipeline_run_id

    Dabei ist pipeline_run_id die eindeutige ID der Pipelineausführung.

    Dieses Label verknüpft die Nutzung von Google Cloud-Ressourcen, die durch die Pipeline generiert wurden, mit Abrechnungsberichten.

  • CREDENTIALS: (optional) Benutzerdefinierte Anmeldedaten zum Erstellen dieses PipelineJob. Überschreibt die in aiplatform.init festgelegten Anmeldedaten.

  • PROJECT_ID: (optional) Das Google Cloud-Projekt, in dem Sie die Pipeline ausführen möchten. Wenn Sie diesen Parameter nicht festlegen, wird das in aiplatform.init festgelegte Projekt verwendet.

  • LOCATION: (optional) Die Region, in der Sie die Pipeline ausführen möchten. Weitere Informationen zu den Regionen, in denen Vertex AI Pipelines verfügbar ist, finden Sie in der Anleitung zu Vertex AI-Standorten. Wenn Sie diesen Parameter nicht festlegen, wird der in aiplatform.init festgelegte Standardstandort verwendet.

  • FAILURE_POLICY: (optional) Geben Sie die Fehlerrichtlinie für die gesamte Pipeline an. Folgende Konfigurationen sind verfügbar:

    • Geben Sie fast ein, um die Pipeline so zu konfigurieren, dass sie fehlschlägt, nachdem eine Aufgabe fehlgeschlagen ist.

    • Geben Sie slow ein, um die Pipeline so zu konfigurieren, dass verbleibende Aufgaben nach dem Fehlschlagen einer Aufgabe weiter ausgeführt werden.

    Wenn Sie diesen Parameter nicht festlegen, wird die Konfiguration der Fehlerrichtlinie standardmäßig auf slow gesetzt. Weitere Informationen zu Richtlinien zu Pipelineausfällen

  • SERVICE_ACCOUNT: (optional) Der Name des Dienstkontos, das für diese Pipeline verwendet werden soll. Wenn Sie kein Dienstkonto angeben, führt Vertex AI-Pipelines Ihre Pipeline mit dem Compute Engine-Standarddienstkonto aus.

  • NETWORK: (optional) Der Name des VPC-Peering-Netzwerks, das für diese Pipelineausführung verwendet werden soll.