Verteiltes Training
Wenn möglich, empfiehlt Azure Databricks, neuronale Netzwerke auf einem einzelnen Computer zu trainieren. Verteilter Code für Trainingszwecke und Rückschlüsse ist komplexer als Code für einzelne Computer und aufgrund höherer Kommunikationsauslastung verlangsamt. Ziehen Sie verteiltes Training und Rückschlüsse in Erwägung, wenn Ihr Modell oder Ihre Daten zu groß für den Arbeitsspeicher auf einem einzelnen Computer sind. Für diese Workloads beinhaltet Databricks Runtime ML die Pakete „TorchDistributor”, „DeepSpeed-Verteiler” und „Ray”.
Azure Databricks bietet außerdem verteiltes Training für Spark ML-Modelle mit dem Modul pyspark.ml.connect
. Weitere Informationen dazu finden Sie unter Trainieren von Spark ML-Modellen in Databricks Connect mit pyspark.ml.connect.
Hinweis
Databricks empfiehlt aufgrund einer geringen Netzwerkleistung zwischen Knoten kein verteiltes Training mit mehreren Knoten mithilfe von VMs der NC-Serie. Stattdessen sollten Sie einen Multi-GPU-Knoten oder eine andere GPU-VM-Größe verwenden, z. B. die NCasT4_v3-Serie, die den beschleunigten Netzwerkbetrieb unterstützt.
DeepSpeed-Verteiler
Der DeepSpeed-Verteiler basiert auf TorchDistributor und ist eine empfohlene Lösung für Kunden mit Modellen, die eine höhere Computeleistung erfordern, aber durch Speichereinschränkungen begrenzt sind. DeepSpeed ist eine Open-Source-Bibliothek, die von Microsoft entwickelt wurde und eine optimierte Speicherauslastung, einen geringeren Kommunikationsaufwand und erweiterte Pipelineparallelität bietet. Erfahren Sie mehr über verteiltes Training mit dem DeepSpeed-Verteiler.
TorchDistributor
TorchDistributor ist ein Open-Source-Modul in PySpark, mit dem Benutzer verteilte Schulungen mit PyTorch auf ihren Spark-Clustern durchführen können, sodass Sie PyTorch-Trainingsaufträge als Spark-Aufträge starten können. Im Hintergrund initialisiert er die Umgebung und die Kommunikationskanäle zwischen den Workern und verwendet den CLI-Befehl torch.distributed.run
, um verteiltes Training auf den Workerknoten auszuführen. Erfahren Sie mehr über verteiltes Training mit TorchDistributor.
Ray
Ray ist ein Open-Source-Framework, das auf parallele Computeverarbeitung für die Skalierung von ML-Workflows und AI-Anwendungen spezialisiert ist. Weitere Informationen finden Sie unter Was ist Ray in Azure Databricks?.