使用 MLflow 试验组织训练运行
试验是模型训练运行的组织单位。 有两种类型的试验:工作区和笔记本。
- 可通过 Databricks Mosaic AI UI 或 MLflow API 创建工作区试验。 工作区试验不与任何笔记本关联,任何笔记本都可以使用试验 ID 或试验名称将运行记录到这些试验中。
- 笔记本试验与特定笔记本相关联。 如果在使用 mlflow.start_run() 启动运行时没有活动的试验,Azure Databricks 会自动创建笔记本试验。
若要查看你有权访问的工作区中的所有试验,请在边栏中选择“机器学习”>“试验”。
创建工作区试验
此部分介绍如何使用 Azure Databricks UI 创建工作区试验。 可以直接从工作区或从“试验”页创建工作区试验。
还可以将 MLflow API 或 Databricks Terraform 提供程序与 databricks_mlflow_experiment 一起使用。
有关将运行记录到工作区试验的说明,请参阅记录示例笔记本。
从工作区创建试验
在边栏中单击 “工作区”。
导航到要在其中创建试验的文件夹。
右键单击文件夹,然后选择“创建”>“MLflow 试验”。
在“创建 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 以外位置的模型无法在模型注册表中进行注册。
单击“创建”。 将显示一个空试验。
若要将运行记录到此试验,请结合试验路径调用
mlflow.set_experiment()
。 试验路径显示在“试验”页的顶部。 有关详细信息和示例笔记本,请参阅记录示例笔记本。
从“试验”页创建试验
若要创建基础模型微调、AutoML 或自定义试验,请单击“试验”或在左侧边栏中选择“新建 > 试验”。
在页面顶部,选择以下选项之一来配置试验:
预测。 此时会显示“配置预测试验”对话框。 有关详细信息,请参阅配置 AutoML 试验。
分类。 此时会显示“配置分类试验”对话框。 有关详细信息,请参阅使用 UI 设置分类试验。
回归。 此时会显示“配置分类试验”对话框。 有关详细信息,请参阅使用 UI 设置回归试验。
自定义: 此时会显示“创建 MLflow 试验”对话框。 有关详细信息,请参阅从工作区创建试验中的步骤 4。
创建笔记本试验
在笔记本中使用 mlflow.start_run() 命令时,运行会将指标和参数记录到活动试验中。 如果没有活动的试验,Azure Databricks 会创建笔记本试验。 笔记本试验的名称和 ID 与相应笔记本的名称和 ID 相同。 笔记本 ID 是笔记本 URL 和 ID 末尾的数字标识符。
或者,你可以在 mlflow.set_experiment() 中将 Azure Databricks 工作区路径传递给现有的笔记本来为它创建笔记本试验。
有关将运行记录到笔记本试验的说明,请参阅记录示例笔记本。
注意
如果使用 API(例如,Python 中的 MlflowClient.tracking.delete_experiment()
)删除笔记本试验,则笔记本本身会被移到回收站文件夹中。
查看试验
你有权访问的每个试验将显示在“试验”页上。 可以在此页中查看任何试验。 单击试验名称,以显示“试验”页。
访问试验页的其他方法:
- 可以从工作区菜单访问工作区试验的试验页。
- 可以从笔记本访问笔记本试验的试验页。
若要搜索试验,请在“筛选试验”字段中键入文本,然后按 Enter 或单击放大镜图标。 试验列表将会更改,仅显示那些在“名称”、“创建者”、“位置”或“说明”列中包含搜索文本的试验。
单击表中任意试验的名称以显示其试验页:
试验页列出与试验关联的所有运行。 单击表中试验的“运行名称”,可打开与试验关联的任何运行的运行页。 使用“源”列,可访问创建运行的笔记本版本。 还可按指标或参数设置搜索和筛选运行。
查看工作区试验
- 在边栏中单击 “工作区”。
- 转到包含该试验的文件夹。
- 单击试验名称。
查看笔记本试验
在笔记本的右边栏中,单击“试验”图标 。
此时会出现“试验运行”边栏,其中显示与笔记本试验有关的每个运行的摘要,包括运行参数和指标。 边栏顶部的信息是笔记本最近一次记录运行的试验(笔记本试验或工作区试验)的名称。
从边栏中,可导航到“试验”页面,也可直接导航到运行。
- 若要查看试验,请单击最右边“试验运行”旁的 。
- 若要显示运行,请单击运行的名称。
管理试验
可以在此试验页、此试验页或工作区菜单中重命名、删除或管理所拥有的试验的权限。
注意
不能直接重命名、删除或管理由笔记本在 Databricks Git 文件夹中创建的 MLflow 试验的权限。 必须在 Git 文件夹级别执行这些操作。
从实验页重命名实验
若要从此试验页或此试验页重命名试验,请单击 ,然后选择“重命名”。
从工作区菜单重命名试验
- 在边栏中单击 “工作区”。
- 转到包含该试验的文件夹。
- 右键单击试验名称,然后选择“重命名”。
复制试验名称
若要复制试验名称,请在试验页顶部单击 。 可在 MLflow 命令 set_experiment
中使用此名称来设置活动 MLflow 试验。
还可从笔记本中的试验边栏复制试验名称。
删除笔记本试验
笔记本试验是笔记本的一部分,不能单独删除。 如果删除笔记本,则也会删除相关的笔记本试验。 使用 UI 删除笔记本试验时也会删除笔记本。
若要使用 API 删除笔记本试验,请使用工作区 API,以确保从工作区中删除笔记本和试验。
从工作区菜单中删除工作区试验
- 在边栏中单击 “工作区”。
- 转到包含该试验的文件夹。
- 右键单击试验名称,然后选择“移动到回收站”。
从试验页删除工作区或笔记本试验
若要从此试验页或此试验页删除试验,请单击 ,然后选择“删除”。
删除笔记本试验时也会删除笔记本。
更改试验权限
若要从试验页更改试验权限,请单击“共享”。
可以从试验页更改你拥有的试验的权限。 在“操作”列单击 ,然后选择“权限”。
有关试验权限级别的信息,请参阅 MLflow 试验 ACL。
在工作区之间复制试验
若要在工作区之间迁移 MLflow 试验,可以使用社区驱动的开放源代码项目 MLflow Export-Import。
借助这些工具,你可以:
- 与同一或另一跟踪服务器中的其他数据科学家共享和协作。 例如,可以将另一个用户的试验克隆到你的工作区。
- 将 MLflow 试验和运行从本地跟踪服务器复制到 Databricks 工作区。
- 将任务关键型试验和模型备份到另一个 Databricks 工作区。