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, il distributore DeepSpeed e Ray.
Azure Databricks offre anche il training distribuito per i modelli Spark ML con il modulo pyspark.ml.connect
. Vedere Eseguire il training di modelli Spark ML in Databricks Connect con pyspark.ml.connect.
Nota
Databricks non consiglia di eseguire il training distribuito multinodo usando VM 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 NCasT4_v3-series che supporta la rete accelerata.
Distributore DeepSpeed
Il distributore 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 distributore DeepSpeed
TorchDistributor
TorchDistributor è un modulo open source in PySpark che consente agli utenti di eseguire il training distribuito con PyTorch nei loro 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.
Ray
Ray è un framework open source specializzato nell'elaborazione parallela di calcolo per il ridimensionamento dei flussi di lavoro di ML e delle applicazioni di IA. Vedere Cos’è Ray in Azure Databricks?.