horovod.spark
: Verteiltes Deep Learning mit Horovod
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 ab 11.0 (weitere Informationen finden Sie 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.