制造业算法开发与模型管理平台 V1.0 用户旅程

文档定位
========

本文件从真实用户协作角度说明 V1.0 如何从数据进入平台，经过算法包登记、
训练、权重登记、独立评测、冒烟、发布审批，最终形成可下载模型或单实例
API 服务。

旅程不绑定现有 HTML 文件名，不预设服务器型号、处理天数、审批秒数、指标
阈值或报告有效期。原型页面应根据旅程需要设计，不能反过来改变业务流程。

阅读建议
========

第一次阅读先看“二、全链路总览”，再在“三、主旅程”中查找自己负责的阶段；
出现失败、阻断或跨角色交接问题时，再查看“四、异常旅程”和“五、跨角色交接物”。
平台范围和文档导航见“00-V1.0快速阅读指南.md”。


一、角色
========

数据工程师
  负责数据集、模板、导入、解析问题、质量检查、版本冻结和切分。

算法工程师
  负责算法包材料、训练实验、标准算力申请、训练执行、结果确认和权重登记。

评测工程师
  负责独立测试数据选择、独立性检查、技术评测和技术结论。

模型负责人
  负责模型信息、适用范围、使用限制和发布材料，可以提交发布申请。

产品经理
  从业务适用性和发布风险角度审批发布申请。

模型运营人员
  执行下载型发布或 API 部署，管理服务、调用授权和凭证。

业务用户
  在模型广场检索并使用已发布模型。

系统管理员
  管理账号、一级模块权限和审计查询。

V1.0 不设置资源管理员。服务器、节点和资源池不由产品页面维护。


二、全链路总览
==============

外部已标注数据
  -> 建立数据集草稿
  -> 上传本地文件并完成文件校验
  -> 抽样识别字段并确认模板
  -> 后台全量解析和全量模板校验
  -> 质量检查
  -> 冻结数据版本
  -> 生成训练、验证和测试切片

算法包
  -> 在模型管理上传草稿
  -> 基础校验
  -> 维护运行声明
  -> 完整技术校验
  -> 登记冻结算法包版本

训练
  -> 创建训练实验
  -> 选择冻结数据版本、切片和冻结算法包版本
  -> 提交前检查
  -> 选择单机 CPU/GPU 标准规格
  -> 资源申请绑定实验草稿修订并由系统自动审批
  -> 最终检查后创建训练任务并绑定已审批申请
  -> 执行端检查实际资源并就绪
  -> 排队、运行、查看日志和指标
  -> 成功且产物完整时自动登记冻结权重版本
  -> 确认结果和保留产物；登记冲突时人工核对并补偿

评测
  -> 选择冻结权重和正式测试数据
  -> 检查测试数据与训练数据的重叠和泄漏
  -> 系统自动审批评测资源申请
  -> 执行端检查隔离环境和实际资源
  -> 执行指标、样例、稳定性和资源评测
  -> 生成技术报告和通过/不通过结论

发布
  -> 对目标发布方式执行推理冒烟
  -> 复核评测、冒烟、产物和说明材料
  -> 提交固定快照发布申请
  -> 模型负责人、产品经理或有效 Admin 按职责规则审批
  -> 按审批快照执行下载发布或 API 部署
  -> 发布记录同步到模型广场

使用
  -> 检索已发布模型
  -> 查看适用范围、限制和评测事实
  -> 下载模型，或申请 API 调用授权
  -> 使用 API Key 和受控文件标识调用服务


三、主旅程
==========

3.1 准备数据
------------

参与者：数据工程师

起点：
  用户已经获得平台外部准备好的数据和标签，希望用于训练或正式评测。

步骤 1：建立数据集
  用户进入数据集管理，填写名称、数据类型、业务用途、来源说明、制造对象、
  负责人和保留说明，先保存数据集草稿，不选择初始模板。

  系统检查：
  - 用户拥有数据管理模块权限。
  - 名称在当前可见范围内唯一。
  - 数据类型有效；模板不在此步骤选择。

  成功结果：
  - 生成数据集草稿。
  - 数据类型固定。
  - 提供本地文件上传入口。

