Vous pouvez utiliser les fonctionnalités de traitement des données à échelle de Dataflow ML pour les pipelines de prédiction et d'inférence et pour la préparation des données pour l'entraînement.
Conditions requises et limites
- Dataflow ML est compatible avec les pipelines de traitement par lot et par flux.
- L'API
RunInference
est compatible avec Apache Beam 2.40.0 et versions ultérieures. - L'API
MLTransform
est compatible avec Apache Beam 2.53.0 et versions ultérieures. - Les gestionnaires de modèles sont disponibles pour PyTorch, scikit-learn, TensorFlow, ONNX et TensorRT. Pour les frameworks non compatibles, vous pouvez utiliser un gestionnaire de modèles personnalisés.
Préparation des données pour l'entraînement
Utilisez la fonctionnalité
MLTransform
pour préparer vos données à l'entraînement des modèles de ML. Pour en savoir plus, consultez la section Prétraiter des données avecMLTransform
.Utilisez Dataflow avec des frameworks ML-OPS, tels que Kubeflow Pipelines (KFP) ou TensorFlow Extended (TFX). Pour en savoir plus, consultez la page Dataflow ML dans les workflows de ML.
Pipelines de prédiction et d'inférence
Dataflow ML combine la puissance de Dataflow avec l'API RunInference
d'Apache Beam.
L'API RunInference
vous permet de définir les caractéristiques et les propriétés du modèle et de transmettre cette configuration à la transformation RunInference
. Cette fonctionnalité permet aux utilisateurs d'exécuter le modèle dans leurs pipelines Dataflow sans avoir à connaître les détails de mise en œuvre du modèle. Vous pouvez choisir le framework qui convient le mieux à vos données, tel que TensorFlow et PyTorch.
Exécuter plusieurs modèles dans un pipeline
Utilisez la transformation RunInference
pour ajouter plusieurs modèles d'inférence à votre pipeline Dataflow. Pour en savoir plus, y compris sur le code, consultez la page Pipelines multi-modèles dans la documentation Apache Beam.
Créer un pipeline multilingue
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.
Pour obtenir des instructions détaillées et un exemple de pipeline, consultez la page Utiliser RunInference à partir du SDK Java.
Utiliser des GPU avec Dataflow
Pour les pipelines par lot ou par flux qui nécessitent l'utilisation d'accélérateurs, vous pouvez exécuter des pipelines Dataflow sur des appareils GPU NVIDIA. Pour en savoir plus, consultez la page Exécuter un pipeline Dataflow avec des GPU.
Résoudre les problèmes liés à Dataflow ML
Cette section fournit des stratégies de dépannage et des liens qui peuvent vous être utiles lors de l'utilisation de Dataflow ML.
La pile s'attend à ce que chaque Tensor ait la même taille
Si vous fournissez des images de différentes tailles ou des embeddings lexicaux de différentes longueurs lorsque vous utilisez l'API RunInference
, l'erreur suivante peut se produire :
File "/beam/sdks/python/apache_beam/ml/inference/pytorch_inference.py", line 232, in run_inference batched_tensors = torch.stack(key_to_tensor_list[key]) RuntimeError: stack expects each tensor to be equal size, but got [12] at entry 0 and [10] at entry 1 [while running 'PyTorchRunInference/ParDo(_RunInferenceDoFn)']
Cette erreur se produit car l'API RunInference
ne peut pas regrouper les éléments de Tensor de tailles différentes. Pour contourner les problèmes, consultez la section Impossible de regrouper les éléments de Tensor dans la documentation Apache Beam.
Étapes suivantes
- Explorez les notebooks des cas d'utilisation.
- Obtenez des informations détaillées sur l'utilisation du ML avec Apache Beam dans la documentation d'Apache Beam sur les pipelines d'IA/de ML.
- Découvrez l'API
RunInference
. - Découvrez les métriques que vous pouvez utiliser pour surveiller votre transformation
RunInference
.