# 制造业算法开发与模型管理平台 V1.0 用户故事

> 文档定位：说明平台为什么建设、服务哪些人、解决什么问题，以及 V1.0 必须形成哪些可验收的业务结果。
>
> 适用范围：仅适用于 V1.0。后续版本能力不得作为本版本的默认前提。
>
> 阅读建议：业务负责人和新成员先读第 1-5 节，快速理解目标、边界、角色与对象；需要按场景确认价值和异常时再读第 6-8 节。第一次阅读建议先看 [00-V1.0快速阅读指南](00-V1.0快速阅读指南.md)。

## 1. 建设背景

制造业算法项目通常由数据准备、算法包交付、模型训练、独立评测、模型发布和业务使用等多个环节组成。当前需要解决的核心问题不是单个训练工具是否可用，而是这些环节缺少统一的对象、版本、状态和证据链：

- 数据文件、标签、数据版本和使用范围缺少稳定标识，训练后难以确认实际使用了哪批数据。
- 算法代码、依赖、运行入口和训练参数分散保存，环境变化后难以复现。
- 训练产物通过文件传递，权重版本与训练任务、数据版本、算法包之间的关系容易丢失。
- 模型效果由开发人员自行说明，测试数据是否独立、指标口径是否一致缺少强制约束。
- 发布依赖人工核对聊天记录和文件，难以证明发布的就是被评测和审批的版本。
- 下载和 API 使用缺少统一授权、凭证、运行保护、调用日志和下线控制。

V1.0 的目标是建立一条可真实运行、可追溯、可阻断、可审计的最小闭环，而不是建设完整的算法研发云平台。

## 2. 产品目标

### 2.1 核心目标

1. 让外部准备好的数据和算法材料能够进入平台，并形成不可变、可引用的正式版本。
2. 让训练任务固定引用数据版本、算法包版本、参数和资源规格，保证结果可追溯。
3. 让模型权重在模型管理中正式登记，区分平台训练权重和外部训练权重。
4. 让正式评测使用独立测试数据并执行重叠、泄漏检查，技术结论有规则、有证据。
5. 让技术评测和推理冒烟成为发布申请的前置条件，发布审批绑定固定快照。
6. 让模型能够以下载包或单实例 API 两种方式受控发布和使用。
7. 让用户、模块权限、关键操作和文件访问均可审计。

### 2.2 成功判定

V1.0 验收时应能完成以下结果：

- 从外部已标注数据导入开始，形成经过解析、模板校验、质量检查并冻结的数据版本。
- 从模型管理登记并冻结算法包，使用该算法包和冻结数据版本创建并运行单机训练。
- 将训练权重登记为冻结模型版本，并使用独立测试数据完成技术评测。
- 对同一冻结权重完成推理冒烟、发布申请、人工发布审批和发布执行。
- 已发布模型可在模型广场被检索；下载型模型可受控下载，API 型模型可授权调用。
- 任一发布记录能够反向追溯到权重、训练任务、算法包、数据版本、评测报告和审批快照。

成功标准不虚构具体服务器数量、交付天数、当前审批耗时或算法指标阈值。产品正确性和最低非功能门槛以`02-功能需求.md`为准；业务效率改善目标必须先采集当前基线，再由业务负责人确认。

## 3. V1.0 边界

### 3.1 本版本包含

- 数据集、数据模板、外部数据接入、解析记录、质量检查、冻结版本和切分结果管理。
- 模型资产、算法包上传与校验、算法包版本冻结、平台训练权重登记和外部权重导入。
- 训练实验、提交前检查、单机 CPU/GPU 规格申请、训练执行、日志指标和产物确认。
- 评测任务、测试数据独立性检查、技术规则、指标评测、样例推理、稳定性与资源评测、评测结论。
- 推理冒烟、固定快照发布申请、人工发布审批、下载型发布、单实例 API 部署和服务生命周期。
- 模型广场中的已发布模型检索、事实展示、下载入口和 API 使用入口。
- 登录、用户、一级模块权限、登录日志和关键操作审计。

### 3.2 本版本不包含

- 工作台、统一待办中心和个人资产聚合。
- 平台内代码开发、Notebook、可视化编排、算法组件市场。
- 平台内数据加工、标注和复核作业。
- 多节点或 NPU 训练、自动参数搜索、断点恢复、自动重试。
- 独立资源管理中心、节点登记、资源池管理、人工资源审批、人工分配、退回、续期和释放流程。
- 业务效果确认、灰度发布、蓝绿发布、多实例伸缩和自动回滚。
- 模型反馈闭环、漂移监控、自动重训练和自动迭代。