步骤 2：上传本地文件并确认字段模板
  用户进入数据接入，从本机选择 JSON / CSV 文件。系统先校验文件数量、大小、格式
  和完整性；大文件分片上传后抽样识别实际字段和基础类型。用户选择纳入模板的字段，
  并确认类型、必填性和字段用途。

  系统行为：
  - 超过10MB的文件按16MB分片上传，支持断点续传。
  - 浏览器最多读取前2MB、200条样本用于字段识别，抽样结果不代表全量解析完成。
  - 至少保留一个主键或主文件字段。
  - 确认后生成与本次上传绑定的不可变模板快照，随后在后台执行全量解析和全量模板校验。
  - 已被数据版本引用的模板快照保持只读。

步骤 3：等待后台完成全量解析
  用户提交字段模板后可以离开页面，系统继续处理完整文件。批次详情持续展示上传、
  解析和模板校验状态；完整解析完成前，质量检查入口保持不可用。

  系统检查：
  - 每个批次只包含一种数据类型。
  - 目标数据集有效；字段模板已由本批次解析结果确认生成。
  - 图片、音频或视频与标签、样本清单能建立对应。
  - 文件类型、大小和安全校验通过。
  - 全量记录均按已确认模板完成字段类型、必填项和结构校验。

  成功结果：
  - 生成导入批次。
  - 保存文件清单、上传摘要、解析规则和校验和。
  - 全量解析和模板校验完成后形成待处理数据快照。

  重要提示：
  导入成功只表示材料进入平台，不代表已经形成可训练的数据版本。

步骤 4：执行模板校验和质量检查
  用户对待处理数据快照选择质量规则并提交任务。

  系统反馈：
  - 独立显示任务执行状态和质量结论。
  - 按通过、阻断和警告展示检查项。
  - 问题定位到字段、文件、标签或具体样本。

  用户处理：
  - 阻断问题必须在外部修正后重新导入。
  - 只有规则允许的警告才能填写原因后确认。
  - 系统记录警告确认人、原因和时间。

步骤 5：冻结数据版本
  用户确认解析完成、无阻断问题、警告已处理、样本清单和指纹完整后提交冻结。

  系统成功结果：
  - 生成新的正式数据版本。
  - 固定来源批次、模板快照、质量报告、样本清单和数据指纹。
  - 版本变为只读。

  用户下一步：
  - 设置为后续训练基线。
  - 创建训练、验证和测试切片。
  - 作为正式评测数据候选。


3.2 生成数据切片
----------------

参与者：数据工程师

步骤 1：配置切分
  用户选择冻结数据版本，根据数据特征选择时间、比例或同源分组切分，并配置
  边界、比例、随机种子或分组键。

步骤 2：执行切分
  系统异步生成训练集、验证集和测试集，保存每个集合的样本清单。

步骤 3：检查结果
  系统检查集合互斥性，以及同一原始样本和派生样本是否跨训练集合与独立测试
  集合。

成功结果：
  - 生成只读切片。
  - 保存来源版本、规则、样本数和样本清单。

边界：
  训练过程使用的测试切片不自动成为正式独立评测数据。正式评测创建时仍需
  对测试数据与训练实际样本执行重叠和泄漏检查。


3.3 登记算法包
--------------

参与者：算法工程师

起点：
  用户在平台外完成算法开发，准备把可训练和可推理的算法材料交给平台。

步骤 1：上传算法包草稿
  用户进入模型管理，选择或创建模型资产，上传算法包，填写名称和版本说明。

步骤 2：基础校验
  系统检查格式、大小、压缩完整性、目录结构、入口文件、路径安全和校验和。

  失败时：
  - 保留校验报告。
  - 明确列出缺失或异常文件。
  - 不允许进入完整校验。

步骤 3：维护运行声明
  用户填写训练入口、推理入口、输入输出契约、语言与框架、依赖、环境要求和
  最小运行样例。

步骤 4：完整技术校验
  系统在隔离环境中检查依赖解析、入口加载、输入输出、标准环境兼容性、安全
  和最小执行。

