Pour orchestrer des workflows de machine learning complexes, vous pouvez créer des frameworks qui incluent des étapes de prétraitement et de post-traitement des données. Vous devrez peut-être prétraiter les données avant de pouvoir les utiliser pour entraîner votre modèle, ou post-traiter les données pour transformer la sortie de votre modèle.
Les workflows de ML contiennent souvent de nombreuses étapes qui forment ensemble un pipeline. Pour créer votre pipeline de machine learning, vous pouvez utiliser l'une des méthodes suivantes.
- Utilisez un framework d'orchestration doté d'une intégration avec Apache Beam et l'exécuteur Dataflow, tel que TensorFlow Extended (TFX) ou Kubeflow Pipelines (KFP). Cette option est la moins complexe.
- Créez un composant personnalisé dans un modèle Dataflow, puis appelez le modèle à partir de votre pipeline de ML. L'appel contient votre code Apache Beam.
- Créez un composant personnalisé à utiliser dans votre pipeline de ML et placez le code Python directement dans le composant. Vous définissez un pipeline Apache Beam personnalisé et utilisez l'exécuteur Dataflow dans le composant personnalisé. Cette option est la plus complexe et nécessite de gérer les dépendances du pipeline.
Une fois votre pipeline de machine learning créé, vous pouvez utiliser un orchestrateur pour enchaîner les composants afin de créer un workflow de machine learning de bout en bout. Pour orchestrer les composants, vous pouvez utiliser un service géré tel que Vertex AI Pipelines.
Utiliser des accélérateurs de ML
Pour les workflows de machine learning qui impliquent un traitement de données intensif en termes de calcul, comme l'inférence avec de grands modèles, vous pouvez utiliser des accélérateurs avec des nœuds de calcul Dataflow. Dataflow est compatible avec les GPU et les TPU.
GPU
Vous pouvez utiliser des GPU NVIDIA avec les jobs Dataflow pour accélérer le traitement. Dataflow est compatible avec différents types de GPU NVIDIA, y compris les GPU T4, L4, A100, H100 et V100. Pour utiliser des GPU, vous devez configurer votre pipeline avec une image de conteneur personnalisée sur laquelle les pilotes et les bibliothèques de GPU nécessaires sont installés.
Pour en savoir plus sur l'utilisation des GPU avec Dataflow, consultez la page Compatibilité de Dataflow avec les GPU.
TPU
Dataflow est également compatible avec les Cloud TPU, qui sont des accélérateurs d'IA conçus sur mesure par Google et optimisés pour les grands modèles d'IA. Les TPU peuvent être un bon choix pour accélérer les charges de travail d'inférence sur des frameworks tels que PyTorch, JAX et TensorFlow. Dataflow est compatible avec les configurations TPU à hôte unique, où chaque nœud de calcul gère un ou plusieurs appareils TPU.
Pour en savoir plus, consultez Prise en charge des TPU par Dataflow.
Orchestration des workflows
Les cas d'utilisation de l'orchestration de workflow sont décrits dans les sections suivantes.
- Je souhaite utiliser Dataflow avec Vertex AI Pipelines
- Je souhaite utiliser Dataflow avec KFP
- Je souhaite utiliser Dataflow avec TFX
TFX et Kubeflow Pipelines (KFP) utilisent tous deux des composants Apache Beam.
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. Vous pouvez utiliser 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. Pour découvrir comment intégrer Dataflow à TFX et KFP, consultez les informations des sections suivantes.
Je souhaite utiliser Dataflow avec Kubeflow Pipelines
Kubeflow est un ensemble d'outils de ML conçu pour rendre les déploiements de workflows de ML sur Kubernetes plus faciles à utiliser, portables et évolutifs. Kubeflow Pipelines consiste en des workflows de ML de bout en bout réutilisables créés à l'aide du SDK Kubeflow Pipelines.
Le service Kubeflow Pipelines vise à fournir une orchestration de bout en bout et à faciliter l'expérimentation et la réutilisation. Avec KFP, vous pouvez tester des techniques d'orchestration et gérer vos tests. Vous pouvez aussi réutiliser des composants et des pipelines pour créer plusieurs solutions de bout en bout sans recommencer à chaque fois.
Lorsque vous utilisez Dataflow avec KFP, vous pouvez utiliser l'opérateur DataflowPythonJobOP
ou DataflowFlexTemplateJobOp
. Vous pouvez également créer un composant entièrement personnalisé. Nous vous recommandons d'utiliser l'opérateur DataflowPythonJobOP
.
Si vous souhaitez créer un composant entièrement personnalisé, consultez la page Composants Dataflow dans la documentation Vertex AI.
Je souhaite utiliser Dataflow avec TFX
Les composants du pipeline TFX sont basés sur les bibliothèques TFX, et les bibliothèques de traitement des données utilisent directement Apache Beam. Par exemple, TensorFlow Transform traduit les appels de l'utilisateur vers Apache Beam. Vous pouvez donc utiliser Apache Beam et Dataflow avec les pipelines TFX sans avoir à effectuer de configuration supplémentaire. Pour utiliser TFX avec Dataflow, utilisez l'exécuteur Dataflow lorsque vous créez votre pipeline TFX. Pour en savoir plus, consultez les ressources suivantes :
- Apache Beam et TFX
- TensorFlow Extended (TFX) : utiliser Apache Beam pour le traitement des données à grande échelle