通过 Azure + DataBricks + MLFlow 进行令人尴尬的并行超参数搜索

Embarrassingly parallel hyperparameter search via Azure + DataBricks + MLFlow

概念性问题。我的公司正在推动 Azure + DataBricks。我想了解这可以带我们去哪里。

我正在将我在本地完成的一些工作移植到 Azure + Databricks 平台。我想 运行 使用 Azure + Databricks + MLfLow 进行大量超参数组合的实验。我正在使用 PyTorch 来实现我的模型。

我有一个有 8 个节点的集群。我想以令人尴尬的并行方式开始跨所有节点的参数搜索(每个节点一个 运行,独立 运行ning)。这是否就像创建一个 MLflow 项目然后对每个超参数组合使用 mlflow.projects.run 命令一样简单,而 Databricks + MLflow 将处理其余部分?

这项技术能做到这一点吗?我正在寻找一些可以用来实现这一目标的参考资料。

简短的回答是肯定的,这是可能的,但不会像 运行 单个 mlflow 命令那么简单。您可以使用 spark Python UDF 并行化单节点工作流,一个很好的例子是 notebook

我不确定这是否适用于 pytorch,但是有一个 hyperopt 库可以让你使用 Spark 并行搜索跨参数——它与 mlflow 集成并在 databricks ML 运行时中可用。我一直只在 scikit-learn 中使用它,但它可能是 worth checking out