模型注册与候选晋级

本节目标

理解模型版本、别名、签名和晋级证据,避免把“上传了一个模型”误认为“可以上线”。

注册表管理什么

模型注册表(model registry) 是模型制品及其元数据的受控目录。一个注册模型可有多个不可混淆的版本,每个版本应关联:

  • 来源 run 和训练数据快照;
  • 模型制品及内容摘要;
  • 依赖环境与预处理器;
  • 输入输出签名;
  • 离线评测报告和适用范围;
  • 创建者、审批、风险说明和当前状态。

注册表解决“它是谁、从哪来、被如何使用”,不自动回答“它是否正确”。错误模型也能被完美登记。

版本与别名

版本 应指向固定制品;别名 是可移动的人类可读指针,例如 candidate 或 champion。发布系统读取别名前,最好解析并记录其实际版本与摘要,避免任务运行到一半时别名被改动。

MLflow 当前文档推荐用 model aliases、tags,或按环境拆分注册模型等方式管理生命周期;旧式固定 Stage 已被弃用。工具界面会变化,但“不可变版本 + 可审计指针”这一原则更稳定。

输入输出签名

模型签名描述模型接受和返回的数据形状、类型与字段。例如:

输入:age: integer, region: string, events_30d: integer
输出:risk_score: number in [0, 1]

签名能拦截字段缺失或类型错误,却无法证明语义正确。events_30d 从“最近 30 天事件数”变成“最近 30 个事件”时,类型仍相同,所以还需要数据契约与语义版本。

从候选到可发布版本

候选晋级可以分为四层证据:

  1. 完整性:数据、代码、环境、签名和制品可追溯;
  2. 正确性:单元测试、数据测试、推理冒烟测试通过;
  3. 有效性:在冻结评测集和关键切片上满足本项目定义的门槛;
  4. 可运营性:延迟、资源、依赖、回滚制品和负责人就绪。

阈值不能从教程照抄。关键切片允许多大回退、延迟预算是多少,应由业务损失、风险容忍度、基线波动和测量不确定性共同决定,并保存在版本化策略中。

Champion/Challenger 不是“新模型一定替换旧模型”

  • Champion:当前被信任的参考版本;
  • Challenger:等待离线或线上比较的候选。

Challenger 可以因为某个关键切片退化而被拒绝,即使整体指标更高。对于标签延迟长的任务,还可能先做影子运行,仅收集比较证据而不影响用户。

常见错误

  • 版本名包含 latest,却没有解析到固定摘要;
  • 模型与预处理器分开更新,导致输入含义错位;
  • 只看整体平均指标,忽略高风险群体;
  • 用注册表状态代替独立审批和评测证据;
  • 别名切换后删除旧制品,使回滚名存实亡。

练习与自测

为一个房价模型设计注册条目,列出签名、训练快照、关键切片和回滚信息。然后判断:

  1. 候选 RMSE 更低,但某城市误差显著变差,能否直接晋级?
  2. champion 别名足以作为审计记录吗?还应保存什么?
  3. 为什么模型注册表不能替代制品仓库的完整性校验?

小结与下一步

注册表提供身份与血缘,晋级门提供决策证据。下一步将这些检查自动化,见 CI、CD 与自动化质量门。

参考资料