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
を設定します。
- TensorFlow 2.x の場合は、ファイル名で
必要条件
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 を使用する方法を示しています。