## 4. 参与角色

| 角色 | 核心责任 | 主要结果 | 明确不负责 |
|---|---|---|---|
| 数据工程师 | 建立数据集，本地上传结构化 CSV/JSON 或首批已标注图片、音频、视频及其标签清单后确认字段形成模板快照，处理解析和质检问题，冻结并切分数据版本 | 可供训练或评测引用的数据版本与切片 | 预先创建独立模板、远程数据源接入、平台内标注、算法训练、发布审批 |
| 算法工程师 | 创建和维护训练所需的数据集草稿、接入数据，提交算法包，创建训练实验，申请标准算力，运行训练，确认产物并登记权重 | 可追溯的数据集草稿、算法包版本、训练任务和冻结权重版本 | 数据集正式启停治理、修改评测结论、批准自己的发布 |
| 评测工程师 | 选择独立测试数据，执行独立性检查和技术评测，生成技术结论 | 绑定权重、数据、规则和环境的评测报告 | 发布审批、业务效果确认 |
| 模型负责人 | 维护模型说明、适用范围和发布材料，提交或审批符合职责分离规则的发布申请 | 完整模型资产和发布决策 | 修改已冻结权重或评测报告 |
| 产品经理 | 从业务使用与风险角度审批发布申请，可承担发布审批职责 | 有明确依据的通过或拒绝结论 | 替代技术评测 |
| 模型运营人员 | 执行获批发布、维护下载信息、部署单实例 API、管理调用授权和服务生命周期 | 可下载模型或可调用 API 服务 | 绕过准入和审批直接发布 |
| 业务用户 | 检索已发布模型，查看适用范围，下载或申请 API 调用 | 合规获得模型使用能力 | 查看未发布模型和内部源代码 |
| 系统管理员 | 管理账号、一级模块权限、登录安全和审计查询 | 全模块全操作权限及可追溯操作记录，可独立完成发布全流程 | 绕过准入、冒烟、审批快照、状态或审计 |

“模型负责人”“产品经理”“模型运营人员”可以由同一组织中的不同人员承担。系统必须按账号和当前职责校验发布提交、审批与执行权限；普通账号的发布申请提交人不得审批自己的申请，且申请、审批、执行三账号须两两不同；有效 Admin 可兼任三类主体，但仍须通过账号有效性、业务准入、固定快照和审计校验。

V1.0 不设置“资源管理员”业务角色。执行环境和标准资源规格由部署配置提供，不通过产品页面维护服务器、节点或资源池。

## 5. 核心对象关系

```mermaid
flowchart LR
    A["外部数据与标签"] --> B["导入批次"]
    B --> C["待处理数据快照"]
    C --> D["质量报告"]
    D --> E["冻结数据版本"]
    E --> F["训练/验证切片"]
    E --> G["独立评测数据版本或切片"]

    H["算法包草稿"] --> I["冻结算法包版本"]
    E --> J["训练实验"]
    F --> J
    I --> J
    J --> K["训练任务"]
    K --> L["冻结权重版本"]

    G --> M["评测任务"]
    L --> M
    M --> N["技术评测报告"]
    L --> O["推理冒烟结果"]
    N --> P["固定快照发布申请"]
    O --> P
    P --> Q["发布审批"]
    Q --> R["下载型发布记录"]
    Q --> S["单实例 API 服务"]
    R --> T["模型广场"]
    S --> T
```

## 6. 核心用户故事

### 6.1 准备可用数据

**作为数据工程师，我希望将外部已经标注的数据导入平台，经过解析、校验和质量检查后冻结为正式版本，以便训练和评测引用的是明确且不可被改写的数据。**

验收条件：

- 每个数据集固定一种数据类型，并绑定明确的数据模板版本。
- 每个导入批次只包含一种数据类型，记录来源、文件清单、校验和、模板版本和操作人。
- V1.0 只接收外部已标注的图片、音频或视频，不提供平台内标注。
- 导入成功只代表文件进入待处理区，不代表已经形成可用数据版本。
- 阻断问题必须修复后重新导入；警告是否允许放行由质量规则定义，允许放行时必须填写原因并记录确认人和时间。
- 解析、模板校验和质量检查完成后才能冻结版本。
- 冻结版本包含样本清单、数据指纹、来源批次、模板快照和质量报告，冻结后不可修改。
- 数据内容、结构或标签发生变化时必须生成新版本。

### 6.2 建立训练和评测切片

