超参数优化

用于机器学习的 Databricks Runtime 整合了 Hyperopt,这是一个开源工具,可自动完成模型选择和超参数优化过程。

使用 Ray 进行超参数优化

Databricks Runtime ML 包括 Ray,这是一个开放源代码框架,专门用于缩放 ML 工作流和 AI 应用程序的并行计算处理。 请参阅在 Azure Databricks 上使用 Ray

使用 Hyperopt 进行超参数优化

Databricks Runtime ML 包含 Hyperopt,它是一个 Python 库,便于分布式超参数优化和模型选择。 借助 Hyperopt,你可扫描一组 Python 模型,同时在你定义的各空间中使用不同的算法和超参数。 Hyperopt 既适用于分布式 ML 算法(例如 Apache Spark MLlib 和 Horovod),也适用于单计算机 ML 模型(例如 scikit-learn 和 TensorFlow)。

使用 Hyperopt 时的基本步骤如下所示:

  1. 定义一个目标函数来进行最小化。 通常,这是训练损失或验证损失。
  2. 定义超参数搜索空间。 Hyperopt 提供一个条件搜索空间,你可用它来比较同一运行中的不同 ML 算法。
  3. 指定搜索算法。 Hyperopt 使用随机优化算法,它与确定网格搜索相比可更高效地搜索超参数空间。
  4. 运行 Hyperopt 函数 fmin()fmin() 获取你在前述步骤中定义的项目,并确定一组用于将目标函数最小化的超参数。

若要快速开始将 Hyperopt 与 scikit-learn 算法一起使用,请参阅:

若要更详细地了解 Hyperopt 的工作原理并获取其他示例,请参阅:

自动化 MLflow 跟踪

注意

MLlib 自动化 MLflow 跟踪在运行 Databricks Runtime 10.1 ML 及更高版本的群集上已弃用,且默认在运行 Databricks Runtime 10.2 ML 及更高版本的群集上禁用。 通过调用 mlflow.pyspark.ml.autolog() 来改用 MLflow PySpark ML 自动日志记录,这默认通过 Databricks 自动日志记录启用。

若要在 Databricks Runtime 10.2 ML 及更高版本中使用旧版 MLlib 自动化 MLflow 跟踪,请通过设置 Spark 配置spark.databricks.mlflow.trackMLlib.enabled truespark.databricks.mlflow.autologging.enabled false 启用它。