Dataflow ML

Mit Dataflow ML können Sie vollständige ML-Pipelines (maschinelles Lernen) mithilfe von Dataflow bereitstellen und verwalten. Verwenden Sie ML-Modelle für lokale und Remote-Inferenz mit Batch- und Streaming-Pipelines. Verwenden Sie Datenverarbeitungstools, um Ihre Daten für das Modelltraining vorzubereiten und die Ergebnisse der Modelle zu verarbeiten.
Hier finden Sie vollständige Dataflow ML-Beispiele – unabhängig davon, ob Sie Bilder in Echtzeit klassifizieren, Remote-Inferenzaufrufe ausführen oder einen benutzerdefinierten Modell-Handler erstellen möchten.
Verwenden Sie die Klasse MLTransform, um Daten für ML-Workflows vorzuverarbeiten. Durch die Kombination mehrerer Datenverarbeitungstransformationen in einer Klasse optimiert MLTransform den Prozess der Anwendung von Apache Beam ML-Datenverarbeitungstransformationen auf Ihren Workflow.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
Die Verwendung von RunInference ist genauso einfach wie das Hinzufügen des Transformationscodes zu Ihrer Pipeline. In diesem Beispiel ist MODEL_HANDLER das Modellkonfigurationsobjekt.
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
Verwenden Sie MLTransform in Ihrer Pipeline, um Ihre Daten für das Training von ML-Modellen vorzubereiten. MLTransform fasst mehrere Datenverarbeitungstransformationen in einer Klasse zusammen, sodass Sie eine Klasse für eine Vielzahl von Vorverarbeitungsaufgaben verwenden können.

Vorhersage und Inferenz mit vortrainierten Modellen

Verwenden Sie ein vortrainiertes Modell mit PyTorch.
Verwenden Sie ein vortrainiertes Modell mit scikit-learn.
Verwenden Sie ein vortrainiertes Modell mit TensorFlow.
Apache Beam unterstützt das Senden von Anfragen an einen remote bereitgestellten Vertex AI-Endpunkt. Dieses Notebook zeigt, wie Sie die Apache Beam-Transformation RunInference für die Bildklassifizierung mit Vertex AI verwenden.
Verwenden Sie die RunInference-Transformation mit einem schlüsselbasierten Modell-Handler, um mehrere Modelle in derselben RunInference-Transformation zu verwenden.

Datenverarbeitung mit MLTransform

Verwenden Sie die Klasse MLTransform von Apache Beam mit der Text-Einbettungen-API von Vertex AI, um Texteinbettungen zu generieren. Texteinbettungen sind eine Möglichkeit, Text als numerische Vektoren darzustellen, was für viele NLP-Aufgaben (Natural Language Processing) erforderlich ist.
Verwenden Sie die MLTransform-Klasse von Apache Beam mit Hugging Face Hub-Modellen, um Texteinbettungen zu generieren. Das SentenceTransformers-Framework Hugging Face verwendet Python, um Satz-, Text- und Bildeinbettungen zu erzeugen.
Berechnen Sie ein eindeutiges Vokabular aus einem Dataset und ordnen Sie dann jedes Wort oder Token einem bestimmten Ganzzahlindex zu. Mit dieser Transformation können Sie Textdaten in Aufgaben für maschinelles Lernen in numerische Darstellungen umwandeln.
Skalieren Sie Ihre Daten, damit Sie sie zum Trainieren Ihres ML-Modells verwenden können. Die MLTransform-Klasse von Apache Beam enthält mehrere Datenskalierungstransformationen.

Vorhersage und Inferenz mit Hub-Modellen

Sie können Gemma-Modelle in Ihren Inferenzpipelines verwenden, um das Sentiment einer Unterhaltung zu beurteilen, den Inhalt dieser Unterhaltung zusammenzufassen und eine Antwort auf eine schwierige Unterhaltung zu verfassen.
Verwenden Sie die Transformation RunInference mit einem trainierten Modell aus Hugging Face.
Verwenden Sie die Transformation RunInference für TensorFlow mit einem trainierten Modell aus TensorFlow Hub.
Verwenden Sie die Transformation RunInference für Aufgaben der generativen KI. Dieses Notebook verwendet ein Sprachmodell aus dem Hugging Face Model Hub.

ML-Workflow-Orchestrierung

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 Workflow-DAGs orchestrieren, die entweder von TFX oder KFP definiert werden, und Ihre ML-Artefakte automatisch mit Vertex ML Metadata verfolgen.
Mit TensorFlow Extended (TFX) können Sie vollständige ML-Pipelines mithilfe eines Orchestrierungs-Frameworks mit integrierter Einbindung in Apache Beam und den Dataflow-Runner bereitstellen.
Mit Kubeflow sind Deployments von ML-Workflows in Kubernetes einfach, portabel und skalierbar. Kubeflow Pipelines sind wiederverwendbare vollständige ML-Workflows, die mit dem Kubeflow Pipelines SDK erstellt wurden.

Zusätzliche Funktionen

Die Verwendung von GPUs in Dataflow-Jobs kann die Aufgaben zur Verarbeitung von Bildern und zur Verarbeitung von maschinellem Lernen beschleunigen. Beachten Sie die von Dataflow unterstützten GPU-Typen und Empfehlungen zur Verwendung der jeweiligen GPU-Typen für verschiedene Arbeitslasten.
Sie können GPUs und CPUs kombinieren, um eine hohe Leistung zu erzielen und gleichzeitig Kosten zu sparen. Die Möglichkeit, Ressourcen auf bestimmte Pipelineschritte anzuwenden, bietet zusätzliche Pipelineflexibilität und -funktionen sowie potenzielle Kosteneinsparungen.
Apache Beam vereinfacht den Datenanreicherungs-Workflow, indem es eine schlüsselfertige Anreicherungstransformation bietet, die Sie Ihrer Pipeline hinzufügen können.

Modellwartung und -bewertung

Mit RunInference können Sie automatische Modellaktualisierungen ausführen, ohne Ihre Apache Beam-Pipeline zu unterbrechen. Verwenden Sie Nebeneingaben, um Ihr Modell in Echtzeit zu aktualisieren, auch während die Pipeline ausgeführt wird.
Verwenden Sie TensorFlow Model Analysis (TFMA), um die Leistung eines Modells zu untersuchen und zu visualisieren, indem Sie zwei Modelle erstellen und vergleichen. Mit Apache Beam können Sie mehrere Modelle in einem Schritt bewerten und vergleichen.

Ressourcen

Wenn Sie RunInference mit einer Java-Pipeline verwenden möchten, erstellen Sie eine sprachübergreifende Python-Transformation. Die Pipeline ruft die Transformation auf, die die Vor- und Nachverarbeitung sowie die Inferenz ausführt.
Zum Ausführen der Dataflow ML-Beispiele müssen Sie möglicherweise Ihre Google Cloud-Berechtigungen konfigurieren. Eine detaillierte Anleitung zu den erforderlichen Berechtigungen für Dataflow-Pipelines lesen.
Die Beispiele und der entsprechende Quellcode sind auf GitHub verfügbar. Auf GitHub finden Sie auch eine Anleitung zum Ausführen der Beispiele in Colab.