Sdílet prostřednictvím


Distribuované trénování

Azure Databricks doporučuje, abyste, pokud možno, neurální sítě trénovali v jednom počítači. Distribuovaný kód pro trénování a odvozování je složitější, než je kód pro jeden počítač, a je pomalejší z důvodu komunikační režie. Distribuované trénování a odvozování byste však měli zvážit, pokud mají vaše data nebo model příliš velkou velikost, než aby se vešla do paměti v jednom počítači. Pro tyto úlohy zahrnuje Databricks Runtime ML balíčky TorchDistributor, Horovod a spark-tensorflow-distributor.

Azure Databricks také nabízí distribuované trénování pro modely Spark ML s modulem pyspark.ml.connect , viz trénování modelů Spark ML v Databricks Connect pomocí pyspark.ml.connect.

Poznámka:

Databricks nedoporučuje spouštět distribuované trénování s více uzly pomocí virtuálních počítačů řady NC kvůli nízkému výkonu sítě mezi uzly. Místo toho použijte jeden uzel s více GPU nebo použijte jinou velikost virtuálního počítače GPU, například NCasT4_v3-series, která podporuje akcelerované síťové služby.

Distributor DeepSpeed

Distributor DeepSpeed je postaven na torchDistributor a je doporučeným řešením pro zákazníky s modely, které vyžadují vyšší výpočetní výkon, ale jsou omezené omezeními paměti. DeepSpeed je opensourcová knihovna vyvinutá Microsoftem a nabízí optimalizované využití paměti, menší komunikační režii a pokročilý paralelismus kanálu. Další informace o distribuovaném trénování s distributorem DeepSpeed

TorchDistributor

TorchDistributor je opensourcový modul v PySparku, který uživatelům pomáhá provádět distribuované trénování pomocí PyTorchu v jejich clusterech Spark, takže umožňuje spouštět trénovací úlohy PyTorch jako úlohy Sparku. Inicializuje prostředí a komunikační kanály mezi pracovními procesy a využívá příkaz torch.distributed.run rozhraní příkazového řádku ke spuštění distribuovaného trénování napříč pracovními uzly. Přečtěte si další informace o distribuovaném trénování pomocí torchDistributoru.

spark-tensorflow-distributor

spark-tensorflow-distributor je opensourcový nativní balíček v TensorFlow pro distribuované trénování s využitím TensorFlow ve sparkových clusterech. Přečtěte si další informace o distribuovaném trénování pomocí TensorFlow 2.

Paprsek

Ray je opensourcová architektura, která se specializuje na paralelní výpočetní zpracování pro škálování pracovních postupů ML a aplikací umělé inteligence. Podívejte se , co je Ray v Azure Databricks?).

Horovod (zastaralé)

Důležité

Horovod a HorovodRunner jsou teď zastaralé a nebudou předinstalované v Databricks Runtime 16.0 ML a vyšší. Pro distribuované hluboké učení doporučuje Databricks používat TorchDistributor pro distribuované trénování pomocí PyTorchu nebo tf.distribute.Strategy rozhraní API pro distribuované trénování pomocí TensorFlow.

Horovod je architektura pro distribuované trénování pro TensorFlow, Keras a PyTorch. Azure Databricks podporuje distribuované trénování hlubokého učení s využitím HorovodRunneru a balíčku horovod.spark. Pro aplikace kanálů Spark ML pomocí Kerasu nebo PyTorchu můžete použít horovod.sparkrozhraní API pro odhadce. Viz Horovod.