**作为数据工程师，我希望对冻结数据版本生成可追溯的训练、验证和测试切片，并为正式评测提供满足独立性要求的测试数据，以避免数据泄漏。**

验收条件：

- 切分方案记录来源版本、切分方法、时间边界或分组键、随机种子和样本清单。
- 同一原始样本及其派生片段不得跨训练数据和独立测试数据。
- 训练内部测试切片不自动等同于正式评测数据。
- 正式评测必须选择明确的数据版本或切片，并与训练实际使用的全部样本执行重叠和泄漏检查。
- 切分结果生成后不可原地修改；规则变化应生成新的切分结果。

### 6.3 登记并冻结算法包

**作为算法工程师，我希望在模型管理中上传算法包并完成技术校验和版本冻结，以便训练只使用平台已登记、可运行、可追溯的算法输入。**

验收条件：

- 算法包草稿记录包文件、版本说明、训练和推理入口、输入输出契约、语言与框架版本、依赖和最小运行样例。
- 基础校验检查格式、大小、压缩完整性、目录结构、入口文件和校验和。
- 完整校验检查依赖解析、入口加载、输入输出、标准环境兼容性、安全要求和最小执行。
- 校验失败保留报告并允许上传新草稿，不能生成可训练的正式版本。
- 完整校验通过后，在模型管理中创建或关联模型资产并登记冻结算法包版本。
- 冻结算法包版本不可覆盖，训练实验只能引用冻结版本。
- 算法包中的源代码仅上传者和获授权人员可访问，不因模型广场发布而公开。

### 6.4 创建并运行训练

**作为算法工程师，我希望固定选择数据版本、切片、算法包、参数和标准资源规格来创建训练任务，并能查看排队、日志、指标和结果，以便训练过程可复现。**

验收条件：

- 实验草稿可以编辑；提交后固定数据版本、切片、算法包、参数、环境和资源申请快照。
- 提交前检查版本状态、输入契约、参数类型、权限、环境兼容性和资源条件。
- 检查存在阻断项时不得创建可执行训练任务。
- 调整已提交任务的参数时，应复制为新任务，不修改原任务。
- 资源申请只选择部署环境提供的单机 CPU/GPU 标准规格，不允许选择物理服务器、节点或资源池。
- 合法申请由系统自动审批；自动审批通过不表示资源已经关联或就绪。
- 启动前由执行端检查真实环境、容量、资源关联和有效状态；不足时保持等待或明确失败原因。
- 支持取消排队、停止运行和从失败任务复制后重新发起；不支持暂停恢复、断点恢复或自动重试。
- 训练成功、产物校验和权重登记是三个独立结果，权重登记失败不得篡改训练执行结果。

### 6.5 登记训练权重或外部权重

**作为算法工程师，我希望把训练成功的权重登记为模型资产下的冻结版本，也能导入外部训练权重，以便后续评测和发布围绕统一对象进行。**

验收条件：

- 平台训练权重绑定数据版本、切片、算法包版本、训练任务、参数、环境和产物校验结果。
- 外部权重候选须填写原始来源、提供者、运行材料和环境说明；文件服务留存完整文件后生成可信文件校验和，用户不得手工填写。
- 外部权重不得伪造平台训练任务编号；缺少平台训练编号本身不应被判定为错误。
- 外部权重和平台训练权重都必须先登记为冻结权重版本，再进入评测和发布流程。
- 已登记冻结权重不得被同名文件覆盖；新文件必须生成新版本。

### 6.6 完成独立技术评测

**作为评测工程师，我希望对指定冻结权重和独立测试数据执行统一技术评测，以便发布结论具有可重复验证的证据。**

验收条件：

- 评测任务固定权重版本、测试数据版本或切片、规则快照、环境和资源申请快照。
- 系统对测试数据与训练实际使用数据执行样本重叠和泄漏检查。
- 独立性检查不通过时阻断评测，并展示问题样本或可定位的明细。
- 评测资源同样采用标准规格、系统自动审批和执行端就绪检查，不产生人工资源审批任务。
- 技术指标、样例推理、边界验证、稳定性和资源消耗结果均绑定本次任务。
- 指标阈值、计算方向和报告有效期来自评测规则，不在用户故事中写死。
- 评测失败可基于原配置生成新任务，历史任务和报告保持只读。
- 评测工程师生成技术通过或不通过结论，但不执行发布审批。

### 6.7 提交和审批发布