成功结果：
  - 创建或关联模型资产。
  - 固定包文件和运行声明。
  - 登记不可修改的算法包版本。
  - 该版本出现在训练实验选择器中。


3.4 创建训练实验
----------------

参与者：算法工程师

步骤 1：创建草稿
  用户填写实验名称和说明。

步骤 2：配置输入
  用户选择冻结算法包版本、冻结数据版本、训练和验证切片、运行环境、算法包
  声明允许的参数和随机种子。

步骤 3：配置资源需求
  用户从当前部署环境提供的单机 CPU/GPU 标准规格中选择一种规格，填写预计
  使用时长和原因。

  用户看不到：
  - 物理服务器。
  - 具体节点。
  - 资源池。
  - 人工资源审批人。

步骤 4：执行提交前检查
  系统预检查权限、版本状态、数据与算法契约、参数、环境、拟申请规格和输出目录。
  此时尚未提交资源申请，不要求申请已审批或实际资源已就绪。

  存在阻断项时：
  - 保留实验草稿。
  - 定位具体字段或对象。
  - 不创建可执行训练任务。

步骤 5：提交资源申请
  申请绑定已保存实验草稿及配置修订号。系统校验合法后自动审批通过，记录审批
  方式、时间和申请快照，不要求尚未创建的训练任务编号。

  自动审批通过只说明申请符合规则，不表示资源已分配或可用。

步骤 6：最终检查并提交训练任务
  系统复核配置和申请，通过后创建不可变任务快照并绑定申请。任务初始为待资源，
  创建成功后执行端才检查真实环境、容量、当前任务关联和资源状态。

  可能结果：
  - 就绪：任务可以进入排队或启动。
  - 容量不足：保持等待并显示原因。
  - 状态未知：禁止启动并允许刷新。
  - 环境异常或资源失效：明确失败，用户可复制申请或任务重新发起。


3.5 运行并观察训练
------------------

参与者：算法工程师

步骤 1：提交训练
  用户进入上一步已创建的训练任务。系统已固定输入和申请，不再次创建任务；
  刷新或重复提交返回同一任务，实际资源未就绪时继续等待。

步骤 2：排队
  用户查看当前任务、资源状态和执行端可提供的等待信息。

  用户可以取消尚未运行的任务。预计等待时间无法确定时显示“未知”，不显示
  虚构时间。

步骤 3：运行
  用户查看事件时间线、实时日志、指标卡和曲线。

  用户可以请求停止。系统进入停止中，执行端确认后变为已停止。

步骤 4：完成
  系统分别展示：
  - 训练执行成功或失败。
  - 产物完整性结果。
  - 权重登记状态。

  用户确认结果并保留需要的日志、指标、权重、依赖和配置快照。

步骤 5：调参或重试
  用户从原任务复制配置形成新任务，修改允许的参数后重新提交。

  原任务、日志和结果保持不变。V1.0 不提供自动重试、暂停恢复或断点恢复。


3.6 登记权重
------------

参与者：算法工程师

平台训练权重：
  训练成功且文件级产物完整时，系统按任务输出版本自动登记，固定数据版本、切片、
  算法包版本、训练任务、参数、环境和文件校验和。用户核对结果和保留状态；
  历史任务缺失登记或版本冲突时，核对产物后用未占用的新版本号补偿登记。

外部训练权重：
  用户上传权重和运行材料，填写外部来源、提供者、原始标识和说明。

成功结果：
  - 在模型资产下生成冻结权重版本。
  - 显示平台训练来源链或外部来源证明。
  - 权重可提交评测。

重要边界：
  外部权重没有平台训练任务编号是正常情况。系统不得生成假的训练编号，也不得
  因缺少平台训练编号直接判定来源不完整。


3.7 创建并执行评测
------------------

参与者：评测工程师

步骤 1：选择评测对象
  用户选择冻结权重版本，查看其平台训练来源或外部来源材料、文件和完整性。

步骤 2：选择测试数据
  用户选择冻结测试数据版本或切片。

