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.

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.

Horovod Spark Estimator Keras Notebook

Notebook abrufen

Horovod Spark Estimator PyTorch Notebook

Notebook abrufen