メインコンテンツまでスキップ

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

important

Horovod と HorovodRunner は非推奨になりました。 15.4 LTS ML より後のリリースには、このパッケージはプリインストールされません。 分散ディープラーニングの場合、Databricks では、PyTorch による分散トレーニングに TorchDistributor を使用するか、TensorFlow による分散トレーニングに tf.distribute.Strategy API を使用することをお勧めします。

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

Databricks でhorovod.spark

Databricks は、Keras と PyTorch を使用した ML パイプラインで使用できる推定 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 ML 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を使用して分散トレーニング関数を実行する基本的な例です。

Python
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 ノートブック

Open notebook in new tab

Horovod Spark Estimator PyTorch ノートブック

Open notebook in new tab