步骤 3：执行独立性检查
  系统将测试样本与训练任务实际样本比较，检查原始样本、内容指纹、派生关系、
  相邻帧或同源分组。

  通过：
  - 保存检查范围和结果。
  - 允许继续配置评测。

  不通过：
  - 展示重叠数量、泄漏类型和问题样本。
  - 阻断评测提交。
  - 用户必须更换测试数据。

步骤 4：选择评测规则
  系统匹配适用规则。无法唯一匹配时由评测工程师明确选择。

  任务固定规则快照，包括指标、计算口径、方向、阈值和报告有效期。

步骤 5：申请评测资源
  用户保存评测草稿并选择标准规格，申请绑定草稿及修订号。自动审批后完成最终
  提交，生成评测任务并绑定申请，执行端再检查隔离环境和真实资源是否就绪。

步骤 6：执行技术评测
  系统执行技术指标、样例推理、边界验证、稳定性、性能和资源观测。

  页面分别展示任务执行结果和指标达标结果。任务执行成功但指标未达标时，技术
  结论仍为不通过。

步骤 7：生成报告
  报告固定权重、测试数据、独立性结果、规则、环境、资源和评测结果。

  评测工程师生成通过或不通过的技术结论。该结论不是发布审批。


3.8 完成推理冒烟
----------------

参与者：模型负责人、模型运营人员

起点：
  冻结权重已经完成技术评测，准备选择下载型或 API 型发布。

下载型冒烟：
  使用拟发布运行包，在约定环境验证解压、依赖、入口、权重加载和最小推理。

API 型冒烟：
  使用拟部署运行包或镜像，验证启动、健康、输入输出契约和最小推理。

成功结果：
  生成绑定权重、发布方式、运行环境、样例和文件摘要的冒烟结果。

失败结果：
  显示失败阶段和修复建议，不允许提交发布申请。

权重、发布方式或文件摘要变化后，需要重新冒烟。


3.9 提交和审批发布
------------------

参与者：模型负责人、产品经理

步骤 1：发布准入复核
  系统检查权重冻结、产物完整性、技术评测、报告有效性、测试数据独立性、推理
  冒烟、模型说明和文件摘要一致性。

步骤 2：提交发布申请
  全部阻断项通过后，申请人选择发布方式，确认适用范围、使用限制和展示材料。

  系统固定：
  - 权重版本。
  - 发布方式。
  - 产物和文件摘要。
  - 评测报告。
  - 冒烟结果。
  - 使用说明。

步骤 3：审批
  模型负责人、产品经理或有效 Admin 查看固定证据并通过或拒绝。普通账号的
  申请、审批、执行三主体两两不同；有效 Admin 可兼任，但账号有效性、准入、
  冒烟、固定快照和审计仍须全部通过。

  拒绝：
  - 必须填写原因。
  - 当前申请结束。
  - 修正后需提交新申请。

  通过：
  - 允许模型运营人员执行发布。
  - 不直接显示为已发布。

步骤 4：执行前复核
  系统再次比较实际权重、发布方式和文件摘要与审批快照。

  不一致时阻断执行，并要求重新评测、冒烟或申请。


3.10 下载型发布与使用
---------------------

参与者：模型运营人员、业务用户

发布：
  用途、适用场景、环境、依赖、限制和使用示例已在申请前维护并冻结。
  模型运营人员只读预览获批展示内容，确认权重和产物后执行发布。
  需要修改材料时重新申请，不能边修改边沿用旧审批。

  系统生成发布记录和受控下载入口，并将当前有效发布同步到模型广场。

使用：
  业务用户在模型广场按名称、场景、算法类型、业务问题或发布方式检索。

  用户查看当前发布版本、评测事实、适用范围、限制和运行说明后下载。

  系统在下载前校验权限、发布状态和文件状态，并记录下载人、版本和时间。

下线：
  模型运营人员确认影响后下线。系统关闭新增下载入口，保留历史发布和下载记录。


3.11 API 发布与使用
-------------------

参与者：模型运营人员、业务用户

