Entraînement distribué
Dans la mesure du possible, Azure Databricks conseille d’entraîner les réseaux neuronaux sur une seule machine ; le code distribué pour l’entraînement et l’inférence est plus complexe que le code d’une seule machine, mais aussi plus lent en raison du traitement des communications. Toutefois, optez pour 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 comprend les packages TorchDistributor, DeepSpeed et Ray.
Azure Databricks offre également une formation distribuée pour les modèles Spark ML avec le module pyspark.ml.connect
, consultez Entraîner des modèles Spark ML sur Databricks Connect avec pyspark.ml.connect.
Remarque
Databricks ne recommande pas l’exécution d’un entraînement distribué multinœud avec des machines virtuelles de la série NC en raison des faibles performances réseau inter-nœuds. Utilisez plutôt un nœud multi-GPU ou une autre taille de machine virtuelle GPU telle que la série NCasT4_v3, qui prend en charge l’accélération réseau.
Serveur de distribution DeepSpeed
Le serveur de distribution DeepSpeed repose sur TorchDistributor et est une solution recommandée pour les clients dont les modèles nécessitent une puissance de calcul 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 qui 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 l’entraînement distribué avec le serveur de distribution DeepSpeed
TorchDistributor
TorchDistributor est un module open source dans PySpark qui aide les utilisateurs à effectuer une formation distribuée avec PyTorch sur leurs clusters Spark. Il vous permet donc de lancer des travaux d’entraînement PyTorch en tant que travaux Spark. Sous le capot, il initialise l’environnement et les canaux de communication entre les workers et utilise la commande torch.distributed.run
CLI pour exécuter une formation distribuée sur les nœuds Worker. En savoir plus sur l’entraînement distribué avec TorchDistributor 2.
Ray
Ray est une infrastructure open source spécialisée dans le traitement de calcul parallèle pour la mise à l’échelle des workflows Machine Learning et des applications IA. Consultez Qu’est-ce que Ray sur Azure Databricks ?.