Dataflow ML in ML-Workflows

Zur Orchestrierung komplexer Workflows für maschinelles Lernen können Sie Frameworks erstellen, die Schritte zur Vor-/Nachverarbeitung von Daten enthalten. Möglicherweise müssen Sie Daten vorverarbeiten, bevor Sie sie zum Trainieren Ihres Modells oder zum Nachverarbeiten von Daten verwenden können, um die Ausgabe Ihres Modells zu transformieren.

ML-Workflows enthalten häufig viele Schritte, die zusammen eine Pipeline bilden. Zum Erstellen Ihrer Pipeline für maschinelles Lernen können Sie eine der folgenden Methoden nutzen.

  • Verwenden Sie ein Orchestrierungs-Framework mit einer integrierten Einbindung in Apache Beam und den Dataflow-Runner wie TensorFlow Extended (TFX) oder Kubeflow Pipelines (KFP). Diese Option ist am wenigsten komplex.
  • Erstellen Sie eine benutzerdefinierte Komponente in einer Dataflow-Vorlage und rufen Sie die Vorlage dann aus Ihrer ML-Pipeline auf. Der Aufruf enthält Ihren Apache Beam-Code.
  • Erstellen Sie eine benutzerdefinierte Komponente zur Verwendung in Ihrer ML-Pipeline und fügen Sie den Python-Code direkt in die Komponente ein. Sie definieren eine benutzerdefinierte Apache Beam-Pipeline und verwenden den Dataflow-Runner in der benutzerdefinierten Komponente. Diese Option ist am komplexesten und erfordert die Verwaltung von Pipelineabhängigkeiten.

Nachdem Sie Ihre ML-Pipeline erstellt haben, können Sie die Komponenten mithilfe eines Orchestrators verketten, um einen End-to-End-Workflow für maschinelles Lernen zu erstellen. Zur Orchestrierung der Komponenten können Sie einen verwalteten Dienst wie Vertex AI Pipelines verwenden.

Anwendungsfälle für die Workflow-Orchestrierung werden in den folgenden Abschnitten beschrieben.

Sowohl TFX als auch Kubeflow Pipelines (KFP) verwenden Apache Beam-Komponenten.

Ich möchte Dataflow mit Vertex AI Pipelines verwenden

Vertex AI Pipelines ermöglicht es Ihnen, Ihre ML-Systeme zu automatisieren, zu überwachen und zu steuern. Dazu werden Ihre ML-Workflows serverlos orchestriert. Mit Vertex AI Pipelines können Sie gerichtete azyklische Graphen-Workflows (Directed Acyclic Graphs, DAGs) orchestrieren, die entweder von TFX oder KFP definiert werden, und Ihre ML-Artefakte automatisch mit Vertex ML Metadata verfolgen. In den folgenden Abschnitten erfahren Sie, wie Sie Dataflow mit TFX und KFP einbinden.

Ich möchte Dataflow mit Kubeflow Pipelines verwenden

Kubeflow ist ein ML-Toolkit zum einfachen, portablen und skalierbaren Bereitstellen von ML-Workflows auf Kubernetes. Kubeflow Pipelines sind wiederverwendbare End-to-End-ML-Workflows, die mit dem Kubeflow Pipelines SDK erstellt wurden.

Der Kubeflow Pipelines-Dienst soll eine End-to-End-Orchestrierung bereitstellen und Tests und Wiederverwendung erleichtern. Mit KFP können Sie mit Orchestrierungstechniken experimentieren und Ihre Tests verwalten. Außerdem können Sie Komponenten und Pipelines wiederverwenden, um mehrere End-to-End-Lösungen zu erstellen, ohne jedes Mal von vorn beginnen zu müssen.

Wenn Sie Dataflow mit KFP verwenden, können Sie den Operator DataflowPythonJobOP oder DataflowFlexTemplateJobOp verwenden. Sie können auch eine vollständig benutzerdefinierte Komponente erstellen. Wir empfehlen die Verwendung des Operators DataflowPythonJobOP.

Informationen zum Erstellen einer vollständig benutzerdefinierten Komponente finden Sie in der Vertex AI-Dokumentation auf der Seite Dataflow-Komponenten.

Ich möchte Dataflow mit TFX verwenden

TFX-Pipelinekomponenten basieren auf TFX-Bibliotheken und die Datenverarbeitungsbibliotheken verwenden Apache Beam direkt. Beispielsweise übersetzt TensorFlow Transform die Aufrufe des Nutzers nach Apache Beam. Daher können Sie Apache Beam und Dataflow mit TFX-Pipelines verwenden, ohne dass zusätzliche Konfigurationsschritte erforderlich sind. Wenn Sie TFX mit Dataflow verwenden möchten, verwenden Sie beim Erstellen der TFX-Pipeline den Dataflow-Runner. Weitere Informationen finden Sie in den folgenden Ressourcen: