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