缩放 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 类。