Condividi tramite


Training distribuito

Quando possibile, Azure Databricks consiglia di eseguire il training delle reti neurali in un singolo computer. Il codice distribuito per il training e l'inferenza è più complesso del codice per un singolo computer ed è anche più lento a causa del sovraccarico delle comunicazioni. Può tuttavia essere opportuno prendere in considerazione il training e l'inferenza distribuiti se il modello o i dati sono troppo grandi per essere gestiti dalla memoria di un solo computer. Per questi carichi di lavoro, Databricks Runtime ML include i pacchetti TorchDistributor, Horovod e spark-tensorflow-distributor.

Azure Databricks offre anche il training distribuito per i modelli spark ML con il modulo. Vedere Eseguire il pyspark.ml.connect training di modelli spark ML in Databricks Connect con pyspark.ml.connect.

Nota

Databricks non consiglia di eseguire il training distribuito multinodo usando macchine virtuali serie NC a causa di prestazioni di rete internodo basse. Usare invece un nodo multi-GPU o usare una dimensione di VM GPU diversa, ad esempio la serie di NCasT4_v3, che supporta la rete accelerata.

Distributore DeepSpeed

Il server di distribuzione DeepSpeed è basato su TorchDistributor ed è una soluzione consigliata per i clienti con modelli che richiedono una potenza di calcolo superiore, ma sono limitati dai vincoli di memoria. DeepSpeed è una libreria open source sviluppata da Microsoft e offre un utilizzo ottimizzato della memoria, un sovraccarico di comunicazione ridotto e un parallelismo avanzato della pipeline. Altre informazioni sul training distribuito con il server di distribuzione DeepSpeed

TorchDistributor

TorchDistributor è un modulo open source in PySpark che consente agli utenti di eseguire il training distribuito con PyTorch nei cluster Spark, in modo da consentire l'avvio di processi di training pyTorch come processi Spark. Inizializza l'ambiente e i canali di comunicazione tra i ruoli di lavoro e usa il comando dell'interfaccia della riga di comando torch.distributed.run per eseguire il training distribuito tra i nodi di lavoro. Altre informazioni sul training distribuito con TorchDistributor.

spark-tensorflow-distributor

spark-tensorflow-distributor è un pacchetto nativo open source disponibile in TensorFlow per il training distribuito con TensorFlow nei cluster Spark. Altre informazioni sul training distribuito con TensorFlow 2.

Raggio

Ray è un framework open source specializzato nell'elaborazione parallela di calcolo per il ridimensionamento dei flussi di lavoro di Machine Learning e delle applicazioni di intelligenza artificiale. Vedere Che cos'è Ray in Azure Databricks?).

Horovod (deprecato)

Importante

Horovod e HorovodRunner sono ora deprecati e non verranno preinstallati in Databricks Runtime 16.0 ML e versioni successive. Per l'apprendimento avanzato distribuito, Databricks consiglia di usare TorchDistributor per il training distribuito con PyTorch o l'API per il tf.distribute.Strategy training distribuito con TensorFlow.

Horovod è un framework di training distribuito per TensorFlow, Keras e PyTorch. Azure Databricks supporta il training di Deep Learning distribuito tramite HorovodRunner e il pacchetto horovod.spark. Per le applicazioni della pipeline di ML Spark che usano Keras o PyTorch, è possibile usare l'API Estimator del pacchetto horovod.spark. Vedi Horovod.