使用 MLflow 试验组织训练运行

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

  • 可通过 Databricks Mosaic AI 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 试验项目位置,如以下代码所示:

    EXP_NAME = "/Users/first.last@databricks.com/my_experiment_name"
    CATALOG = "my_catalog"
    SCHEMA = "my_schema"
    VOLUME = "my_volume"
    ARTIFACT_PATH = f"dbfs:/Volumes/{CATALOG}/{SCHEMA}/{VOLUME}"
    
    mlflow.set_tracking_uri("databricks")
    mlflow.set_registry_uri("databricks-uc")
    
    if mlflow.get_experiment_by_name(EXP_NAME) is None:
        mlflow.create_experiment(name=EXP_NAME, artifact_location=ARTIFACT_PATH)
    mlflow.set_experiment(EXP_NAME)
    

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

    注意

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

  5. 单击“创建”。 此时将会显示新试验的试验详细信息页。

  6. 要将运行记录到此试验,请结合试验路径调用 mlflow.set_experiment()。 若要显示试验路径,请单击试验名称右侧的信息图标 信息图标。 有关详细信息和示例笔记本,请参阅记录运行到试验

从“试验”页创建试验

若要创建基础模型微调、AutoML 或自定义试验,请单击“试验”或在左侧边栏中选择“新建 > 试验”。

在页面顶部,选择以下选项之一来配置试验:

  • 预测。 此时会显示“配置预测试验”对话框。 有关详细信息,请参阅配置 AutoML 试验
  • 分类。 此时会显示“配置分类试验”对话框。 有关详细信息,请参阅使用 UI 设置分类试验
  • 回归。 此时会显示“配置分类试验”对话框。 有关详细信息,请参阅使用 UI 设置回归试验
  • 自定义: 此时会显示“创建 MLflow 试验”对话框。 有关详细信息,请参阅从工作区创建试验中的步骤 4。

创建笔记本实验

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

注意

在具有 专用组访问权限 的计算环境中运行 MLflow 的用户,必须验证所在组是否有权写入笔记本所在目录,或者使用 mlflow.set_tracking_uri("<path>") 指定一个用于 MLflow 写入的文件夹。

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

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

注意

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

查看实验

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

访问试验详细信息页的其他方法:

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

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

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

查看试验

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

查看工作区实验

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

  2. 转到包含该试验的文件夹。

  3. 单击试验名称。

查看笔记本试验

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

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

查看运行参数和指标

从边栏中,可导航到试验详细信息页面,也可直接导航到运行。

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

管理试验

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

注意

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

重命名试验

您可以在实验页面或该实验的详细信息页面中,重命名您拥有的实验。

  • 在“试验”页上,单击最右侧列中的 kebab 菜单 Kebab 菜单,然后单击“重命名”

从“试验”页面进行重命名。

  • 在“试验详细信息”页上,单击“权限”Kebab 菜单旁边的 kebab 菜单,然后单击“重命名”

从试验详细信息页重命名。

可以从工作区重命名工作区试验。 右键单击试验名称,然后单击“重命名”

获取试验 ID 和试验路径

在试验详细信息页上,可通过单击试验名称右侧的信息图标 信息图标,以获取笔记本试验的路径。 此时会出现一个弹出注释,显示试验的路径、试验 ID 和项目位置。 可在 MLflow 命令 set_experiment 中使用此试验 ID 来设置活动 MLflow 试验。

试验名称图标

在笔记本的实验边栏中,单击路径图标,即可复制实验的完整路径。

笔记本边栏中的“试验路径”图标。

删除笔记本试验

笔记本中的实验是整体的一部分,无法单独删除。 如果删除笔记本,则也会删除相关的笔记本试验。 使用用户界面删除笔记本试验时,笔记本也会被删除。

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

删除工作区或笔记本试验

可以从实验页或实验详细信息页中删除自己拥有的实验。

重要

当您删除笔记本实验时,笔记本也会被删除。

  • 在“试验”页上,单击最右侧列中的 kebab 菜单 Kebab 菜单,然后单击“删除”

从试验页删除。

  • 在“试验详细信息”页上,单击“权限”Kebab 菜单旁边的 kebab 菜单,然后单击“删除”

从试验详细信息页删除。

可以从工作区中删除工作区试验。 右键单击试验名称,然后单击“移动到回收站”

更改试验权限

若要从试验详细信息页更改试验权限,请单击“权限”

试验详细信息页权限菜单

可以从“试验”更改你拥有的试验的权限。 单击最右侧栏中的 kebab 菜单 Kebab 菜单,然后单击“权限”

从“试验”页更改权限。

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

在工作区之间复制试验

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

借助这些工具,你可以:

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