通过 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
概念性问题。我的公司正在推动 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