horovod.spark
: 分散型ディープラーニング with Horovod
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
に設定します。
- TensorFlow 2.x では、ファイル名に
必要条件
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
を使用して分散トレーニング関数を実行する基本的な例です。
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 と共に使用する方法を示しています。