首页 > 解决方案 > 通过 Azure + DataBricks + MLFlow 进行令人尴尬的并行超参数搜索

问题描述

概念问题。我的公司正在推动 Azure + DataBricks。我试图了解这可以把我们带到哪里。

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

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

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

标签: databricksazure-databricksmlflow

解决方案


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

我不确定这是否适用于 pytorch,但有一个 hyperopt 库可让您使用 Spark 对参数进行并行搜索 - 它与 mlflow 集成并在 databricks ML 运行时中可用。我一直只在 scikit-learn 中使用它,但它可能值得一试


推荐阅读