步骤 1：申请正式服务资源
  用户先保存部署草稿，选择单实例标准 CPU/GPU 规格并提交资源申请。申请绑定
  部署草稿及配置修订号，系统自动审批；最终提交部署时创建执行记录，执行端再
  检查资源关联和就绪状态。

步骤 2：配置部署
  用户配置服务名称、获批冻结权重、一个执行资源、同步/异步 REST JSON 输入输出和
  健康检查。

步骤 3：部署
  系统固定部署配置并异步执行，展示进度、日志和结果。

步骤 4：健康验证
  部署成功后执行健康检查。健康通过不自动开放调用。

步骤 5：发布服务
  系统复核发布审批、权重、评测、冒烟、资源、部署和健康结果。全部有效后开放
  服务地址和接口文档，并同步模型广场 API 使用方式。

步骤 6：审批应用接入并签发凭证
  业务用户提交应用、负责人、工厂、产线/设备、用途和授权期限。模型运营人员审批
  应用能否在指定范围和期限内接入服务，不审批单次调用。

  审批通过后创建调用授权，再由服务管理人员签发 API Key。Key 明文只展示一次，
  系统只保存不可逆摘要。授权期限支持天、月、年，最小单位为天。

步骤 7：调用
  结构化输入直接使用 JSON。

  图片、音频或视频先上传，系统返回绑定调用方和服务的受控文件标识；推理请求
  引用该标识。

  调用方提交幂等键。图片和小型结构化数据默认使用同步模式；视频、较大媒体、
  显式异步或预计超过 30 秒的请求直接异步受理。

  系统依次校验：
  - 服务已发布。
  - 授权有效。
  - API Key 有效。
  - 授权和 Key 均未到期，且调用范围匹配。
  - 未触发速率、并发、输入大小或视频时长等运行保护。
  - 文件标识属于当前调用方和服务，且未过期。

  同步请求在 30 秒内成功时返回结果、耗时和请求编号。达到 30 秒仍未完成时，
  返回原请求编号和“已受理/处理中”状态，后台继续执行；调用方使用该编号查询，
  不重新提交。

  异步请求受理后返回请求编号。调用方查询到“处理中”时继续等待，查询到“成功”
  时查看结果或下载产物。相同调用方重复使用同一幂等键时始终返回原请求，不重复
  执行或重复计入成功调用统计，但仍保留可审计的网关访问记录。

  每次进入网关的调用均生成调用日志。系统只在同步或异步请求最终成功后写入一次
  成功调用统计；受理、处理中、查询、鉴权失败、参数错误、限流、平台失败和平台
  超时均不计入成功统计。

  只有状态明确为“失败”的在线测试允许复制原配置并创建新记录；已受理或处理中的
  请求只能查询，原记录和失败原因保持只读。

步骤 8：服务生命周期
  停止服务后拒绝新调用，可以在资源和健康仍有效时恢复。

  下线后关闭调用入口、停止实例并撤下模型广场使用方式，历史部署、授权、调用和
  生命周期记录保留。V1.0 不执行资源释放流程。


四、异常旅程
============

4.1 数据导入部分失败
--------------------

触发：
  同一批次中部分文件损坏、标签无法对应或格式不支持。

系统：
  保存成功和失败明细，批次标记部分成功，不生成正式版本。

用户：
  复制原批次配置，重新选择本次拟纳入的全部文件（含原成功文件与修正后的失败文件），形成关联新批次并重新导入；原部分成功批次只读，不得原地补传或质检。


4.2 数据冻结后发现错误
----------------------

触发：
  冻结版本中的标签或文件被发现有误。

系统：
  拒绝修改冻结内容，显示下游引用。

用户：
  在外部修正后创建新导入批次，重新质检并生成新数据版本。


4.3 资源申请合法但资源不足
--------------------------

触发：
  系统已自动审批申请，但执行端没有满足规格的真实容量。

系统：
  审批状态保持系统自动通过，执行资源状态为等待或不足，禁止任务启动。

用户：
  等待状态变化，或者复制申请选择其他可用标准规格。

