Einführung in Vertex AI Pipelines

Mit Vertex AI Pipelines können Sie Ihre ML-Systeme serverlos automatisieren, überwachen und steuern. Dazu werden Ihre ML-Workflows mithilfe von ML-Pipelines orchestriert. Sie können ML-Pipelines, die mit dem Kubeflow Pipelines- oder dem TensorFlow Extended (TFX)-Framework definiert wurden, im Batch ausführen. Informationen zum Auswählen eines Frameworks zum Definieren Ihrer ML-Pipeline finden Sie unter Schnittstellen zum Definieren einer Pipeline.

Auf dieser Seite finden Sie eine Übersicht über Folgendes:

Was ist eine ML-Pipeline?

Eine ML-Pipeline ist eine portable und erweiterbare Beschreibung eines MLOps-Workflows als Reihe von Schritten, die als Pipelineaufgaben bezeichnet werden. Jede Aufgabe führt einen bestimmten Schritt im Workflow zum Trainieren und/oder Bereitstellen eines ML-Modells aus.

Mit ML-Pipelines können Sie MLOps-Strategien anwenden, um wiederholbare Prozesse in Ihrer ML-Praxis zu automatisieren und zu überwachen. Sie können beispielsweise eine Pipelinedefinition wiederverwenden, um ein Modell kontinuierlich mit den neuesten Produktionsdaten neu zu trainieren. Weitere Informationen zu MLOps in Vertex AI finden Sie unter MLOps in Vertex AI.

Struktur einer ML-Pipeline

Eine ML-Pipeline ist ein gerichteter azyklischer Graph (DAG) aus containerisierten Pipeline-Aufgaben, die über Eingabe-/Ausgabeabhängigkeiten miteinander verbunden sind. Sie können jede Aufgabe entweder in Python oder als vorkonfiguriertes Container-Image erstellen.

Sie können die Pipeline entweder mit dem Kubeflow Pipelines SDK oder dem TFX SDK als DAG definieren, sie in YAML für die Zwischendarstellung kompilieren und dann ausführen. Pipelineaufgaben werden standardmäßig parallel ausgeführt. Sie können die Aufgaben verknüpfen, um sie nacheinander auszuführen. Weitere Informationen zu Pipelineaufgaben finden Sie unter Pipelineaufgabe. Weitere Informationen zum Workflow zum Definieren, Kompilieren und Ausführen der Pipeline finden Sie unter Lebenszyklus einer ML-Pipeline.

Betrachten Sie eine ML-Pipeline mit den folgenden Schritten:

  • Daten vorbereiten: Sie können Trainingsdaten vorbereiten oder vorverarbeiten.

    • Eingabe (aus Aufgaben innerhalb derselben ML-Pipeline): Keine.

    • Ausgabe: Vorbereitete oder vorverarbeitete Trainingsdaten.

  • Modell trainieren: Verwenden Sie die vorbereiteten Trainingsdaten, um ein Modell zu trainieren.

    • Eingabe: Vorbereitete oder vorab verarbeitete Trainingsdaten aus der Pipeline-Aufgabe Daten vorbereiten.

    • Ausgabe: Trainiertes Modell.

  • Modell bewerten: Bewerten Sie das trainierte Modell.

    Eingabe: Trainiertes Modell aus der Pipeline-Aufgabe Modell trainieren.

  • Bereitstellen: Das trainierte Modell für Vorhersagen bereitstellen.

    Eingabe: Trainiertes Modell aus der Pipeline-Aufgabe Modell trainieren.

Wenn Sie die ML-Pipeline kompilieren, analysiert das verwendete Pipelines SDK (Kubeflow Pipelines oder TFX) die Datenabhängigkeiten zwischen diesen Aufgaben und erstellt den folgenden Workflow-DAG:

  • Für Daten vorbereiten sind keine anderen Aufgaben innerhalb derselben ML-Pipeline erforderlich. Daher kann sie der erste Schritt in der ML-Pipeline sein oder gleichzeitig mit anderen Aufgaben ausgeführt werden.

  • Für Modell trainieren ist Daten vorbereiten als Eingabe erforderlich. Daher erfolgt sie nach Daten vorbereiten.

  • Sowohl Bewerten als auch Bereitstellen hängen vom trainierten Modell ab. Sie können daher gleichzeitig ausgeführt werden, aber erst nach Modell trainieren.

