缩放 Hyperopt 试验

已完成

在 Azure Databricks 中使用 Apache Spark 的优点之一是能够在多个群集节点上分发处理任务。 使用 MLlib 等 Spark 感知型机器学习库时,可以横向扩展机器学习训练,以减少训练过程花费的总时间。 将 Hyperopt 与 MLlib 等分布式训练库配合使用时,工作会自动在群集中可用的工作器节点上缩放。

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 类