**作为模型负责人，我希望在技术评测和推理冒烟都通过后提交固定快照的发布申请，由有资格的审批人作出决定，以确保实际发布内容与证据一致。**

验收条件：

- 发布申请前必须完成技术评测、产物完整性校验和目标方式对应的推理冒烟。
- 发布申请固定权重版本、发布方式、产物摘要、评测报告、冒烟结果、适用范围和使用限制。
- 任一前置结果未通过、失效或与权重版本不一致时，禁止提交申请。
- 模型负责人、产品经理或有效 Admin 可审批。普通账号的申请、审批、执行三主体两两不同；有效 Admin 可兼任，但不得绕过账号有效性、准入、冒烟、固定快照和审计。
- 拒绝必须填写原因；重新提交应生成新申请并保留历史。
- 审批通过不等于发布完成；执行发布前再次校验审批快照。
- 权重版本、发布方式或产物摘要变化后，原审批失效并须重新申请。

### 6.8 发布下载型模型

**作为模型运营人员，我希望把获批的固定权重及运行材料发布为可下载资产，以便业务用户在明确条件下获取和使用。**

验收条件：

- 下载发布只使用获批快照中的权重和产物。
- 发布申请前在约定环境完成可运行验证，并完成用途、环境、依赖、适用范围、限制和使用示例；申请提交后这些内容随快照冻结。
- 发布成功生成独立发布记录和受控下载入口。
- 下载前检查模型状态和用户权限，并记录下载人、版本和时间。
- 下线后停止新增下载，但保留历史发布和下载记录。

### 6.9 发布单实例 API

**作为模型运营人员，我希望将获批权重部署为单实例 API 服务，完成健康验证后开放调用，以便业务系统通过受控凭证使用模型。**

验收条件：

- 服务部署固定使用一个权重版本和一种单机 CPU/GPU 标准规格；实际执行资源须在部署启动前由执行端确认就绪。
- 正式服务资源申请由系统自动审批，部署前仍须检查实际资源关联和就绪状态。
- 部署成功不等于服务已发布；必须通过健康验证并再次复核发布审批快照。
- V1.0 提供同步和异步 REST JSON 推理，但仍只部署单实例，不提供多实例、灰度或蓝绿发布。
- 图片和小型结构化数据默认同步处理；视频、较大媒体、显式选择异步或预计超过 30 秒的请求直接异步受理。
- 同步请求达到 30 秒仍未完成时返回原请求标识和“已受理/处理中”状态，后台继续执行；调用方通过该标识查询，不重复提交。
- 同一调用方在有效窗口内重复使用同一幂等键时返回原请求状态或结果，不重复执行，也不重复计入成功调用统计。
- 图片、音频或视频先上传为绑定调用方的受控文件标识，再用于推理请求。
- API 不接受任意本地路径或外部 URL。
- 每次进入网关的请求均生成调用日志；只有同步或异步请求最终成功后才计入成功调用统计，受理、处理中、查询、鉴权失败、参数错误、限流、平台失败和平台超时均不计入成功统计。
- “已受理”和“处理中”只能查询原请求；只有明确失败的请求允许复制原配置创建新的测试记录，原记录保持只读。
- 服务停止可恢复；服务下线关闭调用入口并停止实例，保留历史。V1.0 不提供资源释放流程。

### 6.10 管理 API 调用授权

**作为模型运营人员，我希望为具体业务应用创建授权和 API Key，并控制授权范围、期限、运行保护、启停、重生成和吊销，以便调用可控且可追踪。**

验收条件：

- 授权绑定应用、负责人、工厂、产线/设备、服务、用途和期限；期限支持天、月、年，最小单位为天。
- API Key 由服务端生成，明文只在创建或重生成成功时展示一次。
- 系统仅保存不可逆摘要，日志、页面和导出均不得再次显示明文。
- 重生成后旧 Key 立即失效，但不延长授权期限，也不清空累计调用统计。
- 停用可以恢复；吊销不可逆。
- 每次调用校验服务状态、授权状态、Key、期限、应用范围、运行保护和受控文件标识权限。

### 6.11 在模型广场使用模型

**作为业务用户，我希望只看到已经发布且当前可用的模型事实，并根据发布方式下载模型或申请 API 使用，以便不会误用候选版本。**

验收条件：

- 模型广场只读取模型管理中的已发布记录，不创建另一套模型、版本或发布状态。
- 展示名称、用途、适用场景、限制、发布版本、发布方式、评测事实和使用说明。
- 下载入口仅针对有效下载型发布；API 入口仅针对有效 API 服务。
- 模型下线后不再提供新增下载或调用入口，但可按权限展示历史状态。
- 调用授权在模型管理中处理，模型广场只提供入口和结果查看。

