概述
模型 Catalog(Model 类 Catalog)将机器学习模型纳入与表、卷一致的统一治理框架。DataBuddy 在 Catalog 中提供托管的 MLflow Model Registry,您可以将实验训练出的模型集中注册、版本化管理,并通过别名快速引用特定版本进行部署或在线推理。
前提条件
已开通 DataBuddy 服务并完成空间初始化。
当前账号在目标工作空间中拥有创建 Catalog 的权限,以及目标 Catalog/Schema 的
create model 权限。已熟悉 实验管理 的基本流程,并已完成至少一次实验运行(用于 UI 注册)。
模型必须包含 模型签名(Signature) ,即输入输出的字段名称与数据类型,否则无法注册。
使用限制
限制项 | 说明 |
注册前置条件 | 模型必须存在签名(Signature)才能注册 |
标签来源 | |
别名唯一性 | 同一模型下的别名(Alias)不可重复 |
标签操作 | 模型标签仅支持 UI 添加 / 修改 / 删除;通过代码自定义模型创建暂不支持模型标签写入 |
创建 Model 类 Catalog
1. 在左侧导航栏选择数据目录 。
2. 在左侧目录树顶部点击 + 创建数据目录 。
3. 在弹窗中配置:
目录名称 :必填。
目录来源 :必填,选择 TCCatalog
目录类型 :必填,选择原生目录
目录用途 :必填,选择模型文件目录
描述 :可选,最多 256 字符。
1. 点击 确认 完成创建。
创建成功后,您会进入 Catalog 详情页,与 结构化数据目录相同,包含
default Schema注册模型
DataBuddy 支持两种模型注册方式:
方式一:UI 注册(从实验运行)
1. 进入 实验管理,找到目标实验运行。
2. 在运行详情页点击 注册模型 。
3. 在弹窗中:
注册方式: 新模型、已有模型新版本
模型名称 :填写模型名称,需在所选 Schema 内唯一。
1. 点击 注册模型 。
系统会调用 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. 点击 **删除 ** 按钮 删除。
警告
删除模型版本不可恢复。删除前请确认无在线服务、无下游推理任务依赖该版本。
权限管理
模型的权限模型与表、Volume 一致,可在 Catalog / Schema / Model 任意层级授权。
Model 层级权限点
权限点 | 含义 |
create model | 创建模型 |
read | 读取模型(用于推理或调用) |
write | 更新模型 |
delete | 删除模型 |
create model version | 在模型基础上创建新版本 |
use model | 使用该模型 |
all | 授予以上所有权限 |
grant | 可二次授权 |
提示
权限点存在依赖关系:授予模型的
read、write、use model 时,请确保用户已具备所属 Catalog 的 use catalog 与所属 Schema 的 use schema 权限。授权弹窗会在保存前提示您勾选依赖项。配置模型权限
1. 进入模型详情页或版本详情页的 权限 Tab。
2. 点击 新增授权 ,选择授权主体(支持多选用户)。
3. 选择需要授予的权限点。
4. 点击 确定 完成授权。
仅主账号、模型 owner 和具有
grant 权限的用户可执行授权。无 grant 权限时,授权按钮置灰。与其他模块的关系
常见问题
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:
删除版本:仅删除该版本的元数据与工件。其他版本不受影响,但若该版本已被在线服务引用,相关服务调用会失败。
删除模型:删除该模型下所有版本与历史。请在删除前确认无下游推理任务依赖。