Dela via


Distribuerad träning

Azure Databricks rekommenderar att du tränar neurala nätverk på en enskild dator när det är möjligt. Distribuerad kod för träning och slutsatsdragning är mer komplicerat än endatorskod och långsammare på grund av tillhörande kommunikationsinformation. Men du bör överväga distribuerad träning och slutsatsdragning om din modell eller dina data är för stora för att få plats i minnet på en enda dator. För dessa arbetsbelastningar innehåller Databricks Runtime ML paketen TorchDistributor, Horovod och spark-tensorflow-distributor.

Azure Databricks erbjuder även distribuerad träning för Spark ML-modeller med modulen pyspark.ml.connect , se Träna Spark ML-modeller på Databricks Connect med pyspark.ml.connect.

Kommentar

Databricks rekommenderar inte att du kör distribuerad träning med flera noder med hjälp av virtuella datorer i NC-serien på grund av låga nätverksprestanda mellan noder. Använd i stället en nod med flera GPU:er eller använd en annan GPU VM-storlek, till exempel NCasT4_v3-serien, som stöder accelererat nätverk.

DeepSpeed-distributör

DeepSpeed-distributören bygger på TorchDistributor och är en rekommenderad lösning för kunder med modeller som kräver högre beräkningskraft, men som begränsas av minnesbegränsningar. DeepSpeed är ett bibliotek med öppen källkod som utvecklats av Microsoft och erbjuder optimerad minnesanvändning, minskad kommunikationsbelastning och avancerad pipelineparallellitet. Läs mer om distribuerad utbildning med DeepSpeed-distributör

TorchDistributor

TorchDistributor är en modul med öppen källkod i PySpark som hjälper användare att utföra distribuerad utbildning med PyTorch i sina Spark-kluster, så att du kan starta PyTorch-träningsjobb som Spark-jobb. Under huven initierar den miljön och kommunikationskanalerna mellan arbetarna och använder CLI-kommandot torch.distributed.run för att köra distribuerad utbildning över arbetsnoderna. Läs mer om distribuerad träning med TorchDistributor.

spark-tensorflow-distributor

spark-tensorflow-distributor är ett internt paket med öppen källkod i TensorFlow för distribuerad träning med TensorFlow i Spark-kluster. Läs mer om distribuerad träning med TensorFlow 2.

Stråle

Ray är ett ramverk med öppen källkod som är specialiserat på parallell beräkningsbearbetning för skalning av ML-arbetsflöden och AI-program. Se Vad är Ray på Azure Databricks?).

Horovod (inaktuell)

Viktigt!

Horovod och HorovodRunner är nu inaktuella och kommer inte att vara förinstallerade i Databricks Runtime 16.0 ML och senare. För distribuerad djupinlärning rekommenderar Databricks att du använder TorchDistributor för distribuerad träning med PyTorch eller API:et tf.distribute.Strategy för distribuerad träning med TensorFlow.

Horovod är ett ramverk för distribuerad träning för TensorFlow, Keras och PyTorch. Azure Databricks stöder distribuerad djupinlärningsträning med HorovodRunner och horovod.spark-paketet. För program med Spark ML-pipeline med Keras eller PyTorch kan du använda horovod.spark uppskattar-API:t. Se Horovod.