horovod.spark: Horovod を使用した分散型ディープ ラーニング

horovod.spark パッケージを使用して機械学習モデルの分散トレーニングを実行する方法について説明します。

Azure Databricks での horovod.spark

Azure Databricks では、Keras と PyTorch を使用して ML パイプラインで使用できる、推定 API を提供する horovod.spark パッケージがサポートされています。 詳細については、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 以降。

Note

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 推定器

次のノートブックでは、Keras と PyTorch で Horovod Spark Estimator API を使用する方法を示しています。

Horovod Spark Estimator Keras ノートブック

ノートブックを入手

Horovod Spark Estimator PyTorch ノートブック

ノートブックを入手