不发生：
  不创建资源管理员待办，不显示人工驳回，不让用户选择物理节点。


4.4 训练失败
------------

系统：
  保存固定输入、失败阶段、错误代码、用户可读原因、日志和已有产物。

用户：
  从失败任务复制配置，修改允许的参数或选择新的有效输入后提交新任务。


4.5 权重登记失败
----------------

系统：
  训练执行结果保持成功，权重登记单独标记失败并记录原因。

用户：
  补齐文件、依赖或运行材料；若版本冲突，核对来源后使用未占用的新版本号补偿登记，
  不覆盖既有版本或改写训练执行结论。


4.6 正式测试数据不独立
----------------------

系统：
  展示重叠或泄漏证据并阻断评测。

用户：
  更换数据版本或切片后重新执行独立性检查。

禁止：
  不能填写理由强行放行独立性阻断。


4.7 技术指标未达标
------------------

系统：
  评测任务可以执行成功，但报告结论为不通过，发布准入被阻断。

用户：
  算法工程师产生新训练任务和新权重版本，再由评测工程师创建新评测。


4.8 冒烟失败
------------

系统：
  保存失败阶段和日志，禁止提交发布申请。

用户：
  修复运行包、依赖或接口后，对新的文件摘要重新冒烟。


4.9 发布申请被拒绝
------------------

系统：
  保存审批人、时间和拒绝原因，当前申请进入终态。

用户：
  修改模型说明、适用范围或其他材料后，基于有效评测和冒烟提交新申请。


4.10 审批后文件发生变化
-----------------------

系统：
  执行发布时发现文件摘要与审批快照不一致，立即阻断，不发布新文件。

用户：
  对新文件重新执行完整性校验和冒烟，必要时重新评测，再提交新申请。


4.11 API Key 疑似泄漏
---------------------

模型运营人员可以：
  - 停用 Key，后续可恢复。
  - 重生成 Key，使旧 Key 立即失效。
  - 吊销 Key，永久失效。

重生成不延长授权期限，也不清空累计调用统计。所有动作写入审计。


4.12 API 服务资源失效
---------------------

系统：
  禁止新部署或恢复服务；运行中的服务按实际执行状态标记异常并拒绝不安全调用。

用户：
  重新提交标准资源申请，等待执行资源就绪，重新部署或健康验证。


五、跨角色交接物
================

数据工程师 -> 算法工程师
  冻结数据版本、训练/验证切片、模板快照、质量报告和样本清单。

算法工程师 -> 评测工程师
  冻结权重版本、平台训练来源链或外部来源证明、文件依赖和评测请求。

评测工程师 -> 模型负责人
  独立性结果、技术评测报告、技术结论和报告有效状态。

模型负责人 -> 发布审批人
  冻结权重、评测报告、冒烟结果、发布方式、产物摘要、适用范围和限制。

发布审批人 -> 模型运营人员
  固定审批快照、审批结论和审批意见。

模型运营人员 -> 业务用户
  下载入口或 API 服务、使用说明、授权、凭证和当前服务状态。


六、旅程完成判定
================

一次 V1.0 主旅程只有在以下证据全部可查看时才算完成：

1. 已冻结数据版本及样本清单。
2. 已冻结算法包版本及完整校验报告。
3. 训练任务快照、执行结果和冻结权重版本。
4. 正式测试数据独立性结果。
5. 技术评测报告和技术结论。
6. 对应发布方式的推理冒烟结果。
7. 固定快照发布申请、真实申请/审批/执行账号和职责校验记录。
8. 下载发布记录或单实例 API 服务发布记录。
9. 模型广场中与发布记录一致的展示。
10. 关键动作审计和文件访问记录。

补充交接规则：跨模块交接只传递当前流程所需的只读对象和固定版本；数据批次的补传、去重和冲突处理必须形成可追溯结果。资源等待或停止确认异常时，交接物必须包含当前状态和处理出口。外部权重证据不足不得写成通过，发布证据过期时必须重新检查和准入。API 授权交接必须包含应用范围、期限、运行保护、Key状态和调用日志口径。
