Le machine learning distribué permet aux data scientists et aux ingénieurs de ML d'entraîner des modèles de machine learning (ML) au-delà des limites de mémoire et de calcul d'une seule machine. En répartissant les partitions de données et en exécutant en parallèle les charges de travail sur un cluster de nœuds de calcul, vous pouvez entraîner des modèles complexes sur des ensembles de données volumineux beaucoup plus rapidement.
Apache Spark est la norme du secteur pour le traitement distribué des données. Sa bibliothèque de machine learning native, MLlib, fournit des algorithmes distribués pour la classification, la régression, le clustering et le filtrage collaboratif, ce qui vous permet de passer de l'ingestion de données au déploiement de modèles dans un environnement unique et unifié.
Un pipeline de ML Spark est une API de haut niveau conçue pour vous aider à combiner plusieurs workflows de machine learning dans un pipeline cohérent. Il vous permet d'enchaîner différentes transformations de données (comme l'extraction de caractéristiques et la mise à l'échelle) et des algorithmes de machine learning (comme l'entraînement de modèle) dans un workflow structuré et déclaratif.
En utilisant un pipeline, vous vous assurez que la même séquence d'étapes de prétraitement des données est appliquée de manière cohérente lors de l'entraînement et de la prédiction du modèle, ce qui est essentiel pour éviter les fuites de données et garantir des résultats reproductibles. Les principaux composants d'un pipeline de ML Spark sont les transformers et les estimateurs.
Le scaling des charges de travail de ML pour appliquer l'accélération matérielle se heurte souvent à la complexité de la gestion des dépendances GPU Spark. Le provisionnement d'instances de VM, l'installation des pilotes NVIDIA appropriés et la vérification de la correspondance des versions CUDA et cuDNN avec vos bibliothèques PyTorch ou TensorFlow peuvent interrompre la productivité des développeurs pendant plusieurs jours.
Google Cloud résout ce problème avec Managed Service pour Apache Spark, qui propose des environnements d'exécution de machine learning prédéfinis. Basés sur des images Ubuntu stables (à partir de la version 2.3), ces environnements d'exécution sont préinstallés et préconfigurés avec les pilotes de GPU (CUDA, cuDNN, NCCL) et les frameworks de ML standards (PyTorch, XGBoost, tokenizers et transformers) dont vos charges de travail ont précisément besoin. Cet environnement sans configuration permet à votre équipe de se concentrer sur l'écriture de code plutôt que sur la configuration de l'infrastructure.
Dans Spark MLlib, un transformer est un algorithme qui transforme un DataFrame en un autre (par exemple, en convertissant du texte en vecteurs numériques). Un estimateur est un algorithme qui peut être ajusté sur un DataFrame pour produire un transformer (par exemple, ajuster un algorithme de régression logistique sur des données d'entraînement pour produire un modèle entraîné).
En vous appuyant sur un pipeline de ML Spark, vous vous assurez que votre logique de préparation des données est strictement couplée à votre modèle. Cela garantit que les données de test ou d'inférence sont traitées de la même manière que vos données d'entraînement.
Avec les environnements d'exécution de ML Google Cloud sur Managed Service pour Apache Spark, la gestion des dépendances est allégée. Les images personnalisées basées sur Ubuntu sont continuellement mises à jour par Google et sont pré-empaquetées avec les versions correctes et compatibles de manière native des pilotes NVIDIA, des kits d'outils CUDA et des frameworks de ML distribués.
Il est essentiel de connaître les composants de base de Spark MLlib et les outils de données Google Cloud pour exécuter le ML distribué à grande échelle.
Composant | Description | Cas d'utilisation principal | Remarques sur les tarifs |
Spark MLlib | Bibliothèque de machine learning évolutive d'Apache Spark contenant des algorithmes d'apprentissage courants, des outils de caractérisation et des utilitaires de pipeline. | Exécuter l'entraînement de modèles de ML à grande échelle sur un cluster distribué sans s'appuyer sur des bibliothèques à nœud unique. | Des coûts sont facturés pour les services Google Cloud sous-jacents utilisés pour exécuter Apache Spark, principalement Managed Service pour Apache Spark. La tarification dépend des ressources Compute Engine (vCPU, mémoire, GPU, disque) provisionnées et de la durée d'exécution du job. *Consultez les tarifs de Managed Service pour Apache Spark. |
Assembleur de vecteurs | Transformer de caractéristiques essentiel dans Spark MLlib qui fusionne plusieurs colonnes (nombres continus, catégories encodées en one-hot, etc.) en une seule colonne de vecteurs. | Préparer des données tabulaires brutes au format de vecteur dense ou creux spécifique attendu par les algorithmes de machine learning Spark MLlib. | En tant que composant de Spark MLlib, son exécution contribue aux coûts de calcul globaux de l'exécution de vos charges de travail Spark sur Managed Service pour Apache Spark. |
Pipeline de ML Spark | Une API de haut niveau basée sur les DataFrames qui aide les utilisateurs à enchaîner plusieurs étapes d'ingénierie des caractéristiques et plusieurs modèles. | Regrouper les transformers et les estimateurs dans un pipeline unifié permet de garantir un traitement des données identique lors de l'entraînement et de l'inférence. | Comme pour les autres composants Spark MLlib, les coûts font partie des frais d'exécution de Managed Service pour Apache Spark. |
BigQuery ML | Un service qui vous permet de créer et d'exécuter des modèles de machine learning dans BigQuery à l'aide de requêtes SQL standards. | Entraîner les modèles directement là où se trouvent vos données avant de déplacer les jobs distribués itératifs très complexes vers Spark. | BigQuery ML dispose de son propre modèle de tarification. Vous êtes facturé(e) pour :
|
Composant
Description
Cas d'utilisation principal
Remarques sur les tarifs
Spark MLlib
Bibliothèque de machine learning évolutive d'Apache Spark contenant des algorithmes d'apprentissage courants, des outils de caractérisation et des utilitaires de pipeline.
Exécuter l'entraînement de modèles de ML à grande échelle sur un cluster distribué sans s'appuyer sur des bibliothèques à nœud unique.
Des coûts sont facturés pour les services Google Cloud sous-jacents utilisés pour exécuter Apache Spark, principalement Managed Service pour Apache Spark. La tarification dépend des ressources Compute Engine (vCPU, mémoire, GPU, disque) provisionnées et de la durée d'exécution du job.
*Consultez les tarifs de Managed Service pour Apache Spark.
Assembleur de vecteurs
Transformer de caractéristiques essentiel dans Spark MLlib qui fusionne plusieurs colonnes (nombres continus, catégories encodées en one-hot, etc.) en une seule colonne de vecteurs.
Préparer des données tabulaires brutes au format de vecteur dense ou creux spécifique attendu par les algorithmes de machine learning Spark MLlib.
En tant que composant de Spark MLlib, son exécution contribue aux coûts de calcul globaux de l'exécution de vos charges de travail Spark sur Managed Service pour Apache Spark.
Pipeline de ML Spark
Une API de haut niveau basée sur les DataFrames qui aide les utilisateurs à enchaîner plusieurs étapes d'ingénierie des caractéristiques et plusieurs modèles.
Regrouper les transformers et les estimateurs dans un pipeline unifié permet de garantir un traitement des données identique lors de l'entraînement et de l'inférence.
Comme pour les autres composants Spark MLlib, les coûts font partie des frais d'exécution de Managed Service pour Apache Spark.
BigQuery ML
Un service qui vous permet de créer et d'exécuter des modèles de machine learning dans BigQuery à l'aide de requêtes SQL standards.
Entraîner les modèles directement là où se trouvent vos données avant de déplacer les jobs distribués itératifs très complexes vers Spark.
BigQuery ML dispose de son propre modèle de tarification. Vous êtes facturé(e) pour :
Managed Service pour Apache Spark de Google Cloud élimine la complexité liée à l'infrastructure, ce qui vous permet d'exécuter votre pipeline de ML Spark pour l'entraînement de modèles à grande échelle à l'aide d'environnements sans serveur ou de clusters gérés personnalisables.
Pour éliminer les dépendances de GPU Spark complexes, le service utilise des environnements d'exécution de ML prédéfinis, entièrement équipés de pilotes NVIDIA, de kits d'outils CUDA et de frameworks distribués compatibles de manière native. Vous pouvez ainsi déployer des charges de travail accélérées par le matériel sans aucune configuration.
Découvrez comment utiliser des outils de transformation pour extraire et mettre à l'échelle des données, et des outils d'estimation pour entraîner des algorithmes.
Lancez des clusters Spark accélérés par GPU sans gérer l'infrastructure sous-jacente. Les environnements d'exécution de ML de Google Cloud sont préconfigurés pour vous permettre de contourner les dépendances complexes des GPU Spark.
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.