Scalare le prove di Hyperopt

Completato

Uno dei vantaggi dell'uso di Apache Spark in Azure Databricks è la possibilità di distribuire le attività di elaborazione tra più nodi del cluster. Quando si usa una libreria di Machine Learning compatibile con Spark come MLlib, il training di Machine Learning può essere ridimensionato per ridurre il tempo complessivo impiegato dal processo di training. Quando si usa Hyperopt con una libreria di training distribuita come MLlib, il lavoro viene ridimensionato automaticamente tra i nodi di lavoro disponibili nel cluster.

Hyperopt supporta il ridimensionamento delle prove di ottimizzazione degli iperparametri per le librerie che non vengono distribuite usando la classe SparkTrials al posto di una normale classe Trials. Questo approccio consente di sfruttare il parallelismo con scalabilità orizzontale di Spark per distribuire le esecuzioni di ottimizzazione degli iperparametri tra più nodi, anche quando si usa una libreria progettata per l'elaborazione in un singolo computer come Scikit-Learn.

L'esempio di codice seguente mostra come usare 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)

Suggerimento

Per altre informazioni sull'uso della classe SparkTrials, vedere La classe SparkTrials nella documentazione di Azure Databricks.