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
包,该包提供了一个可在 Keras 和 PyTorch 的 ML 管道中使用的估算器 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。