horovod.spark: 分散ディープラーニング with Horovod

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

horovod.spark Databricks

Databricks は、Keras と PyTorch を使用して機械学習パイプラインで使用できる推定器 API を提供する horovod.spark パッケージをサポートしています。 詳細については、 Databricks の Horovod に関するセクションを含む Spark の Horovod を参照してください。

  • Databricks は、依存関係を持つ horovod パッケージをインストールします。 これらの依存関係をアップグレードまたはダウングレードすると、互換性の問題が発生する可能性があります。

  • Kerasでカスタムコールバックで horovod.spark を使用する場合は、TensorFlow SavedModel 形式でモデルを保存する必要があります。

    • TensorFlow 2.x では、ファイル名に .tf サフィックスを使用します。

    • TensorFlow 1.x では、オプション save_weights_only=Trueを設定します。

要件

Databricks Runtime 機械学習 7.4 以上。

horovod.spark pyarrow バージョン 11.0 以降はサポートされていません (関連するGitHub の問題を参照)。 Databricks Runtime 15.0 ML には、pyarrow バージョン 14.0.1 が含まれています。 Databricks Runtime 15.0 ML 以降でhorovod.sparkを使用するには、11.0 より前のバージョンを指定して pyarrow を手動でインストールする必要があります。

例: 分散トレーニング関数

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 Estimator API を Keras と PyTorch で使用する方法を示します。

Horovod Spark Estimator Keras ノートブック

ノートブックを新しいタブで開く

Horovod Spark Estimator PyTorch ノートブック

ノートブックを新しいタブで開く