horovod.spark:使用 Horovod 分散式深度學習

瞭解如何使用 horovod.spark 套件來執行機器學習模型的分散式定型。

horovod.spark 在 Azure Databricks 上

Azure Databricks 支援套件 horovod.spark ,其提供可在 ML 管線中搭配 Keras 和 PyTorch 使用的估算器 API。 如需詳細資訊,請參閱 Spark 上的 Horovod,其中包含 Databricks 上的 Horovod 一節

注意

  • Azure Databricks 會 horovod 安裝具有相依性的套件。 如果您升級或降級這些相依性,可能會有相容性問題。
  • 在 Keras 中搭配自定義回呼使用 horovod.spark 時,您必須以 TensorFlow SavedModel 格式儲存模型。
    • 使用 TensorFlow 2.x,請使用 .tf 檔名中的後綴。
    • 使用 TensorFlow 1.x,設定 選項 save_weights_only=True

需求

Databricks Runtime ML 7.4 或更新版本。

注意

horovod.spark 不支援 pyarrow 11.0 版和更新版本(請參閱相關的 GitHub 問題)。 Databricks Runtime 15.0 ML 包含 pyarrow 14.0.1 版。 若要搭配 Databricks Runtime 15.0 ML 或更新版本使用 horovod.spark ,您必須手動安裝 pyarrow,並指定低於 11.0 的版本。

範例:分散式定型函式

以下是使用 horovod.spark執行分散式定型函式的基本範例:

def train():
  import horovod.tensorflow as hvd
  hvd.init()

import horovod.spark
horovod.spark.run(train, num_proc=2)

範例筆記本:使用 Keras 和 PyTorch 的 Horovod Spark 估算器

下列筆記本示範如何使用 Horovod Spark 估算器 API 搭配 Keras 和 PyTorch。

Horovod Spark 估算器 Keras 筆記本

取得筆記本

Horovod Spark 估算器 PyTorch 筆記本

取得筆記本