Mettre à l’échelle les essais Hyperopt

Effectué

L’un des avantages de l’utilisation d’Apache Spark dans Azure Databricks est la possibilité de distribuer des tâches de traitement sur plusieurs nœuds de cluster. Lorsque vous utilisez une bibliothèque de Machine Learning prenant en charge Spark comme MLlib, l’apprentissage Machine Learning peut être mis à l’échelle pour réduire le temps global du processus d’entraînement. Lorsque vous utilisez Hyperopt avec une bibliothèque d’entraînement distribuée comme MLlib, le travail est automatiquement mis à l’échelle sur les nœuds Worker disponibles dans le cluster.

Hyperopt prend en charge le scale-out des essais de réglage des hyperparamètres pour les bibliothèques qui ne sont pas distribuées à l’aide de la classe SparkTrials à la place d’une classe Trials standard. Cette approche vous permet de tirer parti du parallélisme de scale-out de Spark pour distribuer les exécutions de réglage des hyperparamètres sur plusieurs nœuds, même lorsque vous utilisez une bibliothèque conçue pour le traitement sur un seul ordinateur, comme Scikit-Learn.

L’exemple de code suivant montre comment utiliser la classe SparkTrials.

from hyperopt import SparkTrials

  spark_trials = SparkTrials()
  with mlflow.start_run():
    argmin = fmin(
      fn=objective,
      space=search_space,
      algo=algo,
      max_evals=100,
      trials=spark_trials)
  
  print("Best param values: ", argmin)

Conseil

Pour plus d’informations sur l’utilisation de la classe SparkTrials, consultez la classe SparkTrials dans la documentation Azure Databricks.