模型版本是模型资产的最小可部署单元,对应一次具体的训练产物。DataBuddy 模型版本管理在 Catalog 中以
catalog.schema.model_name/<version> 的方式组织,提供版本的注册、查看、复制、删除以及完整的元数据展示能力。前提条件
已拥有目标 Catalog 与 Schema 的
USE CATALOG、USE SCHEMA 权限。注册新模型需要
CREATE MODEL 权限;为已有模型注册新版本需要 CREATE MODEL VERSION 权限。所注册的模型必须包含模型签名(Model Signature):使用
mlflow.<flavor>.log_model() 时通过 signature= 参数显式传入;使用特征工程 SDK 的 fe.log_model() 时由 training_set.feature_spec 自动推断。请勿依赖 Autologging 的自动签名推断——它对部分 flavor(如自定义 PyFunc)或含 decimal 类型的训练数据不保证生成签名 ,会导致注册失败。删除版本需要对应模型的
DELETE 权限。注意
模型未携带签名时注册会失败并提示,且签名缺失会导致后续
score_batch 与在线推理的特征自动补全失败。请在训练或日志记录阶段确认签名已写入后再注册。注册新版本
方式一:特征工程 SDK 注册
如果模型在训练时通过
create_training_set 拼接了特征表,必须使用特征工程 SDK 的 fe.log_model() 注册。它是唯一会写入 feature_spec.yaml、支持特征消费链路(score_batch 自动查找、在线推理自动补全)的方式:from wedata.feature_engineering.client import FeatureEngineeringClientfe = FeatureEngineeringClient(spark)fe.log_model(model=model,artifact_path="model",flavor=mlflow.sklearn,training_set=training_set, # 携带特征来源,写入 feature_spec.yamlregistered_model_name="catalog.schema.model_name",infer_input_example=True,)
fe.log_model() 会在记录模型的同时完成版本注册,并把模型签名与 input_example 依据 training_set.feature_spec 自动推断。完整用法详见 特征工程 SDK。方式二:UI 注册
注册入口位于实验运行详情页:
1. 进入 数据科学 → 模型实验 ,打开目标实验运行(Run)的详情页。
2. 在右上角点击 注册模型 。
3. 在弹窗中选择 已有模型新版本 ,下拉选择目标模型;版本号会基于该模型当前最大版本自动递增。
4. 点击 注册模型 完成注册。
如需新建模型,请在弹窗中选择 新模型 ,并按
catalog.schema.modelname 规范输入名称。模型重名时,会提示“当前模型已被注册,请注册该模型新版本”。版本详情
进入模型详情页有两种入口:
在 模型列表 点击模型名称进入模型详情,再在版本列表点击具体版本号。
在 数据目录(Catalog) 中按
catalog → schema → model → version 路径进入。1. 概览
在 概览 Tab 顶部可对当前版本进行编辑:
添加描述 :补充版本说明,便于团队识别版本用途。
添加负责人 :为版本指定负责人。
添加标签 :为版本打标,便于检索与生命周期管理(详见 模型标签与生命周期)。
概览 Tab 展示该版本来源实验运行记录的指标与训练参数。其中 源运行 可点击跳转到对应运行详情。活动日志 中可按时间倒序记录该版本的注册、复制、删除等关键事件,用于审计追溯;后续将扩展至模型部署、自动部署作业等场景。还可查询模型指标、参数、版本签名等。
2. 血缘
血缘展示模型版本与上下游资产的关系,支持两种视图:
列表模式 :展示一层上下游列表。
上游节点类型:数据表、特征表(
Table),过程类型:Notebook、Studio。下游节点类型:数据表、推理表(
Table),过程类型:模型服务(Process)。血缘图模式 :以图谱形式展示完整链路,节点支持点击跳转:
模型节点支持切换不同版本;
模型服务节点展示模型名称、创建人、注册时间、版本创建时间,点击服务名称跳转到模型服务详情;
推理表节点信息与普通数据表保持一致,点击进入表详情。
血缘数据由 Catalog 统一查询接口提供,模型注册与服务部署时由各模块上报。
3. 模型工件
工件以树形结构展示模型相关文件(如
MLmodel、conda.yaml、python_env.yaml、模型权重等):点击文件夹展开下级;
点击单个文件,右侧显示文件内容预览;
文件支持下载到本地。
4. 复制版本
跨模型复制版本可用于将已有版本快速分发到 Catalog 或 Schema 下,适合多环境(开发、生产)或跨项目共享场景。
1. 在版本详情页右上角点击 复制此版本 。
2. 在弹窗中选择目标模型。可直接输入关键字过滤。目标模型可以是源模型自身(即在同一模型下复制出新版本),也可以是同 Catalog / Schema 下的其他模型。
3. 点击 复制 。
5. 删除版本
在版本详情页右上角点击 删除此版本, ** 点击 确认删除** 按钮即可删除。
警告
删除版本不可恢复。如该版本已被在线推理服务引用,请先解除部署关系再删除,避免线上服务受影响。
通过代码管理版本
DataBuddy 模型版本管理接口与 MLflow 标准 API 兼容,常用接口:
API | 说明 |
mlflow.register_model(model_uri, name) | 注册模型或新版本 |
mlflow.search_model_versions(filter_string) | 按过滤条件搜索版本 |
mlflow.search_registered_models(filter_string) | 按过滤条件搜索已注册模型 |
MlflowClient.delete_model_version(name, version) | 删除模型版本 |
注意
删除模型版本需要导入
MlflowClient。在 DataBuddy Notebook 中运行时,内核会自动注入临时密钥并完成 Tracking / Registry 的连接配置,无需手动设置 URI ,直接调用上述接口即可:
import mlflow# DataBuddy Notebook 内核已自动配置 Tracking / Registry,直接使用即可mlflow.register_model(model_uri="runs:/<run_id>/model", name="catalog.schema.model_name")
提示
如需在 DataBuddy Notebook 之外的环境(如本地)使用,需手动配置指向 DataBuddy 的 Tracking / Registry URI 及认证信息。具体取值请参考平台连接说明。
使用限制
同一模型下版本号自动递增,不支持手动指定版本号。
跨 Catalog 复制版本仅在当前用户对源版本有读取权限、对目标模型有
CREATE MODEL VERSION 权限时可用。删除已存在部署服务引用的版本前,请先在模型服务侧解绑该版本,避免运行时报错。
工件展示与下载依赖底层 Catalog 与对象存储能力,超大工件可能存在加载延迟。
常见问题
Q:版本注册成功但 指标 Tab 为空?
A:指标来源于源实验运行(Source Run)。请确认源 Run 是否记录了指标;如使用
mlflow.register_model(model_uri=...) 时 model_uri 来自外部,未关联实验 Run,指标会为空。Q:血缘图中看不到下游模型服务?
Q:复制版本后能否回滚到源版本?
A:可以。复制不会修改源版本,源版本与新版本完全独立;如需回滚,可在模型服务中将部署目标改回源版本。
相关文档
模型标签与生命周期