跳到主要内容

模型管理

这个功能解决什么问题

训练产出的 .pt 文件只是一个权重快照,离真正能拿去推理还有一段距离。同一个架构会被反复训练多次,每次训练又可能导出 ONNX、TensorRT 等不同推理格式。如果没有清晰的组织方式,很快就会陷入一堆名字差不多的文件里,找不到该用哪个。

模型管理模块用三层结构把这件事理顺:把同一架构同一任务类型的多次训练归到一个「模型系列」下,每次训练是一个不可变「版本」,每个版本下又能挂多个不同格式的「制品」。检测、主动学习、标注这些消费方都绑定到具体制品,不直接绑定模型本身。

三层模型体系

Model → ModelVersion → ModelArtifact
  • Model(模型系列):项目内同一架构 + 同一任务类型的容器。例如 Yolov26n-Det 是一个 Model,多次训练累积在它下面。
  • ModelVersion(版本):一次训练产出的不可变快照。版本一旦发布,训练超参、数据集版本、汇总指标都不能再改。
  • ModelArtifact(制品):版本下的可执行产物。.pt 是训练格式,ONNX、TensorRT、NPU 是推理格式,导出一次就多一个 Artifact。
三层模型体系
图1:Model 系列下挂多个 Version,每个 Version 下挂多个 Artifact

模型来源

模型系列有两种产生方式:

  • 训练自动注册:训练任务完成并发布后,系统按 (项目, 任务类型, 架构, 来源=training) 匹配键查找已有 Model,找到就追加新版本,找不到就创建新 Model。同一架构多次训练始终累积在同一系列下,不会每次都新建。
  • 手动上传 .pt 文件:直接在模型管理页面上传已经训练好的权重。上传等同于立即发布,没有 draft 阶段。适合拿外部训练好的模型直接接入平台。
训练完成默认不发布

训练任务完成后,产物先进入「待发布」状态(completed_pending_registration)。需要你在训练详情面板里点「发布」按钮,把它注册为某个 Model 下的新 Version,才会出现在模型管理列表里。未发布的 draft 可以单独在检测页测试,详见模型测试与检测

模型命名规则

自动生成的模型名

训练自动注册的模型名格式是 {架构}-{任务类型},例如:

  • Yolov26n-Det(YOLOv26n 检测模型)
  • Yolov8s-Seg(YOLOv8s 分割模型)
  • Yolo11m-Pose(YOLO11m 姿态模型)

任务类型缩写:Det(检测)/ Seg(分割)/ Pose(姿态)/ OBB(旋转框)。

名称里不再追加训练任务名和 _best 后缀。模型是「系列」概念,名称稳定不变。

如果默认命名不符合团队习惯,可以在模型详情头部 hover 模型名称,出现铅笔图标后点击进入 inline 编辑,回车保存,Esc 取消。

模型详情页布局

进入某个模型后,看到的是「版本中心化」布局:

模型详情页布局
图2:版本下拉选择器 + 3 个子 Tab

页面元素:

  • 头部 5 张卡片:版本数、总参数量、预估内存、可剪枝模块、总模块数。这些是模型级事实,不随版本切换变化。
  • 副标题行:模型大小、更新时间、版本数。
  • 版本下拉选择器:切换查看不同版本,下方子 Tab 内容跟着切换。
  • 3 个子 Tab
    1. 总览:当前版本的 mAP 等汇总指标、超参快照、数据集版本信息。
    2. 训练:来源训练任务的详情、results.csv 指标曲线。
    3. 制品导出:该版本下的所有 Artifact(.pt / ONNX / TensorRT / NPU),从这里发起导出,详见模型导出
头部不显示版本级 mAP

头部 5 张卡片是模型级聚合数据。如果你想看某个具体版本的 mAP、精度、召回率,请切到「总览」子 Tab,那里展示版本级的训练汇总。

发布版本

一个 Model 下可能有多个 Version,但运行时消费方(检测、主动学习、标注 AI 流程)需要一个稳定的「默认指向」。

什么是发布版本

发布版本(default_version_id)就是模型系列里被标记为「当前生产使用」的那个版本。在模型详情页通过「设为发布版本」操作切换。

任一时刻每个 Model 有且仅有 1 个发布版本 + 0~N 个归档版本。设新发布版本时会自动把旧的发布版本归档,不需要手动操作。

归档不删除 S3 文件

归档版本只把状态置为 archived,权重和导出文件都还在。如果之后需要恢复,重新把它设为发布版本即可。

模型操作入口

模型详情头部提供两类操作:

  1. 重命名模型

    把鼠标移到模型名称上,右侧会出现铅笔图标,点击进入 inline 编辑模式。回车保存,Esc 取消。新名字会同步到所有展示位置。

  2. 删除模型

    点头部的 菜单,选「删除模型」。会先弹出确认对话框,展示完整影响清单:

    • 该模型下的版本数
    • 关联的训练任务数

    确认后系统会遍历所有版本下的 Artifact,删除对应的 S3 物理文件,然后级联清理。关联的训练任务、检测任务、标注批次通过外键 ON DELETE SET NULL 自动解除引用,不会阻断删除。

删除不可恢复

删除模型会物理清除所有版本的权重和导出文件。关联的训练任务会变成「无输出模型」状态,但任务记录本身保留。删除前的影响清单会列出全部关联,请仔细确认后再点确认。

字段说明

字段类型必填默认值说明
模型名称文本必填自动生成或手动编辑,格式建议 `{架构}-{任务类型}`,例如 Yolov26n-Det。
版本数只读可选该 Model 下所有 Version 的总数,包括发布版本和归档版本。
总参数量只读可选模型网络参数总量,影响推理时的显存占用。
可剪枝模块 / 总模块数只读可选可用于结构化剪枝的模块占比,便于评估模型压缩空间。
发布版本标记可选当前被设为默认版本的那个 Version,运行时消费方默认指向它。

常见问题

为什么训练完成后看不到新模型

训练完成默认进入「待发布」状态。需要去训练 Tab 的详情面板里点「发布」按钮,把它注册为 Model 下的 Version 之后,才会出现在模型管理里。如果想先测试再决定发不发布,可以用训练详情里的「测试此 draft」入口。

同一架构训练多次会创建多个模型吗

不会。匹配键是 (项目, 任务类型, 架构, 来源=training),同一项目里同架构同任务类型的多次训练,都会累积到同一个 Model 下作为新 Version,不会重复创建系列。不同架构(比如 yolov8nyolov26n)各自独立成 Model。

删除模型后训练任务会消失吗

不会。训练任务记录本身保留,只是 output_model_id 被置空,状态显示为「无输出模型」。删除的是模型制品文件和 Model / Version / Artifact 数据库行,不级联删除训练任务。

怎么快速回到上次看的版本

版本下拉选择器会记住你最近一次选过的版本。下次进入同一个模型详情时,默认就停在那个版本上,不用每次重新翻。