模型实验是 DataBuddy 数据科学模块中组织与追踪机器学习训练过程的能力。您在 Studio 中训练模型时,可以通过模型实验模块系统化地记录每次运行的参数、指标与工件;训练完成后,在实验面板中对比多次运行的表现,选出最优模型并注册到 Catalog 进行统一管理,无需手动维护训练日志或逐个比对结果。
关键概念
运行(Run)
Run 是一次具体的训练或调参过程。每次在 Notebook 中调用
mlflow.start_run() 就会启动一次新的 Run。Run 内可以记录:运行 ID 与运行名称 :唯一标识,运行名称在所属实验内唯一。
运行状态 :运行中、已完成、失败。
运行时长 :自动统计,单位会按 ms / s / min / h 自动切换。
创建人、创建时间、来源 Notebook :自动从执行环境采集。
数据集 :本次训练使用的输入数据,可在详情中查看 Schema。
父子 Run
在父 Run 上下文中再次调用
mlflow.start_run(nested=True),新的 Run 会作为父 Run 的子 Run,常用于超参数调优场景。示例:import mlflowwith mlflow.start_run(run_name="Parent Run"):mlflow.log_param("model_type", "CNN")for i in range(3):with mlflow.start_run(run_name=f"Child Run {i}", nested=True):mlflow.log_param("learning_rate", 0.01 * (i + 1))mlflow.log_metric("accuracy", 0.8 + 0.05 * i)
实验详情的运行任务列表会以嵌套方式展示父 Run 与其下的子 Run。
参数(Parameter)
训练开始时记录的输入配置。值类型可以是字符串、整数或浮点数。常见示例:
learning_rate: 0.01batch_size: 64n_estimators: 100max_depth: 6通过
mlflow.log_param(key, value) 记录,记录后不可修改。指标(Metric)
训练过程中或训练结束时记录的模型表现度量。指标值可以随训练步(step)变化,便于绘制曲线图。常见示例:
accuracy、AUC、F1、precision、recall(分类)RMSE、MAE、R2(回归)loss、val_loss(深度学习)通过
mlflow.log_metric(key, value, step=None) 记录,可多次调用以记录训练曲线。工件(Artifact)
本次 Run 产生的所有附属文件,每个 Run 拥有独立的存储空间,目录树状展示。常见内容:
训练得到的模型文件(
.pkl / .pt / .onnx 等)日志文件(
stdout、stderr、log.txt)配置文件(
config.yaml、params.json)评估结果(预测输出、评估指标、图片)
通过
mlflow.log_artifact(local_path, artifact_path=None) 或 mlflow.<flavor>.log_model(...) 记录。系统指标(System Metrics)
MLflow 自动采集的系统资源占用指标,用于评估训练对计算资源的消耗。默认记录以下指标:
指标 | 含义 |
cpu_utilization_percentage | CPU 使用率 |
system_memory_usage_megabytes | 系统内存占用 |
system_memory_usage_percentage | 系统内存占用率 |
network_receive_megabytes | 网络接收流量 |
network_transmit_megabytes | 网络发送流量 |
disk_usage_megabytes | 磁盘已用容量 |
disk_available_megabytes | 磁盘可用容量 |
数据集(Dataset)
本次 Run 使用的输入数据,在 Run 详情中可点击展开数据集详情侧边弹窗,查看数据来源与字段信息。一个 Run 可以关联多个数据集。
模型(Model)与已注册模型
在 Run 中通过
mlflow.<flavor>.log_model(...) 记录的模型对象会作为 Run 的工件保存。模型有以下两种状态:未注册模型 :仅作为 Run 的工件存在,不进入 Catalog 治理。
已注册模型 :通过 注册模型 操作或在代码中传入
registered_model_name= 参数后,模型会注册到 Catalog 下的 MLflow Model Registry,拥有 catalog.schema.model_name 三段式全名与递增的版本号。最佳运行(Best Run)
实验内根据评估指标自动识别的最优 Run。在实验详情列表中,最佳运行默认置顶展示。
实验、Run 与模型的关系
实验、Run 与模型在不同场景下存在不同的对应关系:
场景 | 关系 |
一个 Run 训练并保存一个模型(基础场景) | Run 与模型一一对应 |
一个 Run 在多个 epoch 保存多个模型快照(深度学习) | 一个 Run 对应多个模型工件(如 torch-iris-10、torch-iris-50、torch-iris-100) |
同一模型架构用不同参数多次训练(调参) | 同一注册模型对应多个 Run,分别为不同模型版本 |
父子 Run 各自保存模型(如调参试验) | 一个父 Run 关联多个子 Run,每个子 Run 关联一个模型工件 |
权限模型
实验权限复用基础平台权限体系。每个实验默认创建者与 Admin 账号可管理,其他成员可在实验详情右上角 权限 弹窗中按以下三级授权:
权限级别 | 可执行操作 |
读取(Can Read) | 查看实验基本信息、所有 Run 的参数 / 指标 / 模型 / 工件、运行历史;导出实验结果;查看权限设置(不可修改) |
编辑(Can Edit) | 拥有读取的所有能力;新建 Run、修改 Run 内的参数 / 指标 / 工件;编辑实验描述与标签 |
管理(Can Manage) | 拥有编辑的所有能力;删除实验、为其他用户分配权限 |
无权限(No Permissions)状态下用户完全不可访问该实验。