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 verwenden können, oder Daten nachverarbeiten, um die Ausgabe Ihres Modells zu transformieren.
ML-Workflows enthalten häufig viele Schritte, die zusammen eine Pipeline bilden. Sie haben folgende Möglichkeiten, um Ihre Pipeline für maschinelles Lernen zu erstellen.
- Verwenden Sie ein Orchestrierungs-Framework mit integrierter Einbindung in Apache Beam und den Dataflow-Runner, z. B. 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.
- Sie erstellen eine benutzerdefinierte Komponente, die in Ihrer ML-Pipeline verwendet werden soll, und fügen 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 die komplexeste und erfordert, dass Sie Pipelineabhängigkeiten verwalten.
Nachdem Sie Ihre Pipeline für maschinelles Lernen erstellt haben, können Sie mit einem Orchestrator die Komponenten verketten, um einen End-to-End-Workflow für maschinelles Lernen zu erstellen. Zum Orchestrieren der Komponenten können Sie einen verwalteten Dienst wie Vertex AI Pipelines verwenden.
ML-Beschleuniger verwenden
Für Machine-Learning-Workflows, die rechenintensive Datenverarbeitung umfassen, z. B. Inferenz mit großen Modellen, können Sie Beschleuniger mit Dataflow-Workern verwenden. Dataflow unterstützt sowohl GPUs als auch TPUs.
GPUs
Sie können NVIDIA-GPUs mit Dataflow-Jobs verwenden, um die Verarbeitung zu beschleunigen. Dataflow unterstützt verschiedene NVIDIA-GPU-Typen, darunter T4, L4, A100, H100 und V100. Wenn Sie GPUs verwenden möchten, müssen Sie Ihre Pipeline mit einem benutzerdefinierten Container-Image konfigurieren, in dem die erforderlichen GPU-Treiber und ‑Bibliotheken installiert sind.
Ausführliche Informationen zur Verwendung von GPUs mit Dataflow finden Sie unter Dataflow-Unterstützung für GPUs.
TPUs
Dataflow unterstützt auch Cloud TPUs, die von Google speziell entwickelte KI-Beschleuniger sind, die für große KI-Modelle optimiert sind. TPUs können eine gute Wahl sein, um Inferenzarbeitslasten in Frameworks wie PyTorch, JAX und TensorFlow zu beschleunigen. Dataflow unterstützt TPU-Konfigurationen mit einem einzelnen Host, bei denen jeder Worker ein oder mehrere TPU-Geräte verwaltet.
Weitere Informationen finden Sie unter Dataflow-Unterstützung für TPUs.
Workflow-Orchestrierung
Anwendungsfälle für die Workflow-Orchestrierung werden in den folgenden Abschnitten beschrieben.
- Ich möchte Dataflow mit Vertex AI Pipelines verwenden
- Ich möchte Dataflow mit KFP verwenden
- Ich möchte Dataflow mit TFX verwenden
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, mit dem die Bereitstellung von ML-Workflows auf Kubernetes einfacher, portabel und skalierbar wird. Kubeflow Pipelines sind wiederverwendbare End-to-End-ML-Workflows, die mit dem Kubeflow Pipelines SDK erstellt wurden.
Der Kubeflow Pipelines-Dienst versucht eine End-to-End-Orchestrierung zu bieten und Tests und Wiederverwendung zu 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 den Operator DataflowFlexTemplateJobOp
verwenden. Sie können auch eine vollständig benutzerdefinierte Komponente erstellen. Wir empfehlen die Verwendung des Operators DataflowPythonJobOP
.
Wenn Sie eine vollständig benutzerdefinierte Komponente erstellen möchten, lesen Sie die Seite Dataflow-Komponenten in der Vertex AI-Dokumentation.
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 zusätzliche Konfigurationen vornehmen zu müssen. Wenn Sie TFX mit Dataflow verwenden möchten, müssen Sie beim Erstellen Ihrer TFX-Pipeline den Dataflow-Runner verwenden. Weitere Informationen finden Sie in den folgenden Ressourcen:
- Apache Beam und TFX
- TensorFlow Extended (TFX): Apache Beam für die Verarbeitung großer Datenmengen verwenden