### 6.12 管理账号、权限和审计

**作为系统管理员，我希望管理账号和一级模块访问权限，并查询登录与关键操作记录，以便平台访问受控且责任可追溯。**

验收条件：

- 账号支持创建、编辑、批量导入、启用、停用、密码重置和解除临时锁定。
- 连续登录失败达到配置阈值时临时锁定；具体次数和时长应配置，不在故事中固化。
- 停用账号后阻止新登录并使现有会话失效，但保留该用户创建的资产和历史任务。
- V1.0 只配置一级模块访问权限，不提供租户、组织、部门、对象、数据范围或按钮级权限。
- 后端必须执行权限校验，前端隐藏按钮不能替代后端授权。
- 登录、冻结、提交、停止、评测结论、发布审批、发布、下线、凭证操作和文件下载均写入审计。
- 审计记录只读；留存和归档期限由业务与研发确认后配置。

## 7. 关键异常故事

| 异常 | 系统必须采取的处理 | 用户出口 |
|---|---|---|
| 导入文件部分失败 | 保留成功和失败明细，不生成虚假的完整成功结论 | 修正失败文件并创建新批次 |
| 质检存在阻断项 | 禁止冻结版本，定位规则和问题样本 | 外部修正后重新导入或重新质检 |
| 冻结后发现数据错误 | 不允许直接修改原版本 | 创建新导入批次和新数据版本 |
| 算法包校验失败 | 保留报告，不创建冻结版本 | 修改包后上传新草稿 |
| 自动审批校验失败 | 不生成“已审批通过”记录 | 修正申请草稿或重新发起 |
| 自动审批通过但资源不足 | 不启动任务，不显示为就绪 | 等待执行资源或选择其他标准规格重新申请 |
| 训练失败 | 保留日志、输入快照和失败原因 | 复制为新任务后重新发起 |
| 权重登记失败 | 保留训练成功结论，单独记录登记失败 | 修复登记材料后重新登记 |
| 测试数据不独立 | 阻断评测并展示重叠或泄漏证据 | 更换测试数据后创建新评测任务 |
| 技术评测不通过 | 生成不通过报告，禁止提交发布 | 返回优化后登记新权重并重新评测 |
| 冒烟失败 | 禁止提交发布申请 | 修复运行材料或生成新权重后重新冒烟 |
| 审批拒绝 | 保留拒绝原因和申请快照 | 修正材料后新建发布申请 |
| 发布执行时快照变化 | 终止发布，不沿用旧审批 | 对新快照重新评测、冒烟或审批 |
| API 资源失效 | 禁止部署或停止新增调用 | 重新申请资源并完成健康验证 |
| API Key 泄漏 | 支持立即停用、重生成或吊销 | 使用新 Key，历史调用继续保留 |

## 8. 正式规则与环境验证项

以下数值和行为已作为 V1.0-R5 正式规则进入研发与原型；开发联调或上线前仍须用真实环境验证，不能因尚未联调而改回空白配置：

- 首批支持的任务类型、媒体格式、标签格式和成功/失败样例。
- 数据文件边界为单文件 2GB、单批次 20GB/10000 文件、解压后 50GB；算法包和权重还须验证真实封装与加载样例。
- API 单请求 100MB、视频 5 分钟、同步等待 30 秒；大输入或预计超时请求异步受理，超时查询原请求。
- 评测报告有效 90 天；各任务指标、阈值和计算方向随规则版本固化。
- 使用四类单机 CPU/GPU 规格；个人同时运行 2、平台批处理并发 8；资源等待 30 分钟。
- 模型文件安全扫描引擎、隔离方式和失败处置。
- 连续登录失败 5 次锁定 10 分钟，无操作 30 分钟退出；审计在线查询 180 天、默认近 90 天；容量在 70%/85%/95% 告警。

补充业务约束：跨模块引用只授予当前流程所需的只读能力，不改变对象所属模块的管理权限；数据版本由用户明确选择成功批次组成，部分成功批次终态只读，须复制为关联新批次，重新选择本次拟纳入的全部文件（含原成功文件与修正后的失败文件）并提交，成功后方可选择，合并时按样本标识和文件指纹去重并阻断冲突；资源等待、停止确认和外部权重证据不足均必须有明确阻断或退出结果；发布证据过期后不得继续新增使用；API 运行保护、调用日志和成功调用统计规则必须可审计。
