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

模型版本管理

最近更新时间:2026-09-11 18:24:32
我的收藏
模型版本是模型资产的最小可部署单元,对应一次具体的训练产物。DataBuddy 模型版本管理在 Catalog 中以 catalog.schema.model_name/<version> 的方式组织,提供版本的注册、查看、复制、删除以及完整的元数据展示能力。

前提条件

已拥有目标 Catalog 与 Schema 的 USE CATALOGUSE 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 FeatureEngineeringClient

fe = FeatureEngineeringClient(spark)

fe.log_model(
model=model,
artifact_path="model",
flavor=mlflow.sklearn,
training_set=training_set, # 携带特征来源,写入 feature_spec.yaml
registered_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. 模型工件

工件以树形结构展示模型相关文件(如 MLmodelconda.yamlpython_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:血缘图中看不到下游模型服务?
A:模型服务下游血缘需要部署侧上报。请确认该版本已通过 模型服务 部署,并刷新血缘视图。
Q:复制版本后能否回滚到源版本? A:可以。复制不会修改源版本,源版本与新版本完全独立;如需回滚,可在模型服务中将部署目标改回源版本。

相关文档

模型标签与生命周期