horovod.spark:使用 Horovod 进行分布式深度学习

了解如何使用 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

要求

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。

Horovod Spark 估算器 Keras 笔记本

获取笔记本

Horovod Spark 估算器 PyTorch 笔记本

获取笔记本