帮你快速理解、总结文档立即下载

模型 Catalog(ML 模型注册与元数据)

最近更新时间:2026-09-11 20:42:32
我的收藏

概述

模型 Catalog(Model 类 Catalog)将机器学习模型纳入与表、卷一致的统一治理框架。DataBuddy 在 Catalog 中提供托管的 MLflow Model Registry,您可以将实验训练出的模型集中注册、版本化管理,并通过别名快速引用特定版本进行部署或在线推理。
本文介绍如何创建 Model 类 Catalog、注册模型、管理模型版本与元数据。模型部署与服务化推理请参考 模型服务

前提条件

已开通 DataBuddy 服务并完成空间初始化。
当前账号在目标工作空间中拥有创建 Catalog 的权限,以及目标 Catalog/Schema 的 create model 权限。
已熟悉 实验管理 的基本流程,并已完成至少一次实验运行(用于 UI 注册)。
模型必须包含 模型签名(Signature) ,即输入输出的字段名称与数据类型,否则无法注册。

使用限制

限制项
说明
注册前置条件
模型必须存在签名(Signature)才能注册
标签来源
模型与版本的标签必须从 治理标签 策略中选择,UI 不支持任意自由文本
别名唯一性
同一模型下的别名(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 mlflow
from 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),用于标注业务属性,例如冠军版本、训练数据集等
别名
该版本绑定的别名(如 championproduction
部署状态
已部署 / 未部署
已部署服务
一个版本可部署到多个服务,多于一个时以 +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
可二次授权
提示
权限点存在依赖关系:授予模型的 readwriteuse model 时,请确保用户已具备所属 Catalog 的 use catalog 与所属 Schema 的 use schema 权限。授权弹窗会在保存前提示您勾选依赖项。

配置模型权限

1. 进入模型详情页或版本详情页的 权限 Tab。
2. 点击 新增授权 ,选择授权主体(支持多选用户)。
3. 选择需要授予的权限点。
4. 点击 确定 完成授权。
仅主账号、模型 owner 和具有 grant 权限的用户可执行授权。无 grant 权限时,授权按钮置灰。
更多权限规则请参考 成员与权限管理

与其他模块的关系

模块
关系
模型注册的入口之一;实验运行可通过 UI 一键注册到 Catalog
部署在线推理服务时,从 Catalog 选择模型版本或别名
数据科学模块中的模型列表,与 Catalog 中的模型为同一份元数据,可双向跳转
模型作为血缘节点,可追踪上游训练数据与下游推理资产
模型与版本的标签均从治理标签策略中选择

常见问题

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:
删除版本:仅删除该版本的元数据与工件。其他版本不受影响,但若该版本已被在线服务引用,相关服务调用会失败。
删除模型:删除该模型下所有版本与历史。请在删除前确认无下游推理任务依赖。

相关文档