使用 MLflow 试验组织训练运行

试验是模型训练运行的组织单位。 有两种类型的试验:工作区和笔记本。

  • 可通过 Databricks 机器学习 UI 或 MLflow API 创建工作区试验。 工作区试验不与任何笔记本关联,任何笔记本都可以使用试验 ID 或试验名称将运行记录到这些试验中。
  • 笔记本试验与特定笔记本相关联。 如果在使用 mlflow.start_run() 启动运行时没有活动的试验,Azure Databricks 会自动创建笔记本试验。

若要查看你有权访问的工作区中的所有试验,请在边栏中选择“机器学习”>“试验”。

“试验”页

创建工作区试验

此部分介绍如何使用 Azure Databricks UI 创建工作区试验。 可以直接从工作区从“试验”页创建工作区试验。

还可以将 MLflow APIDatabricks Terraform 提供程序databricks_mlflow_experiment 一起使用。

有关将运行记录到工作区试验的说明,请参阅记录示例笔记本

  1. 在边栏中单击 工作区图标“工作区”。

  2. 导航到要在其中创建试验的文件夹。

  3. 右键单击文件夹,然后选择“创建”>“MLflow 试验”。

  4. 在“创建 MLflow 试验”对话框中,输入试验的名称,还可以选择输入项目位置。 如果未指定项目位置,则项目将存储在 MLflow 管理的项目存储中:dbfs:/databricks/mlflow-tracking/<experiment-id>

    Azure Databricks 支持 Unity Catalog 卷、Azure Blob 存储和 Azure Data Lake Storage 项目位置。

    在 MLflow 2.15.0 及更高版本中,可以将项目存储在 Unity Catalog 卷中。 创建 MLflow 试验时,请将窗体 dbfs:/Volumes/catalog_name/schema_name/volume_name/user/specified/path 的卷路径指定为 MLflow 试验项目位置。

    若要将项目存储在 Azure Blob 存储中,请指定 wasbs://<container>@<storage-account>.blob.core.chinacloudapi.cn/<path> 格式的 URI。 存储在 Azure Blob 存储中的项目不会显示在 MLflow UI 中;必须使用 Blob 存储客户端下载它们。

    注意

    如果将一个项目存储在 DBFS 以外的位置,则该项目不会显示在 MLflow UI 中。 存储在 DBFS 以外位置的模型无法在模型注册表中进行注册。

  5. 单击“创建”。 将显示一个空试验。

还可以从“试验”页创建新的工作区试验。 若要创建新试验,请使用“创建试验”下拉菜单。 在下拉菜单中,可以选择 AutoML 试验或空白(空)试验。

  • AutoML 试验。 此时会显示“配置 AutoML 试验”页。 有关使用 AutoML 的信息,请参阅使用 Azure Databricks AutoML UI 训练 ML 模型

  • 空白试验。 此时会显示“创建 MLflow 试验”对话框。 在对话框中输入名称和可选项目位置,以创建新的工作区试验。 默认项目位置为 dbfs:/databricks/mlflow-tracking/<experiment-id>

    若要将运行记录到此试验,请结合试验路径调用 mlflow.set_experiment()。 试验路径显示在“试验”页的顶部。 有关详细信息和示例笔记本,请参阅记录示例笔记本

创建笔记本试验

在笔记本中使用 mlflow.start_run() 命令时,运行会将指标和参数记录到活动试验中。 如果没有活动的试验,Azure Databricks 会创建笔记本试验。 笔记本试验的名称和 ID 与相应笔记本的名称和 ID 相同。 笔记本 ID 是笔记本 URL 和 ID 末尾的数字标识符。

或者,你可以在 mlflow.set_experiment() 中将 Azure Databricks 工作区路径传递给现有的笔记本来为它创建笔记本试验。

有关将运行记录到笔记本试验的说明,请参阅记录示例笔记本

注意

如果使用 API(例如,Python 中的 MlflowClient.tracking.delete_experiment())删除笔记本试验,则笔记本本身会被移到回收站文件夹中。

