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.
Prédiction et inférence
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.
Traitement des données
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))
Transformation RunInference
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))
Code MLTransform
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
J'ai un modèle PyTorch
Utilisez un modèle pré-entraîné avec Pytorch.
J'ai un modèle scikit-learn
Utilisez un modèle pré-entraîné avec scikit-learn.
J'ai un modèle TensorFlow
Utilisez un modèle pré-entraîné avec TensorFlow.
J'ai un gestionnaire de modèles Vertex AI
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.
Je souhaite utiliser plusieurs modèles entraînés différemment dans mon pipeline
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
Je souhaite générer des embeddings textuels pour mon LLM à l'aide de Vertex AI
Utilisez la classe
MLTransform
d'Apache Beam avec l'API d'embeddings textuels Vertex AI pour générer des embeddings textuels. Les embeddings textuels 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).
Je souhaite générer des embeddings textuels pour mon LLM à l'aide de Hugging Face
Utilisez la classe
MLTransform
d'Apache Beam avec les modèles du Hub Hugging Face pour générer des embeddings textuels. L'environnement logiciel SentenceTransformers
de Hugging Face permet de générer des embeddings de phrases, de texte et d'images à l'aide de Python.
Je souhaite calculer un vocabulaire à partir d'un ensemble de données
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 des tâches de machine learning.
Je souhaite faire évoluer mes données pour entraîner mon modèle de ML
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 comprend plusieurs transformations de scaling des données.
Prédiction et inférence avec des modèles hub
Je souhaite effectuer une analyse des sentiments et un résumé
Vous pouvez utiliser des modèles Gemma dans vos pipelines d'inférence pour évaluer le sentiment d'une conversation, résumer son contenu et rédiger une réponse à une conversation difficile.
J'ai un modèle entraîné de Hugging Face
Utilisez la transformation
RunInference
avec un modèle entraîné de Hugging Face.
J'ai un modèle entraîné de TensorFlow Hub
Utilisez la transformation
RunInference
pour TensorFlow avec un modèle issu de TensorFlow Hub.
Je souhaite faire de l'IA générative
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
Je souhaite utiliser Dataflow avec Vertex AI Pipelines
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.
Je souhaite utiliser Dataflow avec TFX
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.
Je souhaite utiliser Dataflow avec KFP
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.
Autres fonctionnalités
Utiliser les GPU
L'utilisation de GPU dans les jobs Dataflow peut accélérer les tâches de traitement d'image et de machine learning. Consultez les types de GPU compatibles avec Dataflow et les recommandations pour le type de GPU à utiliser pour différentes charges de travail.
Combiner des CPU et des processeurs adaptés
Combinez des GPU et des processeurs pour des performances élevées et un coût réduit. La possibilité de cibler des ressources par étapes de pipeline spécifiques offre au pipeline une flexibilité et une capacité supplémentaires, ainsi que des économies potentielles.
Enrichir les pipelines de streaming avec des données de Feature Store
Apache Beam simplifie le workflow d'enrichissement des données en fournissant une transformation d'enrichissement clé en main que vous pouvez ajouter à votre pipeline.
Maintenance et évaluation du modèle
Actualisation automatique 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.
Évaluer vos modèles
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
Exécuter des pipelines multilingues
Pour utiliser RunInference avec un pipeline Java, créez une transformation Python multilingue. Le pipeline appelle la transformation, qui effectue les opérations de prétraitement, de post-traitement et d'inférence.
Autorisations Dataflow
Pour exécuter les exemples de Dataflow ML, vous devrez peut-être configurer vos autorisations Google Cloud. Lisez un guide détaillé sur les autorisations requises pour les pipelines Dataflow.
Afficher les exemples sur GitHub
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.