horovod.spark : Deep Learning distribué avec Horovod

Découvrez comment utiliser le package horovod.spark pour effectuer l’apprentissage distribué de modèles d’apprentissage automatique.

horovod.spark sur Azure Databricks

Azure Databricks prend en charge le package horovod.spark, qui fournit une API estimateur que vous pouvez utiliser dans les pipelines ML avec Keras et PyTorch. Pour plus d’informations, consultez Horovod sur Spark, qui comprend une section sur Horovod sur Databricks.

Notes

  • Azure Databricks installe le package horovod avec des dépendances. Si vous mettez à niveau ou rétrogradez ces dépendances, il peut y avoir des problèmes de compatibilité.
  • Lors de l’utilisation de horovod.spark avec des rappels personnalisés dans Keras, vous devez enregistrer les modèles au format TensorFlow SavedModel.
    • Avec TensorFlow 2.x, utilisez le suffixe .tf dans le nom de fichier.
    • Avec TensorFlow 1.x, définissez l’option save_weights_only=True.

Spécifications

Databricks Runtime ML 7.4 ou version supérieure.

Remarque

horovod.spark ne prend pas en charge les versions pyarrow 11.0 et ultérieures (consultez le problème GitHub approprié). Databricks Runtime 15.0 ML inclut la version 14.0.1 de pyarrow. Pour utiliser horovod.spark avec Databricks Runtime 15.0 ML ou ultérieur, vous devez installer manuellement pyarrow, en spécifiant une version inférieure à 11.0.

Exemple : Fonction de formation distribuée

Voici un exemple de base pour exécuter une fonction d’entraînement distribuée à l’aide de horovod.spark :

def train():
  import horovod.tensorflow as hvd
  hvd.init()

import horovod.spark
horovod.spark.run(train, num_proc=2)

Exemples de notebooks : Estimateurs Horovod Spark utilisant Keras et PyTorch

Les notebooks suivants démontrent comment utiliser l’API Horovod Spark Estimator avec Keras et PyTorch.

Horovod Spark Estimator Keras notebook

Obtenir le notebook

Horovod Spark Estimator PyTorch notebook

Obtenir le notebook