Formation distribuée
Lorsque cela est possible, Databricks vous recommande d'entraîner les réseaux de neurones sur une seule machine ; le code distribué pour l'entraînement et l'inférence est plus complexe que le code pour machine unique et plus lent en raison de la surcharge de communication. Cependant, vous devriez envisager l'entraînement distribué et l'inférence si votre modèle ou vos données sont trop volumineux pour tenir en mémoire sur une seule machine. Pour ces charges de travail, Databricks Runtime ML inclut le TorchDistributor, le distributeur DeepSpeed et les packages Ray.
Databricks propose également un entraînement distribué pour les modèles Spark ML avec le module pyspark.ml.connect.
Distributeur DeepSpeed
Le distributeur DeepSpeed est construit sur TorchDistributor et est une solution recommandée pour les clients avec des modèles qui nécessitent une puissance de compute plus élevée, mais qui sont limités par des contraintes de mémoire. DeepSpeed est une bibliothèque open source développée par Microsoft et offre une utilisation optimisée de la mémoire, une surcharge de communication réduite et un parallélisme de pipeline avancé. En savoir plus sur la formation distribuée avec le distributeur DeepSpeed
TorchDistributor
TorchDistributor est un module open source dans PySpark qui aide les utilisateurs à effectuer un entraînement distribué avec PyTorch sur leurs clusters Spark, ce qui vous permet de lancer des jobs d'entraînement PyTorch en tant que jobs Spark. En coulisses, il initialise l'environnement et les canaux de communication entre les Worker et utilise la commande CLI torch.distributed.run pour exécuter l'entraînement distribué sur les nœuds Worker. En savoir plus sur la formation distribuée avec TorchDistributor.
Ray
Ray est un framework open source spécialisé dans le traitement parallèle du compute pour la mise à l'échelle des workflows de ML et des applications d'IA. Voir Qu'est-ce que Ray sur Databricks ?
Spark ML
Utilisez le module pyspark.ml.connect pour effectuer un entraînement distribué afin d'entraîner des modèles Spark ML et d'exécuter l'inférence du modèle. Dans Databricks Runtime 17.0 et versions supérieures, Spark ML est activé par défaut dans les ressources de calcul Standard, ce qui vous permet d'utiliser les capacités de Machine Learning distribué de Spark sans gérer un cluster complet. Voir Entraîner des modèles Spark ML sur Databricks Connect avec pyspark.ml.connect.