Dataflow ML

Dataflow ML vous permet de déployer et gérer des pipelines de machine learning (ML) complets à l'aide de Dataflow. Utilisez des modèles de ML pour effectuer des inférences en local et à distance avec des pipelines de traitement par lot et par flux. Utilisez les outils de traitement des données pour préparer vos données à entraîner des modèles et traiter leurs résultats.
Que vous souhaitiez classer des images en temps réel, exécuter des appels d'inférence à distance ou créer un gestionnaire de modèles personnalisés, vous pouvez trouver des exemples de ML Dataflow complets.
Utilisez la classe MLTransform pour prétraiter les données des workflows de machine learning (ML). En combinant plusieurs transformations de traitement de données dans une même classe, MLTransform simplifie le processus d'application des transformations de traitement de données Apache Beam à votre workflow.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
L'utilisation de RunInference est aussi simple que d'ajouter le code de transformation à votre pipeline. Dans cet exemple, MODEL_HANDLER est l'objet de configuration du modèle.
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
Pour préparer vos données afin d'entraîner des modèles de ML, utilisez MLTransform dans votre pipeline. MLTransform encapsule plusieurs transformations de traitement des données au sein d'une même classe, ce qui vous permet d'utiliser une classe pour diverses tâches de prétraitement.

Prédiction et inférence avec des modèles pré-entraînés

Utilisez un modèle pré-entraîné avec Pytorch.
Utilisez un modèle pré-entraîné avec scikit-learn.
Utilisez un modèle pré-entraîné avec TensorFlow.
Apache Beam est compatible avec l'envoi de requêtes à un point de terminaison Vertex AI déployé à distance. Ce notebook explique comment utiliser la transformation Apache Beam RunInference pour la classification d'images avec Vertex AI.
Utilisez la transformation RunInference avec un gestionnaire de modèles à clé pour utiliser plusieurs modèles dans la même transformation RunInference.

Traitement des données avec MLTransform

Utilisez la classe MLTransform d'Apache Beam avec l'API de représentations vectorielles continues de textes Vertex AI pour générer des représentations vectorielles continues de texte. Les représentations vectorielles continues de texte permettent de représenter du texte sous forme de vecteurs numériques, ce qui est nécessaire pour de nombreuses tâches de traitement du langage naturel (TLN).
Utilisez la classe MLTransform d'Apache Beam avec les modèles du Hub Hugging Face pour générer des représentations vectorielles continues de texte. L'environnement logiciel SentenceTransformers de Huging Face permet de générer des représentations vectorielles continues de phrases, de texte et d'images à l'aide de Python.
Calculez un vocabulaire unique à partir d'un ensemble de données, puis mappez chaque mot ou jeton à un index d'entiers distinct. Utilisez cette transformation pour convertir des données textuelles en représentations numériques pour les tâches de machine learning.
Effectuez le scaling de vos données afin de pouvoir les utiliser pour entraîner votre modèle de ML. La classe MLTransform d'Apache Beam inclut plusieurs transformations de scaling de données.

Prédiction et inférence avec des modèles hub

Vous pouvez utiliser des modèles Gemma dans vos pipelines d'inférence pour effectuer une analyse des sentiments.
Utilisez la transformation RunInference avec un modèle entraîné de Hugging Face.
Utilisez la transformation RunInference pour TensorFlow avec un modèle issu de TensorFlow Hub.
Utilisez la transformation RunInference pour les tâches d'IA générative. Ce notebook utilise un modèle de langage issu du Hub de modèles de Hugging Face.

Orchestration des workflows de ML

Vertex AI Pipelines vous aide à automatiser, à surveiller et à gérer vos systèmes de ML en orchestrant votre workflow de ML sans serveur. Utilisez Vertex AI Pipelines pour orchestrer les DAG de workflow définis par TFX ou KFP, et pour suivre automatiquement vos artefacts de ML à l'aide de Vertex ML Metadata.
TensorFlow Extended (TFX) vous permet de déployer des pipelines de ML complets à l'aide d'un framework d'orchestration doté d'une intégration avec Apache Beam et l'exécuteur Dataflow.
Kubeflow rend les déploiements de workflows de ML sur Kubernetes simples, portables et évolutifs. Kubeflow Pipelines consiste en des workflows de ML complets réutilisables créés à l'aide du SDK Kubeflow Pipelines.

Maintenance et évaluation du modèle

RunInference vous permet d'effectuer des mises à jour automatiques de modèles sans arrêter votre pipeline Apache Beam. Utilisez des entrées secondaires pour mettre à jour votre modèle en temps réel, même pendant que le pipeline est en cours d'exécution.
Utilisez TensorFlow Model Analysis (TFMA) pour examiner et visualiser les performances d'un modèle en créant et en comparant deux modèles. Apache Beam vous permet d'évaluer et de comparer plusieurs modèles en une seule étape.

Ressources

L'utilisation de GPU dans les jobs Dataflow peut accélérer les tâches de traitement d'image et de machine learning.
Pour exécuter les exemples Dataflow ML, vous devrez peut-être configurer vos autorisations Google Cloud. Lisez un guide détaillé sur les autorisations requises pour les pipelines Dataflow.
Les exemples et le code source correspondant sont disponibles sur GitHub. Dans GitHub, vous trouverez également des instructions pour exécuter les exemples dans Colab.