超参数优化

Optuna、Ray Tune 和 Hyperopt 等 Python 库可简化并自动执行超参数优化,从而能有效找到机器学习模型的最佳超参数集。 这些库可以跨多个计算资源进行扩展,以快速找到超参数值,并且几乎不需要手动编排和配置要求。

Optuna

Optuna 是一个轻型框架,可用于轻松定义用于超参数优化和模型选择的动态搜索空间。 Optuna 包括一些最新的优化和机器学习算法。

Optuna 可以轻松地与 Joblib 并行化以缩放工作负荷,并与 MLflow 集成,以跟踪试验中的超参数和指标。

若要开始使用 Optuna,请参阅使用 Optuna 进行超参数优化

Ray Tune

Databricks Runtime ML 包括 Ray,后者是用于并行计算处理的开源框架。 Ray Tune 是 Ray 附带的超参数优化库,它用 Ray 作为分布式计算的后端。

有关如何在 Databricks 上运行 Ray 的详细信息,请参阅什么是 Azure Databricks 上的 Ray?。 有关 Ray Tune 的示例,请参阅 Ray Tune 文档

Hyperopt

注意

不再维护 Hyperopt 的开源版本。

在 16.4 LTS ML 之后,用于机器学习的 Databricks Runtime 中不包含 Hyperopt。 Azure Databricks 建议使用 Optuna 来进行单节点优化,或者使用 RayTune 来获得与已弃用的 Hyperopt 分布式超参数优化功能类似的体验。 详细了解如何在 Azure Databricks 上使用 RayTune

Hyperopt 是 Python 库,用于分布式超参数优化和模型选择。 Hyperopt 既适用于分布式 ML 算法(例如 Apache Spark MLlib 和 Horovod),也适用于单计算机 ML 模型(例如 scikit-learn 和 TensorFlow)。

若要开始使用 Hyperopt,请参阅将分布式训练算法与 Hyperopt 配合使用

MLlib 自动化 MLflow 跟踪

注意

MLlib 自动化 MLflow 跟踪在运行 Databricks Runtime 10.4 LTS ML 及更高版本的群集上已被弃用,并且默认情况下是禁用的。

改为使用 MLflow PySpark ML 自动日志记录,通过调用 mlflow.pyspark.ml.autolog() 启用,这在 Databricks 自动日志记录中默认启用。

使用 MLlib 自动 MLflow 跟踪时,当你运行使用 CrossValidator 或 TrainValidationSplit 的优化代码时,超参数和评估指标会自动记录在 MLflow 中。