horovod.spark
: Verteiltes Deep Learning mit Horovod
Wichtig
Horovod und HorovodRunner sind jetzt veraltet. Bei Releases nach 15.4 LTS ML ist dieses Paket nicht vorinstalliert. Für verteiltes Deep Learning empfiehlt Databricks die Verwendung von TorchDistributor für verteiltes Training mit PyTorch oder der tf.distribute.Strategy
-API für verteiltes Training mit TensorFlow.
Erfahren Sie, wie Sie das horovod.spark
-Paket für das verteilte Training von Machine Learning-Modellen verwenden.
horovod.spark
in Azure Databricks
Azure Databricks unterstützt das horovod.spark
-Paket, das eine Estimator API bietet, die Sie in ML-Pipelines mit Keras und PyTorch verwenden können. Weitere Informationen finden Sie unter Horovod auf Spark, das auch einen Abschnitt zu Horovod auf Databricks enthält.
Hinweis
- Azure Databricks installiert das
horovod
-Paket mit Abhängigkeiten. Wenn Sie diese Abhängigkeiten upgraden oder downgraden, können Kompatibilitätsprobleme auftreten. - Wenn Sie
horovod.spark
mit benutzerdefinierte Callbacks in Keras verwenden, müssen Sie Modelle im TensorFlow SavedModel-Format speichern.- Verwenden Sie bei TensorFlow 2.x das Suffix
.tf
im Dateinamen. - Legen Sie bei TensorFlow 1.x die Option
save_weights_only=True
fest.
- Verwenden Sie bei TensorFlow 2.x das Suffix
Anforderungen
Databricks Runtime ML 7.4 oder höher.
Hinweis
horovod.spark
unterstützt keine Pyarrow-Versionen 11.0 und höher (weitere Informationen im zugehörigen GitHub-Issue). Databricks Runtime 15.0 ML enthält die Pyarrow-Version 14.0.1. Um horovod.spark
mit Databricks Runtime 15.0 ML oder höher zu verwenden, müssen Sie pyarrow manuell installieren und eine Version unter 11.0 angeben.
Beispiel: Verteilte Trainingsfunktion
Hier ist ein grundlegendes Beispiel zum Ausführen einer verteilten Schulungsfunktion mit horovod.spark
:
def train():
import horovod.tensorflow as hvd
hvd.init()
import horovod.spark
horovod.spark.run(train, num_proc=2)
Beispielnotebooks: Horovod Spark-Schätzer mit Keras und PyTorch
Die folgenden Notebooks veranschaulichen, wie die Horovod Spark-Schätzer-API mit Keras und PyTorch verwendet wird.