查看试验

你有权访问的每个试验将显示在“试验”页上。 可以在此页中查看任何试验。 单击试验名称,以显示“试验”页。

访问试验页的其他方法:

  • 可以从工作区菜单访问工作区试验的试验页。
  • 可以从笔记本访问笔记本试验的试验页。

若要搜索试验,请在“筛选试验”字段中键入文本,然后按 Enter 或单击放大镜图标。 试验列表将会更改,仅显示那些在“名称”、“创建者”、“位置”或“说明”列中包含搜索文本的试验。

单击表中任意试验的名称以显示其试验页:

查看试验

试验页列出与试验关联的所有运行。 单击表中试验的“运行名称”,可打开与试验关联的任何运行的运行页。 使用“源”列,可访问创建运行的笔记本版本。 还可按指标或参数设置搜索和筛选运行。

查看工作区试验

  1. 在边栏中单击 工作区图标“工作区”。
  2. 转到包含该试验的文件夹。
  3. 单击试验名称。

查看笔记本试验

在笔记本的右边栏中,单击“试验”图标 “试验”图标

此时会出现“试验运行”边栏,其中显示与笔记本试验有关的每个运行的摘要,包括运行参数和指标。 边栏顶部的信息是笔记本最近一次记录运行的试验(笔记本试验或工作区试验)的名称。

查看运行参数和指标

从边栏中,可导航到“试验”页面,也可直接导航到运行。

  • 若要查看试验,请单击最右边“试验运行”旁的 外部链接
  • 若要显示运行,请单击运行的名称。

管理试验

可以在此试验页、此试验页或工作区菜单中重命名、删除或管理所拥有的试验的权限。

注意

不能直接重命名、删除或管理由笔记本在 Databricks Git 文件夹中创建的 MLflow 试验的权限。 必须在 Git 文件夹级别执行这些操作。

从实验页重命名实验

重要

此功能目前以公共预览版提供。

若要从此试验页或此试验页重命名试验,请单击 三按钮图标,然后选择“重命名”。

从工作区菜单重命名试验

  1. 在边栏中单击 工作区图标“工作区”。
  2. 转到包含该试验的文件夹。
  3. 右键单击试验名称,然后选择“重命名”。

复制试验名称

若要复制试验名称,请在试验页顶部单击 “复制”图标。 可在 MLflow 命令 set_experiment 中使用此名称来设置活动 MLflow 试验。

试验名称图标

还可从笔记本中的试验边栏复制试验名称。

删除笔记本试验

笔记本试验是笔记本的一部分,不能单独删除。 如果删除笔记本,则也会删除相关的笔记本试验。 使用 UI 删除笔记本试验时也会删除笔记本。

若要使用 API 删除笔记本试验,请使用工作区 API,以确保从工作区中删除笔记本和试验。

从工作区菜单中删除工作区试验

  1. 在边栏中单击 工作区图标“工作区”。
  2. 转到包含该试验的文件夹。
  3. 右键单击试验名称,然后选择“移动到回收站”。

从试验页删除工作区或笔记本试验

重要

此功能目前以公共预览版提供。

若要从此试验页或此试验页删除试验,请单击 三按钮图标,然后选择“删除”。

删除笔记本试验时也会删除笔记本。

更改试验权限

若要从试验页更改试验权限,请单击“共享”。

“试验页面权限”按钮

可以从试验页更改你拥有的试验的权限。 在“操作”列单击 三按钮图标,然后选择“权限”。

有关试验权限级别的信息,请参阅 MLflow 试验 ACL

在工作区之间复制试验

若要在工作区之间迁移 MLflow 试验,可以使用社区驱动的开放源代码项目 MLflow Export-Import

借助这些工具,你可以:

  • 与同一或另一跟踪服务器中的其他数据科学家共享和协作。 例如,可以将另一个用户的试验克隆到你的工作区。
  • 将 MLflow 试验和运行从本地跟踪服务器复制到 Databricks 工作区。
  • 将任务关键型试验和模型备份到另一个 Databricks 工作区。