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.
Vorhersage und Inferenz
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.
Datenverarbeitung
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))
RunInference-Transformation
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))
MLTransform-Code
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
Ich habe ein Pytorch-Modell
Verwenden Sie ein vortrainiertes Modell mit PyTorch.
Ich habe ein scikit-learn-Modell
Verwenden Sie ein vortrainiertes Modell mit scikit-learn.
Ich habe ein TensorFlow-Modell
Verwenden Sie ein vortrainiertes Modell mit TensorFlow.
Ich habe einen Vertex AI-Modell-Handler
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.
Ich möchte mehrere unterschiedlich trainierte Modelle in meiner Pipeline verwenden
Verwenden Sie die
RunInference
-Transformation mit einem schlüsselbasierten Modell-Handler, um mehrere Modelle in derselben RunInference
-Transformation zu verwenden.
Datenverarbeitung mit MLTransform
Ich möchte Texteinbettungen für mein LLM mit Vertex AI generieren
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.
Ich möchte mithilfe von Hugging Face Texteinbettungen für mein LLM generieren
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.
Ich möchte ein Vokabular aus einem Dataset berechnen
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.
Ich möchte meine Daten skalieren, um mein ML-Modell zu trainieren
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
Ich möchte eine Sentimentanalyse und Zusammenfassung durchführen
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.
Ich habe ein trainiertes Modell aus Hugging Face
Verwenden Sie die Transformation
RunInference
mit einem trainierten Modell aus Hugging Face.
Ich habe ein trainiertes Modell aus TensorFlow Hub
Verwenden Sie die Transformation
RunInference
für TensorFlow mit einem trainierten Modell aus TensorFlow Hub.
Ich möchte generative KI nutzen
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
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 Workflow-DAGs orchestrieren, die entweder von TFX oder KFP definiert werden, und Ihre ML-Artefakte automatisch mit Vertex ML Metadata verfolgen.
Ich möchte Dataflow mit TFX verwenden
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.
Ich möchte Dataflow mit KFP verwenden
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
GPUs verwenden
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.
CPUs und GPUs mit der richtigen Passform kombinieren
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.
Streaming-Pipelines mit Feature Store-Daten anreichern
Apache Beam vereinfacht den Datenanreicherungs-Workflow, indem es eine schlüsselfertige Anreicherungstransformation bietet, die Sie Ihrer Pipeline hinzufügen können.
Modellwartung und -bewertung
Automatische Modellaktualisierung
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.
Modelle bewerten
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
Mehrsprachige Pipelines ausführen
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.
Dataflow-Berechtigungen
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.
Beispiele auf GitHub ansehen
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.