horovod.spark
:使用 Horovod 的分散式深度學習
重要
Horovod 和 HorovodRunner 現在已被取代。 15.4 LTS ML 之後的版本將不會預安裝此套件。 針對分散式深度學習,Databricks 建議搭配使用 TorchDistributor 與 PyTorch 進行分散式訓練,或搭配使用 tf.distribute.Strategy
API 與 TensorFlow 進行分散式訓練。
了解如何使用 horovod.spark
套件來執行機器學習模型的分散式訓練。
Azure Databricks 上的 horovod.spark
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
。
- 使用 TensorFlow 2.x 時,請在檔案名稱中使用
需求
Databricks Runtime ML 7.4 或更高版本。
注意
horovod.spark
不支援 pyarrow 11.0 版和更高版本 (請參閱相關的 GitHub 問題)。 Databricks Runtime 15.0 ML 包含 pyarrow 14.0.1 版。 若要搭配使用 horovod.spark
與 Databricks Runtime 15.0 ML 或更高版本,必須手動安裝 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。