Model Registry
了解模型注册表如何进行机器学习模型的版本控制、治理和部署。探索 Ultralytics Platform,实现集中式训练、管理、监控和可复现性。
模型注册中心是一个集中式系统,用于在整个生命周期中组织、版本控制、管理和检索机器学习模型。它将模型文件(例如学到的model weights)与描述每个模型的训练、评估、批准和部署方式的元数据连接起来。作为machine learning operations的核心组件,注册中心为团队决定哪个模型版本应用于生产流量提供了可靠的来源。
模型注册中心的工作原理#
模型注册始于训练运行生成候选模型之后。注册中心创建一个命名条目,分配一个版本,并记录理解和重现该构件所需的信息。典型条目包括:
- Model artifact: 序列化的权重、预处理逻辑、配置文件或对其存储位置的引用。
- Version: 区分一个候选模型与另一个候选模型的不可变标识符。
- Metrics and parameters: 验证准确率、精确率、召回率、延迟、数据集详情、超参数及其他测量值。
- Lineage: 模型、其源代码、训练运行和数据之间的联系。
- Status: 候选(candidate)、已批准(approved)、已拒绝(rejected)、冠军(champion)或已归档(archived)等标签。
- Deployment information: 当前使用该版本的环境和端点。
各个平台实现这些理念的方式各有不同。MLflow Model Registry workflow 使用注册模型、版本、别名和标签,而 Amazon SageMaker Model Registry 支持模型组、审批状态、血缘关系和部署自动化。某些系统还记录模型签名:Snowflake model signature documentation 中描述的预期输入和输出架构。
诸如 champion 或 production 的别名提供了可在不可变版本之间移动的稳定名称。正如 Vertex AI model alias guide 中所解释的那样,应用程序可以请求别名,而无需硬编码版本号。
模型注册中心与相关概念的对比#
模型注册中心与多个 ML 工具重叠,但服务于明确的目的:
- Experiment tracking 记录训练运行,包括参数、指标和中间构件。注册中心接收来自这些实验的选定输出,并将它们作为发布候选进行管理。
- Artifact storage 保存大文件。注册中心可以直接存储这些文件,也可以充当指向外部对象存储的元数据索引。Kubeflow Model Registry architecture 展示了这种以元数据为中心的设计。
- Source control 对代码进行版本控制,而模型注册中心对训练后的构件及其 ML 专有元数据进行版本控制。GitLab model registry 可以将模型版本与 CI/CD 作业、日志、指标和参数连接起来。
- Model deployment 使选定的模型可用于推理。注册中心识别批准的构件;部署系统运行它。
- Model monitoring 观察发布后的生产行为。监控结果可以触发评估、重新训练、注册和提升替代版本。
因此,注册中心充当了实验与生产之间的控制点,而不是取代其周围的每个组件。
实际应用#
在制造检测系统中,每当相机、材料或产品设计发生变化时,工程师可能会重新训练缺陷检测器。注册中心可以保留每个模型的数据集引用、平均准确率均值、推理延迟和支持的硬件格式。在测试确认版本 12 改进了划痕检测且没有增加误报后,审批人可以提升它,并保留版本 11 以便立即回滚。
在医学图像分析中,多个团队可能会评估肿瘤检测候选模型。注册会保留每个版本的验证结果、训练配置、负责人和审批历史记录。生产应用程序可以限制为经过审查的模型,而较旧的版本则保留用于审计和可复现性。Snowflake Model Registry governance 中描述的基于角色的控制等机制有助于防止对敏感构件进行未经授权的替换或检查。
Ultralytics 工作流中的模型注册#
Ultralytics Platform 为标注数据集、训练、比较结果、导出、部署和监控计算机视觉模型提供集中式模型管理。其文档化的 Platform model management workflow 支持上传的 .pt 权重以及通过云端或远程训练生成的模型。
以下文档化工作流在本地训练 Ultralytics YOLO26,同时将生成的模型、配置、指标和日志发送到命名的 Platform 项目中:
import os
from ultralytics import YOLO
# Authenticate remote training with Ultralytics Platform
os.environ["ULTRALYTICS_API_KEY"] = "YOUR_API_KEY"
model = YOLO("yolo26n.pt")
model.train(
data="coco8.yaml",
epochs=3,
project="username/model-registry-demo",
name="candidate-001",
)项目和运行名称使候选模型能够与相关模型一起被发现。团队可以对其进行评估,使用 Ultralytics MLflow integration 进行额外的实验日志记录,或者在注册模型必须在特定云或边缘硬件上运行应用时应用 YOLO model export。
实用的注册中心指南#
将每个注册的版本视为不可变。使用易读的别名进行部署,保留验证证据,并定义清晰的提升要求。基于 Semantic Versioning 的命名策略可以传达兼容性更改,尽管自动递增的版本也很有效。
最重要的是,注册完整的模型包,而不是无法解释的权重文件。缺少的预处理规则、类名、输入架构、依赖项或数据集引用可能会使一个表面上有效的模型无法复现或部署不安全。访问控制、自动化测试、审批门、审计日志和回滚程序将模型注册中心从文件目录转变为可靠的生产保障。






