Escala de pruebas de Hyperopt

Completado

Una de las ventajas de usar Apache Spark en Azure Databricks es la capacidad de distribuir las tareas de procesamiento entre varios nodos de clúster. Cuando se usa una biblioteca de aprendizaje automático compatible con Spark como MLlib, el entrenamiento de aprendizaje automático se puede escalar horizontalmente para reducir el tiempo total que tarda el proceso de entrenamiento. Cuando se usa Hyperopt con una biblioteca de entrenamiento distribuida como MLlib, el trabajo se escala automáticamente entre los nodos de trabajo disponibles en el clúster.

Hyperopt admite el escalado horizontal de las pruebas de ajuste de hiperparámetros para bibliotecas que no se distribuyen mediante la clase SparkTrials en lugar de una clase Trials normal. Este enfoque le permite aprovechar el paralelismo de escalabilidad horizontal de Spark para distribuir las ejecuciones de ajuste de hiperparámetros en varios nodos, incluso cuando se usa una biblioteca diseñada para su procesamiento en un equipo único, como Scikit-Learn.

En el código de ejemplo siguiente, se muestra cómo usar la clase 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)

Sugerencia

Para más información sobre el uso de la clase SparkTrials, consulte La clase SparkTrials en la documentación de Azure Databricks.