Wenn Sie Ihre ML-Pipeline ausführen, führt Vertex AI Pipelines diese Aufgaben in der im DAG beschriebenen Reihenfolge aus.

Pipelineaufgaben und ‑komponenten

Eine Pipeline-Aufgabe ist eine Instanziierung einer Pipeline-Komponente mit bestimmten Eingaben. Beim Definieren Ihrer ML-Pipeline können Sie mehrere Aufgaben miteinander verknüpfen, um einen DAG zu bilden. Dazu leiten Sie die Ausgaben einer Pipeline-Aufgabe an die Eingaben für die nächste Pipeline-Aufgabe im ML-Workflow weiter. Sie können die Eingaben für die ML-Pipeline auch als Eingaben für eine Pipeline-Aufgabe verwenden.

Pipeline-Komponente

Eine Pipelinekomponente ist ein eigenständiger Codesatz, der einen bestimmten Schritt eines ML-Workflows ausführt, z. B. Datenvorverarbeitung, Modelltraining oder Modellbereitstellung. Eine Komponente besteht in der Regel aus folgenden Elementen:

  • Eingaben: Eine Komponente kann einen oder mehrere Eingabeparameter und ‑artefakte haben.

  • Ausgaben: Jede Komponente hat einen oder mehrere Ausgabeparameter oder ‑artefakte.

  • Logik: Dies ist der ausführbare Code der Komponente. Bei containerisierten Komponenten enthält die Logik auch die Definition der Umgebung oder des Container-Images, in der bzw. dem die Komponente ausgeführt wird.

Komponenten sind die Grundlage für die Definition von Aufgaben in einer ML-Pipeline. Sie können entweder vordefinierte Google Cloud Pipeline-Komponenten verwenden oder eigene benutzerdefinierte Komponenten erstellen, um Pipeline-Aufgaben zu definieren.

Vordefinierte Komponenten

Verwenden Sie vordefinierte Google Cloud Pipeline-Komponenten, wenn Sie Funktionen von Vertex AI wie AutoML in Ihrer Pipeline verwenden möchten. Informationen zum Definieren einer Pipeline mit Google Cloud Pipeline-Komponenten finden Sie unter Pipeline erstellen.

Benutzerdefinierte Komponenten

Sie können eigene benutzerdefinierte Komponenten für Ihre ML-Pipeline erstellen. Weitere Informationen zum Erstellen benutzerdefinierter Komponenten finden Sie unter Eigene Pipeline-Komponenten erstellen.

Informationen zum Erstellen benutzerdefinierter Kubeflow Pipelines-Komponenten finden Sie im Jupyter-Notebook auf GitHub "Pipelines mit einfachen Komponenten basierend auf Python-Funktionen". Informationen zum Erstellen benutzerdefinierter TFX-Komponenten finden Sie in der Anleitung für TFX-Python-Funktionskomponenten in den Anleitungen zu TensorFlow Extended in der Produktion.

Pipelineaufgabe

Eine Pipeline-Aufgabe ist die Instanziierung einer Pipelinekomponente und führt einen bestimmten Schritt in Ihrem ML-Workflow aus. Sie können ML-Pipelineaufgaben entweder mit Python oder als vordefinierte Container-Images erstellen.

Innerhalb einer Aufgabe können Sie die On-Demand-Rechenfunktionen von Vertex AI mit Kubernetes erweitern, um die Ausführung Ihres Codes skalierbar zu gestalten oder die Arbeitslast an eine andere Ausführungs-Engine wie BigQuery, Dataflow oder Dataproc serverlos zu delegieren.

