Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Former des modèles Spark ML sur Databricks Connect avec
Cet article fournit un exemple qui montre comment utiliser le pyspark.ml.connect module pour effectuer une formation distribuée pour entraîner des modèles Spark ML et exécuter l’inférence de modèle.
Qu'est-ce que pyspark.ml.connect ?
Spark 3.5 introduit pyspark.ml.connect qui est conçu pour prendre en charge le mode de connexion Spark et Databricks Connect. En savoir plus sur Databricks Connect.
Le module pyspark.ml.connect se compose d’algorithmes et d’utilitaires de formation courants, notamment la classification, les transformateurs de fonctionnalités, les pipelines ML et la validation croisée. Ce module fournit des interfaces semblables au module pyspark.ml hérité, mais le module pyspark.ml.connect contient actuellement uniquement un sous-ensemble des algorithmes danspyspark.ml. Les algorithmes pris en charge sont répertoriés ci-dessous :
- Algorithme de classification :
pyspark.ml.connect.classification.LogisticRegression - Transformateurs de fonctionnalités :
pyspark.ml.connect.feature.MaxAbsScaleretpyspark.ml.connect.feature.StandardScaler - Évaluateur :
pyspark.ml.connect.RegressionEvaluator,pyspark.ml.connect.BinaryClassificationEvaluatoretMulticlassClassificationEvaluator - Pipeline :
pyspark.ml.connect.pipeline.Pipeline - Réglage du modèle :
pyspark.ml.connect.tuning.CrossValidator
Spécifications
Sur Databricks Runtime 17.0 et versions ultérieures, Spark ML sur Spark Connect est activé par défaut sur les ressources de calcul avec le mode d’accès Standard avec certaines limitations. Consultez limitations pour Databricks Runtime 17.0 sur le calcul standard. Utilisez Spark ML sur le calcul Standard si vous avez besoin d’une distribution au niveau Spark pour les données qui ne tiennent pas en mémoire sur un seul nœud ou si vous devez effectuer le réglage des hyperparamètres distribués.
Pour Databricks Runtime 14.0 ML et versions ultérieures (notamment Databricks Runtime 17.0 sur les ressources de calcul à l’aide du mode d’accès dédié ), il existe des exigences supplémentaires pour utiliser Spark ML :
- Configurez Databricks Connect sur vos clusters. Consultez la configuration de calcul pour Databricks Connect.
- Databricks Runtime 14.0 ML ou version ultérieure installée.
- Ressource de calcul avec mode d’accès dédié .
Exemple de bloc-notes
Le notebook suivant montre comment utiliser le ML distribué sur Databricks Connect :
ML distribué sur Databricks Connect
Pour obtenir des informations de référence sur les API dans pyspark.ml.connect, Databricks recommande la référence de l’API Apache Spark
Limitations pour Databricks Runtime 17.0 sur le calcul standard
- Python uniquement : Spark ML sur le calcul Standard prend uniquement en charge Python. R et Scala ne sont pas pris en charge.
-
Prise en charge de la bibliothèque : seul le
pyspark.mlpackage est pris en charge. Lepyspark.mllibpackage n’est pas pris en charge. - Contraintes de taille de modèle : la taille maximale du modèle est de 1 Go, de sorte que l’entraînement de modèles extrêmement volumineux peut ne pas être réalisable. L'entraînement du modèle d'arborescence s'arrête de manière anticipée si la taille du modèle est près de dépasser 1 Go.
- Contraintes de mémoire : bien que les données puissent être distribuées sur le cluster, le modèle entraîné lui-même est mis en cache sur le nœud du pilote, qui est partagé entre d’autres utilisateurs. La taille maximale du cache de modèle par session est de 10 Go et la taille maximale du cache de modèle en mémoire par session est de 25% de la mémoire JVM du pilote Spark.
- Délais d’expiration de session : le modèle mis en cache sur le calcul Standard expire automatiquement après 15 minutes d’inactivité. Pour éviter de perdre votre modèle, enregistrez-le sur le disque dans un délai de 15 minutes après la fin de l’entraînement ou conservez la session active avec une utilisation fréquente.
- Contention des ressources : dans les environnements de calcul Standard, les ressources sont partagées entre les utilisateurs et les travaux au sein de l’espace de travail. L’exécution simultanée de plusieurs travaux volumineux peut entraîner des performances ou une concurrence plus lentes pour les emplacements d’exécuteur.
- Aucune prise en charge GPU : les environnements de calcul standard ne prennent pas en charge l’accélération matérielle par GPU. Pour les charges de travail Machine Learning accélérées par GPU, les clusters GPU dédiés sont recommandés.
-
Modèles SparkML limités : les modèles SparkML suivants ne sont pas pris en charge :
DistributedLDAModelFPGrowthModel