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

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

注記

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