Lebenszyklus einer ML-Pipeline

Der Lebenszyklus einer ML-Pipeline umfasst von der Definition bis zur Ausführung und Überwachung die folgenden übergeordneten Phasen:

  1. Definieren: Das Definieren einer ML-Pipeline und ihrer Aufgabe wird auch als Erstellen einer Pipeline bezeichnet. Führen Sie in diesem Abschnitt die folgenden Schritte aus:

    1. ML-Framework auswählen: Vertex AI Pipelines unterstützt ML-Pipelines, die mit dem TFX- oder Kubeflow Pipelines-Framework definiert wurden. Informationen zum Auswählen eines Frameworks für die Erstellung Ihrer Pipeline finden Sie unter Schnittstellen zum Definieren einer Pipeline.

    2. Pipelineaufgaben definieren und Pipeline konfigurieren: Weitere Informationen finden Sie unter Pipeline erstellen.

  2. Kompilieren: In dieser Phase führen Sie die folgenden Schritte aus:

    1. Generieren Sie die Definition Ihrer ML-Pipeline in einer kompilierten YAML-Datei für die Zwischendarstellung, die Sie zum Ausführen Ihrer ML-Pipeline verwenden können.

    2. Optional: Sie können die kompilierte YAML-Datei als Pipeline-Vorlage in ein Repository hochladen und wiederverwenden, um ML-Pipeline-Ausführungen zu erstellen.

  3. Ausführen: Erstellen Sie eine Ausführungsinstanz Ihrer ML-Pipeline mit der kompilierten YAML-Datei oder einer Pipeline-Vorlage. Die Ausführungsinstanz einer Pipeline-Definition wird als Pipeline-Ausführung bezeichnet.

    Sie können eine einmalige Pipelineausführung erstellen oder mit der Scheduler API wiederkehrende Pipelineausführungen aus derselben ML-Pipelinedefinition erstellen. Sie können auch einer vorhandene Pipelineausführung klonen. Wie Sie eine Schnittstelle zum Ausführen einer ML-Pipeline auswählen, erfahren Sie unter Schnittstellen zum Ausführen einer Pipeline. Weitere Informationen zum Erstellen einer Pipelineausführung finden Sie unter Pipeline ausführen.

  4. Ausführungen überwachen, visualisieren und analysieren: Nachdem Sie eine Pipelineausführung erstellt haben, können Sie die Leistung, den Status und die Kosten der Pipelineausführungen so überwachen:

  5. Optional: Pipelineausführungen beenden oder löschen: Es gibt keine Einschränkung, wie lange eine Pipelineausführung aktiv bleiben kann. Sie haben folgende Möglichkeiten:

    • Beenden Sie die Pipelineausführung.

    • Sie können einen Pipeline-Ausführungsplan pausieren oder fortsetzen.

    • Löschen Sie eine vorhandene Pipelinevorlage, Pipelineausführung oder einen Zeitplan für Pipelineausführungen.

Was ist ein Pipelinelauf?

Eine Pipeline-Ausführung ist eine Ausführungsinstanz Ihrer ML-Pipeline-Definition. Jede Pipelineausführung wird durch einen eindeutigen Ausführungsnamen identifiziert. Mit Vertex AI Pipelines können Sie eine ML-Pipelineausführung auf folgende Arten erstellen:

  • Kompilierte YAML-Definition einer Pipeline verwenden

  • Pipelinevorlage aus der Vorlagengalerie verwenden

Weitere Informationen zum Erstellen einer Pipelineausführung finden Sie unter Pipeline ausführen. Weitere Informationen zum Erstellen einer Pipelineausführung aus einer Pipelinevorlage, finden Sie unter Pipelinevorlage erstellen, hochladen und verwenden.

Informationen zum Erfassen und Speichern von Metadaten für Pipelineausführungen mit Vertex ML-Metadaten finden Sie unter Herkunft von ML-Artefakten mit Vertex ML-Metadaten verfolgen.

