缩放 Hyperopt 试验

已完成

在 Azure Databricks 中使用 Apache Spark 的优势之一是能够在多个群集节点之间分配处理任务。 当您使用 ML 等 Spark 感知机器学习库时,可以横向扩展机器学习训练,以减少训练过程所需的总时间。 将 Hyperopt 与 MLlib 等分布式训练库一起使用时,工作会自动扩展到集群中的可用 worker 节点。

Hyperopt 支持使用 SparkTrials 类代替常规 Trials 类来扩展分发的库的超参数优化试用。 这种方法使您能够利用 Spark 的横向扩展并行性在多个节点之间分配超参数优化运行,即使使用专为在单台计算机上进行处理而设计的库(如 Scikit-Learn)也是如此。

以下示例代码演示如何使用 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)

小窍门

有关使用 SparkTrials 类的详细信息,请参阅 Azure Databricks 文档中的 SparkTrials 类