Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Model Registry

模型注册表是一个经过版本管理的已训练模型及其元数据目录,用于记录哪个版本已获批准、哪个版本正在生产环境中提供服务。

模型注册表是经过版本管理的已训练机器学习模型目录。每个条目都存储模型制品(例如模型权重文件),以及可用于确认其可信度的元数据:生成模型的训练运行、数据版本、平均精度均值 (mAP)等评估指标、输入和输出架构、负责人以及审批状态。部署流水线和应用会从注册表请求指定版本,或请求当前标记为生产版本的模型,而不是四处传递权重文件,因此每次发布和回滚都对应一个精确记录的模型。在机器学习运维 (MLOps)中,注册表位于实验跟踪和模型部署之间。常用注册表包括MLflow Model Registry、Amazon SageMaker Model Registry、Vertex AI Model Registry 和 Weights & Biases Registry。

模型注册表的工作原理#

已注册模型是一个名称,例如 defect-detector,它包含一系列版本。每个版本注册后都不可变,因此新权重总会成为新版本,版本 7 始终代表相同的字节内容。一个版本通常会记录:

  • 溯源信息:生成该模型的运行 ID、代码提交、数据集版本和父模型。
  • 评估结果:验证指标,以及在每个目标设备上测得的延迟和内存占用。
  • 签名:预期的输入和输出架构,这样调用方传入错误形状时就会立即失败。
  • 模型卡:记录预期用途、训练数据和已知局限性的文档。
  • 状态:标记版本所处位置的标签和别名。

Ultralytics Platform 会为托管的每次 YOLO 训练运行保存此类记录:模型页面会列出父模型、固定的数据集版本、Git 提交、ultralytics 版本、超参数、最终指标和可复现的 yolo train 命令;自定义元数据字段则接受 JSON 对象,可用于发布跟踪或治理。

较早的注册表会让每个版本依次经过固定阶段,例如 Staging、Production 和 Archived。MLflow 在 2.9.0 版中弃用了阶段,改用别名,也就是类似 @champion 这样的可变命名指针,团队可以在不同版本之间移动该指针。Amazon SageMaker 会为每个版本跟踪 PendingManualApproval、Approved 或 Rejected 审批状态。提升模型意味着移动其别名,回滚则意味着将别名移回:

注册表还会控制谁可以执行哪些更改。数据科学家可以注册版本,指定的审核人员可以移动生产别名,所有更改都会写入审计日志。团队通常会将这些事件接入自动化流程,因此批准某个版本会启动部署流水线,而关于数据漂移的模型监控警报则会启动重新训练,并注册下一个候选版本。

MLflow 注册表只需几行代码便展示了这一模式。此脚本会训练一个小型 scikit-learn 分类器、注册该模型、将 champion 别名指向新版本,并通过该别名加载模型,这正是模型服务代码查找当前生产模型的方式:

import mlflow
from mlflow import MlflowClient
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression

# Keep runs and registered model versions in a local SQLite file
mlflow.set_tracking_uri("sqlite:///mlflow.db")
X, y = load_iris(return_X_y=True)

# Log a trained model inside a run, then register it as a new version
with mlflow.start_run():
    model = LogisticRegression(max_iter=200).fit(X, y)
    info = mlflow.sklearn.log_model(model, name="model")
version = mlflow.register_model(info.model_uri, "iris-classifier")

# Point the "champion" alias at this version; applications load the alias
MlflowClient().set_registered_model_alias("iris-classifier", "champion", version.version)
champion = mlflow.pyfunc.load_model("models:/iris-classifier@champion")
print(f"version {version.version}:", champion.predict(X[:3]))

在全新的数据库上运行时,脚本会打印 version 1: [0 0 0],即已注册的版本,以及模型对前三种花卉的预测类别。再次运行时,脚本会注册版本 2;相同的 models:/iris-classifier@champion URI 会自动通过别名指向新版本,而加载代码无需任何改动。

  • 实验跟踪:记录每次训练运行,包括许多最终不会使用的运行。注册表只保留值得部署的少数候选模型,并将每个版本关联回相应的运行。
  • 对象存储:Amazon S3 等存储桶负责保存文件。注册表增加了版本、元数据和访问控制,并且通常只在注册表中保存指向存储桶文件的指针。
  • 特征存储:对模型使用的输入特征进行版本管理并提供服务,模型本身则保存在注册表中。
  • 容器注册表:存储运行模型的 Docker 镜像,因此部署通常会指定一个镜像标签和一个模型版本。
  • Hugging Face Hub:通过 Git 仓库托管公开和私有模型,提供提交历史,并在每个仓库首页展示模型卡,因此它也是开放权重模型的注册表。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来