Informationen zur Verwendung von Pipelineausführungen für Tests Ihres ML-Workflows mit Vertex AI Experiments finden Sie unter Pipelineausführungen zu Tests hinzufügen.

Herkunft von ML-Artefakten verfolgen

Eine Pipelineausführung enthält mehrere Artefakte und Parameter, einschließlich Pipeline-Metadaten. Um Änderungen der Leistung oder Accuracy Ihres ML-Systems zu verstehen, müssen Sie die Metadaten und die Herkunft von ML-Artefakten aus Ihren ML-Pipelineausführungen analysieren. Die Abstammung eines ML-Artefakts umfasst alle Faktoren, die zu seiner Erstellung beigetragen haben, sowie Metadaten und Verweise auf aus ihm abgeleitete Artefakte.

Mithilfe von Herkunftsgrafiken können Sie die vorgelagerte Ursache und die nachgelagerte Auswirkung analysieren. Jede Pipelineausführung erzeugt ein Herkunftsdiagramm der Parameter und Artefakte, die in die Ausführung eingegeben werden, während der Ausführung materialisiert und von der Ausführung ausgegeben werden. Die Metadaten, aus denen dieses Herkunftsdiagramm besteht, werden in Vertex ML Metadata gespeichert. Diese Metadaten können auch mit Dataplex synchronisiert werden.

  • Herkunft von Pipeline-Artefakten mit Vertex ML Metadata verfolgen

    Wenn Sie eine Pipeline mit Vertex AI Pipelines ausführen, werden alle Parameter und Artefaktmetadaten, die von der Pipeline verwendet und generiert werden, in Vertex ML Metadata gespeichert. Vertex ML Metadata ist eine verwaltete Implementierung der ML Metadata Library in TensorFlow und unterstützt das Registrieren und Schreiben benutzerdefinierter Metadatenschemata. Wenn Sie eine Pipelineausführung in Vertex AI Pipelines erstellen, werden Metadaten aus der Pipelineausführung im Standardmetadatenspeicher für das Projekt und die Region gespeichert, in der Sie die Pipeline ausführen.

  • Herkunft von Pipeline-Artefakten mit Dataplex verfolgen

    Dataplex ist eine globale und projektübergreifende Datenstruktur, die in mehrere Systeme in Google Cloudeingebunden ist, z. B. Vertex AI, BigQuery und Cloud Composer. In Dataplex können Sie nach einem Pipeline-Artefakt suchen und sich das zugehörige Herkunftsdiagramm ansehen. Um Artefaktkonflikte zu vermeiden, werden alle in Dataplex katalogisierten Ressourcen mit einem voll qualifizierten Namen (Fully Qualified Name, FQN) identifiziert.

    Weitere Informationen zu den Kosten für die Nutzung von Dataplex

Weitere Informationen zum Erfassen der Herkunft von ML-Artefakten mit Vertex ML Metadata und Dataplex finden Sie unter Herkunft von Pipeline-Artefakten verfolgen.

Weitere Informationen zum Visualisieren, Analysieren und Vergleichen von Pipelineausführungen finden Sie unter Pipelineergebnisse visualisieren und analysieren. Eine Liste der in Google Cloud Pipeline Components definierten Erstanbieter-Artefakttypen finden Sie unter ML-Metadaten-Artefakttypen.

Tests Pipelineausführungen hinzufügen

Mit Vertex AI Experiments können Sie verschiedene Modellarchitekturen, Hyperparameter und Trainingsumgebungen verfolgen und analysieren, um das beste Modell für Ihren Anwendungsfall zu finden. Nachdem Sie eine ML-Pipelineausführung erstellt haben, können Sie sie mit einem Test oder einer Testausführung verknüpfen. So können Sie mit verschiedenen Variablen experimentieren, z. B. mit Hyperparametern, der Anzahl der Trainingsschritte oder Iterationen.

Weitere Informationen zu Tests mit ML-Workflows mit Vertex AI Experiments finden Sie unter Einführung in Vertex AI Experiments.

Nächste Schritte