一、概述
这篇说说如何创建 Model 类 Catalog、注册模型、管理模型版本与元数据。模型部署与服务化推理请参考 模型服务。
二、前提条件
·已开通 DataBuddy 服务并完成空间初始化。
·当前账号在目标工作空间中拥有创建 Catalog 的权限,以及目标 Catalog/Schema 的 create model 权限。
·已熟悉 实验管理 的基本流程,并已完成至少一次实验运行(用于 UI 注册)。
·模型必须包含 模型签名(Signature) ,即输入输出的字段名称与数据类型,否则无法注册。
三、使用限制
| 限制项 | 说明 |
| 注册前置条件 | 模型必须存在签名(Signature)才能注册 |
| 标签来源 | 模型与版本的标签必须从 治理标签 策略中选择,UI 不支持任意自由文本 |
| 别名唯一性 | 同一模型下的别名(Alias)不可重复 |
| 标签操作 | 模型标签仅支持 UI 添加 / 修改 / 删除;通过代码自定义模型创建暂不支持模型标签写入 |
四、创建 Model 类 Catalog
1. 在左侧导航栏选择数据目录 。
2. 在左侧目录树顶部点击 + 创建数据目录 。
3. 在弹窗中配置:
·目录名称 :必填。
·目录来源 :必填,选择 TCCatalog
·目录类型 :必填,选择原生目录
·目录用途 :必填,选择模型文件目录
·描述 :可选,最多 256 字符。
4. 点击 确认 完成创建。
创建成功后,你会进入 Catalog 详情页,与 结构化数据目录相同,包含default Schema
五、注册模型
DataBuddy 支持两种模型注册方式:
六、方式一:UI 注册(从实验运行)
1. 进入 实验管理,找到目标实验运行。
2. 在运行详情页点击 注册模型 。
3. 在弹窗中:
·注册方式: 新模型、已有模型新版本
·模型名称 :填写模型名称,需在所选 Schema 内唯一。
4. 点击 注册模型 。
系统会调用 Catalog 注册接口完成注册。注册成功后,你可在 Catalog 中通过 <catalog>.<schema>.<model> 路径找到该模型。如果同名模型已存在,新注册会作为该模型的下一个版本(版本号递增)。
七、方式二:Notebook / 代码注册
在 Notebook 或 Python 任务中使用 MLflow 客户端注册模型。DataBuddy 默认注册 URI 已设置为 Catalog 内的 MLflow Model Registry:
import mlflowfrom mlflow.models import infer_signature# 训练并打包模型signature = infer_signature(X_train, model.predict(X_train))mlflow.sklearn.log_model( sk_model=model, artifact_path="model", signature=signature, registered_model_name="ml_catalog.recsys.deepfm_model")
注册接口会上报实现信息(如评估指标)到 Catalog 的模型版本属性中。
注意:说明:
注意:注册前请使用 mlflow.models.infer_signature 或手工构造 Signature。无签名的模型在注册时会被拒绝。
八、模型详情页
通过左侧目录树或 Schema 详情页进入模型,详情页结构如下:
| 区域 | 内容 |
| 顶部面包屑 | Catalog > Schema > 模型名称(可复制) |
| 概览 Tab | 模型描述、负责人、标签、版本列表 |
| 活动日志 | 模型注册时间、版本、日志 |
| 权限 Tab | 模型维度的授权情况(详见 权限管理) |
九、模型描述
在概览 点击添加描述 或描述区的笔形图标,弹出描述输入框:
·模型描述与版本描述统一限制为最长256 字符。
·支持反复编辑。
十、版本列表
模型概览 下方的版本列表按版本号倒序展示:
| 列 | 说明 |
| 版本号 | 点击进入版本详情页,可查看模型血缘等详细信息 |
| 标签 | 该版本的治理标签(key:value),用于标注业务属性,例如冠军版本、训练数据集等 |
| 别名 | 该版本绑定的别名(如 champion、production) |
| 部署状态 | 已部署 / 未部署 |
| 已部署服务 | 一个版本可部署到多个服务,多于一个时以 +N 收纳 |
| 备注 | 该版本的备注信息 |
十一、模型所有者
右侧 业务信息 > 模型所有者 默认是注册人,点击笔形图标可发起转交:
·仅当前所有者可见转交入口。
·转交时弹窗提示「转交后你不再拥有该模型的管理权限」。
十二、模型版本管理
点击版本号进入版本详情页。
十三、版本详情页结构
| 区域 | 内容 |
| 操作区 | 模型描述、别名、标签 |
| 非操作区 | 指标、参数、活动日志、模型版本签名(输入输出字段表) |
十四、模型版本签名
签名记录模型的输入输出规范,作为部署时的输入输出强制校验依据:
| 列 | 说明 |
| 输入字段名称 | 例如 user_id |
| 输入数据类型 | 例如 STRING |
| 输出字段名称 | 例如 score |
| 输出数据类型 | 例如 DOUBLE |
十五、别名
别名是指向特定版本的可变命名引用,常用于部署生产版本:
1. 在版本详情页 别名 旁点击编辑。
2. 输入别名(最长 50 字符)。
3. 点击 保存 。
如果同一模型下别名已被占用,会提示「<别名> 这一别名已被占用,请重新输入」。
引用示例:
models:/ml_catalog.recsys.deepfm_model@champion
将别名重新分配给不同版本,可在不修改调用代码的情况下切换生产版本。
十六、标签(版本级)
模型版本的标签同样从 治理标签 策略中选择,可添加多个:
| 限制 | 说明 |
| 数量上限 | 单版本最多 10 个标签 |
| value 长度 | 复用治理标签管理的限制(不超过 50 字符) |
十七、版本来源
如果该版本是从其他模型版本复制而来,关于此模型版本 区域会显示:
·复制自 :来源版本的全称(如 ml_catalog.recsys.deepfm_model/3)。
·版本来源 :如果来自实验运行,会展示来源链接,可跳转实验详情。
十八、复制模型版本
将一个版本复制到另一个模型,便于把已有版本作为新模型的初版。
1. 在版本详情页右上角点击 复制此版本 。
2. 在弹窗中:
·复制到模型 :下拉选择目标模型。
·仅可选择你拥有权限的目标模型。
3. 点击复制 。
复制流程的反馈:
·触发复制后弹窗关闭,页面提示「已开始复制模型版本:请注意,此过程可能需要一些时间」。
·成功后页面顶部显示绿色横幅「版本复制成功!新版本:[新版本全称]」,提示框右侧含 前往新版本 按钮,可直接跳转。
·失败时弹窗内显示红色错误提示(例如目标 Schema 无写入权限),并保留弹窗配置,允许修改后重试。
新版本规则:
·新版本号在目标模型中递增(若原最大版本为 5,则复制后为版本 6)。
·新版本的状态默认为 就绪 ,与原版本状态无关。
·关于此模型版本 自动记录 复制自 字段。
十九、删除模型版本
1. 在版本详情页右上角点击删除此版本 。
2. 在二次确认弹窗中确认文案:「确认删除 <版本全称> 吗?删除后不可恢复。」
3. 点击 **删除 ** 按钮 删除。
注意:警告:
注意:删除模型版本不可恢复。删除前请确认无在线服务、无下游推理任务依赖该版本。
20、权限管理
模型的权限模型与表、Volume 一致,可在 Catalog / Schema / Model 任意层级授权。
21、Model 层级权限点
| 权限点 | 含义 |
| create model | 创建模型 |
| read | 读取模型(用于推理或调用) |
| write | 更新模型 |
| delete | 删除模型 |
| create model version | 在模型基础上创建新版本 |
| use model | 使用该模型 |
| all | 授予以上所有权限 |
| grant | 可二次授权 |
注意:说明:
注意:权限点存在依赖关系:授予模型的 read、write、use model 时,请确保用户已具备所属 Catalog 的 use catalog 与所属 Schema 的 use schema 权限。授权弹窗会在保存前提示你勾选依赖项。
22、配置模型权限
1. 进入模型详情页或版本详情页的 权限 Tab。
2. 点击 新增授权 ,选择授权主体(支持多选用户)。
3. 选择需要授予的权限点。
4. 点击 确定 完成授权。
仅主账号、模型 owner 和具有 grant 权限的用户可执行授权。无 grant 权限时,授权按钮置灰。
更多权限规则请参考 成员与权限管理。
23、与其他模块的关系
| 模块 | 关系 |
| 实验管理 | 模型注册的入口之一;实验运行可通过 UI 一键注册到 Catalog |
| 模型服务 | 部署在线推理服务时,从 Catalog 选择模型版本或别名 |
| 模型管理 | 数据科学模块中的模型列表,与 Catalog 中的模型为同一份元数据,可双向跳转 |
| 数据血缘 | 模型作为血缘节点,可追踪上游训练数据与下游推理资产 |
| 治理标签 | 模型与版本的标签均从治理标签策略中选择 |
24、常见问题
Q:必须使用 MLflow 才能将模型注册到 Catalog 吗?
A:是。DataBuddy Catalog 中的模型注册沿用 MLflow Model Registry 协议,模型需要先以 MLflow 的格式记录(即包含模型工件、签名等)。在 Notebook 中可直接使用 mlflow.<flavor>.log_model API;在实验中训练的模型由 DataBuddy 自动以 MLflow 格式打包。
Q:模型注册时报错「必须存在模型签名」怎么办?
A:模型在注册前必须包含输入输出签名。请在训练时使用 mlflow.models.infer_signature(input, output) 自动推断,或显式构造 Signature 对象后传给 log_model。
Q:别名(Alias)和版本号(Version)的区别?
A:
·版本号 :在每次注册时自动递增、不可修改。版本号唯一对应一个具体的模型工件。
·别名 :可变的命名引用,可以重新分配到不同版本。常用于把生产版本封装为 champion、灰度版本封装为 staging,部署侧通过别名即可在不变更代码的情况下切换版本。
Q:删除模型、删除版本的影响范围?
A:
·删除版本:仅删除该版本的元数据与工件。其他版本不受影响,但若该版本已被在线服务引用,相关服务调用会失败。
·删除模型:删除该模型下所有版本与历史。请在删除前确认无下游推理任务依赖。
25、相关文档
·三级命名空间
·实验管理
·模型管理
·模型服务
·数据血缘
·成员与权限管理