## 1、本组工具链的定位、设计依据与统一约束

本组共 3 类 7 个工具链。七个工具链与适用于 9 类 25 个工具的通用约束共用同一套任务骨架、血缘字段、质量检查节点口径与接口规范，统一在本节给出。质量检查节点指设置在数据生产流程中的检查环节，依据质量规则判断数据是否符合进入后续工序或交付的条件；未通过的不放行至下一环节，按血缘定位回流至具体批次与具体算子修复。中国移动作为本项目的承诺主体，对本组工具链的设计、交付、指标达成与服务期校准负责。

### 1.1 这组工具解决的是哪一类现场问题

前六类工具负责样本生产；本组三类负责判定可用性、定位质量问题，并在发现问题后给出可执行的修订动作。对矿山装备制造这个具体对象，这件事比通用场景更要紧，原因有三条，都来自现场条件而不是方法论。

第一条是借用率高带来的重复与伪多样问题。按订单设计的产品组织方式下，一个实际项目涉及四百张左右图纸，一套完整产品可达五百余张，其中约七八成属于可借用、可对照的既有零件。历史图纸约 63 万张，每张历史上都配有一张已审核签发的工艺卡片，天然构成成对的监督样本。

这个条件对数据集建设是利好，但把它直接灌进训练集会出两种毛病：一是同一零件的多次借用形成大量近重复样本，模型把常见槽宽档位的槽帮件学得很熟，对薄煤层或大采高工作面的非常规件几乎没有见过；二是借用件与原件之间往往只差一两个尺寸字段，若按整篇文本去重会把有价值的变体一并删掉，若不去重则训练集被少数高频零件族占满。去重与相似度过滤工具要同时回答"哪些是真重复"和"哪些是有信息量的近似变体"，这是本组第一个工具的真实任务（b1075）。

第二条是评测集与训练集天然同源带来的泄漏问题。甲方的历史资料集中在同一批设计与工艺文档中，六个专业场景的训练样本与验收样本都要从这批资料里切。若同一批标注样本既用于训练又用于评测，评测结果会系统性偏高，验收时看到的准确率无法反映上线表现。板材备料场景尤为典型：图纸与工艺卡成对，同一零件族的图纸可能同时落入训练与测试两侧，模型其实是在背答案。切分前的泄漏检测与基准集冻结管理，是验收数字可信的前置条件（b1114、b1116）。

第三条是故障与缺陷样本天然稀少带来的分布失衡问题。热处理三级判定中的不合格炉次、焊接十一类缺陷中的低频缺陷、在役装备的事件级故障标签，都属于"后果严重但样本极少"的类别。远程运维平台报警不少，可核对的真实故障标签很少。这类长尾类别若不显式识别、不做均衡处理，模型在整体准确率上看着不错，在真正要它判断的那几种情形上完全不可用。分布分析与均衡工具的作用是把这种失衡在数据层面暴露出来并给出可执行的补齐动作，而不是等模型上线后由现场来发现（b1091、b1093）。

本组工具把数据集质量从「加工过程合规」推进到「可用模型表现验证」，并在发现问题后定位到具体批次与样本。

### 1.2 本组在数据加工主线中的位置与责任边界

本组工具不生产数据，只对数据作判断、切分、受控生成与反向归因。与前两组工具及其他建设内容的分工关系如图 1-1。

### 图 1-1　本组三类工具在数据加工主线中的位置与数据流向

<svg viewBox="0 0 820 400" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs>
    <marker id="g1a" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
      <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker>
    <marker id="g1b" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
      <path d="M0 0 L9 4.5 L0 9 z" fill="#7f1d1d"/></marker>
  </defs>
  <rect x="14" y="18" width="150" height="54" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="89" y="40" text-anchor="middle">源数据与加工产出</text>
  <text x="89" y="59" text-anchor="middle" font-size="12">（前六类工具）</text>

  <rect x="14" y="110" width="150" height="250" rx="6" fill="#ffffff" stroke="#94a3b8" stroke-dasharray="4 3"/>
  <text x="89" y="130" text-anchor="middle" font-size="12">候选数据集池</text>
  <rect x="26" y="142" width="126" height="34" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="89" y="163" text-anchor="middle" font-size="12">预训练语料</text>
  <rect x="26" y="184" width="126" height="34" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="89" y="205" text-anchor="middle" font-size="12">指令微调样本</text>
  <rect x="26" y="226" width="126" height="34" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="89" y="247" text-anchor="middle" font-size="12">偏好对比组</text>
  <rect x="26" y="268" width="126" height="34" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="89" y="289" text-anchor="middle" font-size="12">基准题目</text>
  <rect x="26" y="310" width="126" height="34" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="89" y="331" text-anchor="middle" font-size="12">专家题库</text>

  <path fill="none" d="M89 72 V110" stroke="#334155" stroke-width="1.4" marker-end="url(#g1a)"/>

  <rect x="214" y="110" width="168" height="92" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="298" y="138" text-anchor="middle">质量与分布控制</text>
  <text x="298" y="157" text-anchor="middle" font-size="12">3.2.3.8　去重·污染·均衡</text>
  <text x="298" y="180" text-anchor="middle" font-size="12">产出：洁净集＋治理报告</text>

  <rect x="214" y="226" width="168" height="92" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="298" y="254" text-anchor="middle">生成控制与评测</text>
  <text x="298" y="273" text-anchor="middle" font-size="12">3.2.3.9　模板·切分·冻结</text>
  <text x="298" y="296" text-anchor="middle" font-size="12">产出：训练/验证/测试＋基准</text>

  <rect x="432" y="168" width="168" height="92" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="516" y="196" text-anchor="middle">验证与归因</text>
  <text x="516" y="215" text-anchor="middle" font-size="12">3.2.3.10　评测·归因·血缘</text>
  <text x="516" y="238" text-anchor="middle" font-size="12">产出：评测报告＋修订工单</text>

  <rect x="650" y="110" width="156" height="68" rx="6" fill="#f8fafc" stroke="#334155"/>
  <text x="728" y="136" text-anchor="middle" font-size="12">训练推理技术服务</text>
  <text x="728" y="156" text-anchor="middle" font-size="12">（消费数据，见 T13）</text>

  <rect x="650" y="248" width="156" height="68" rx="6" fill="#f8fafc" stroke="#334155"/>
  <text x="728" y="274" text-anchor="middle" font-size="12">场景验证与质量评测</text>
  <text x="728" y="294" text-anchor="middle" font-size="12">（见 T5／T14／S3）</text>

  <path fill="none" d="M164 156 H214" stroke="#334155" stroke-width="1.4" marker-end="url(#g1a)"/>
  <text x="189" y="149" text-anchor="middle" font-size="11">候选样本</text>
  <path fill="none" d="M298 202 V226" stroke="#334155" stroke-width="1.4" marker-end="url(#g1a)"/>
  <text x="340" y="218" text-anchor="middle" font-size="11">去重后数据集</text>
  <path fill="none" d="M382 272 H410 V214 H432" stroke="#334155" stroke-width="1.4" marker-end="url(#g1a)"/>
  <rect x="384.0" y="235.5" width="48.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="408" y="248" text-anchor="middle" font-size="11">冻结基准</text>
  <path fill="none" d="M600 190 H625 V144 H650" stroke="#334155" stroke-width="1.4" marker-end="url(#g1a)"/>
  <rect x="594.5" y="153.5" width="59.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="624" y="166" text-anchor="middle" font-size="11">数据集版本</text>
  <path fill="none" d="M600 238 H625 V282 H650" stroke="#334155" stroke-width="1.4" marker-end="url(#g1a)"/>
  <rect x="600.0" y="245.5" width="48.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="624" y="258" text-anchor="middle" font-size="11">评测结论</text>

  <path fill="none" d="M516 260 V340 H180 V344" stroke="#7f1d1d" stroke-width="1.4" stroke-dasharray="5 3" marker-end="url(#g1b)"/>
  <text x="350" y="356" text-anchor="middle" font-size="11" fill="#7f1d1d">修订工单回流：问题类型＋关联样本＋整改期限</text>

  <text x="298" y="378" text-anchor="middle" font-size="11">实线＝数据流　虚线＝问题回流　方框内标注的是产出物，不是模块名</text>
</svg>

图 1-1　本组三类工具在数据加工主线中的位置与数据流向。数据来源：招标文件第五章 3.2.3.8—3.2.3.11 节工具链划分；四类数据集口径见本卷 T1 节。

责任边界按下表划清。

表 1-1　本组工具与相邻建设内容的责任边界

| 事项 | 本组工具负责 | 相邻内容负责 | 实施设计所在 |
|---|---|---|---|
| 样本的生产与标注 | 不负责；只接收加工产出作为候选输入 | 采集预处理与标注合成由数据加工主线承担 | T1A／T1B |
| 思维链、长上下文、多轮对话样本构建 | 不负责；对其产出做去重、泄漏与分布检查 | 构建逻辑与模板 | T2A |
| 多模态对齐与智能标注 | 不负责；消费其对齐结果做跨模态一致性检查 | 对齐规则与标注规范 | T2B |
| 数据去重、近重检测、语义相似过滤、污染扫描 | 承担四级级联判定、污染风险分级与隔离 | 质检规则由质检环节提供阈值建议 | 2.2 节 |
| 分布统计、偏置识别、均衡处理 | 承担八维统计、六类分布问题判定与五种均衡方法 | 配比目标由数据集规模规划给出 | 2.3 节，配比见 T1C |
| 模板化合成样本生成 | 承担模板引擎、受控采样与 Schema 校验 | 语料级增强与改写 | 3.2 节，增强见 T2B |
| 训练/验证/测试切分与基准冻结 | 承担三层切分、五类泄漏检测与基准冻结发布 | 规模下限与配比 | 3.3 节 |
| 模型评测的执行与判分 | 承担评测协议、多对象调度与六种判分融合 | 评测指标体系与评测依据 | 4.2 节，指标体系见 S3 |
| 第三方盖章质量测评报告 | 不负责出具；提供可复现的协议、冻结集与运行记录供机构核验 | 具资质机构出具 | S3 |
| 错题溯源、贡献度归因、修订工单 | 承担三层归因、四维聚类与修订工单生成 | 整改执行由加工环节承接 | 4.3 节 |
| 数据集–模型版本血缘 | 承担图谱构建、五类审计查询与影响范围分析 | 版本登记入库由运营平台承载 | 4.4 节，平台见 T3 |
| 模型训练与推理的算力与调度 | 不负责；只调用推理接口执行评测 | 训推平台 | T13 |
| 场景能力的业务验收 | 不负责；提供能力维度评测数据 | 场景验证方案 | T5／T14 |

本包为数据加工生产服务，不含智能场景建设。本组输出的评测结论与归因报告用于判定数据集质量与修订方向；模型调优决策由数据集建设与验收流程作出，工具只提供事实与指标。

### 1.3 七个工具链的交付清单

本组交付的 7 个工具链及其交付物见表 1-2。每个工具链按 3.2.3.11 的要求提供演示样例、输入输出样例、配置说明、接口说明与测试报告五件套（b1157）。

表 1-2　本组工具链交付清单

| 编号 | 工具链名称 | 核心输入 | 核心产出 | 对应单元 |
|---|---|---|---|---|
| 3.2.3.8.1 | 数据去重与相似度过滤 | 候选数据集、训练/验证/测试集、专家题库、相似度阈值 | 去重后数据集、重复组清单、污染命中报告 | b1077—b1087 |
| 3.2.3.8.2 | 数据分布分析与均衡 | 数据集、领域标签、类别标签、配比目标 | 分布统计、均衡后数据集、质量治理报告 | b1088—b1096 |
| 3.2.3.9.1 | 模板化数据生成 | 规则模板、参数字典、业务约束、采样配置 | 结构化合成样本、生成批次、模板版本记录 | b1100—b1110 |
| 3.2.3.9.2 | 数据集切分与基准构建 | 洁净数据集、切分策略、评测协议 | train/valid/test 数据集、冻结基准集、评测结果 | b1111—b1121 |
| 3.2.3.10.1 | 多协议模型评测引擎 | 模型接口、冻结基准集、评测协议、判分规则 | 模型评测报告、样本级评测结果、版本对比 | b1125—b1133 |
| 3.2.3.10.2 | 数据贡献度归因与错题溯源 | 评测错题、训练样本血缘、数据子集标签 | 能力雷达图、失败样本清单、归因报告、修订工单 | b1134—b1140 |
| 3.2.3.10.3 | 数据集–模型版本血缘追溯 | 数据集版本、训练任务日志、模型检查点、发布审批记录 | 血缘图谱、影响范围分析、审计查询结果 | b1141—b1145 |

### 1.4 七个工具共用的一套骨架

七个工具链功能分段、工程共用同一骨架：统一任务提交与结果结构；血缘字段由骨架写入，不依赖各工具自行填写。骨架由四件事构成，如图 1-2。

### 图 1-2　七个工具共用的任务骨架与血缘写入点

<svg viewBox="0 0 820 330" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="g2a" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker></defs>
  <rect x="16" y="20" width="128" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="80" y="42" text-anchor="middle" font-size="12">任务受理</text>
  <text x="80" y="60" text-anchor="middle" font-size="12">参数＋输入版本</text>
  <rect x="188" y="20" width="128" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="252" y="42" text-anchor="middle" font-size="12">批次切分</text>
  <text x="252" y="60" text-anchor="middle" font-size="12">可重试的最小单元</text>
  <rect x="360" y="20" width="128" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="424" y="42" text-anchor="middle" font-size="12">算子执行</text>
  <text x="424" y="60" text-anchor="middle" font-size="12">规则通道＋模型通道</text>
  <rect x="532" y="20" width="128" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="596" y="42" text-anchor="middle" font-size="12">指标汇总</text>
  <text x="596" y="60" text-anchor="middle" font-size="12">质量检查节点判定</text>
  <rect x="690" y="20" width="114" height="50" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="747" y="42" text-anchor="middle" font-size="12">结果发布</text>
  <text x="747" y="60" text-anchor="middle" font-size="12">多格式导出</text>

  <path fill="none" d="M144 45 H188" stroke="#334155" stroke-width="1.3" marker-end="url(#g2a)"/>
  <path fill="none" d="M316 45 H360" stroke="#334155" stroke-width="1.3" marker-end="url(#g2a)"/>
  <path fill="none" d="M488 45 H532" stroke="#334155" stroke-width="1.3" marker-end="url(#g2a)"/>
  <path fill="none" d="M660 45 H690" stroke="#334155" stroke-width="1.3" marker-end="url(#g2a)"/>

  <rect x="16" y="120" width="788" height="62" rx="6" fill="#f8fafc" stroke="#334155"/>
  <text x="410" y="143" text-anchor="middle" font-size="12">血缘写入层：每条样本在每个环节追加一条处理记录</text>
  <text x="410" y="166" text-anchor="middle" font-size="12">原始数据标识｜处理链路｜工具版本｜模型版本｜提示词版本｜规则版本｜质检结果｜审核状态</text>
  <path fill="none" d="M80 70 V120" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#g2a)"/>
  <path fill="none" d="M252 70 V120" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#g2a)"/>
  <path fill="none" d="M424 70 V120" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#g2a)"/>
  <path fill="none" d="M596 70 V120" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#g2a)"/>
  <path fill="none" d="M747 70 V120" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#g2a)"/>

  <rect x="16" y="214" width="252" height="68" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="142" y="238" text-anchor="middle" font-size="12">质量检查节点未过：批次挂起</text>
  <text x="142" y="258" text-anchor="middle" font-size="12">阈值回退一档，重跑该批次</text>
  <text x="142" y="276" text-anchor="middle" font-size="12">两次未过转人工复核</text>
  <rect x="290" y="214" width="252" height="68" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="416" y="238" text-anchor="middle" font-size="12">模型通道不可用：降级规则通道</text>
  <text x="416" y="258" text-anchor="middle" font-size="12">产出标记"降级完成"</text>
  <text x="416" y="276" text-anchor="middle" font-size="12">恢复后补跑并比对差异</text>
  <rect x="564" y="214" width="240" height="68" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="684" y="238" text-anchor="middle" font-size="12">发布后发现问题：按血缘</text>
  <text x="684" y="258" text-anchor="middle" font-size="12">定位影响范围并回滚版本</text>
  <text x="684" y="276" text-anchor="middle" font-size="12">生成修订工单</text>
  <path fill="none" d="M596 70 V96 H142 V214" stroke="#334155" stroke-width="1.1" marker-end="url(#g2a)"/>

  <text x="410" y="306" text-anchor="middle" font-size="11">三个白框是回退路径，不是异常说明：每条路径都有触发条件、动作与收尾动作</text>
</svg>

图 1-2　七个工具共用的任务骨架与血缘写入点。数据来源：招标文件 3.2.3.11（1）接口要求、（3）血缘要求（b1147、b1151）。

骨架的四件事分别是：**任务与批次**，一次提交对应一个任务，任务按可重试的最小单元切成批次，异常重试以批次为粒度，不必整任务重跑；**双通道算子**，凡能用确定性规则判定的先走规则通道，规则判不了的才调模型通道，模型通道经统一网关接入，采用当期能力评测领先的通用大模型，可替换、可评测、可随代升级；**指标与质量检查节点**，每个批次产出一组指标，指标与预设门限比对，未过门限的批次不进入下一环节；**血缘与审计**，样本在每个环节追加一条处理记录，八类标识由骨架写入而非算子自填。

## 2、数据质量与分布控制类工具链（3.2.3.8）

本类含数据去重与相似度过滤、数据分布分析与均衡两个工具链。

### 2.1 类级能力范围与输入输出口径

这一类工具面向训练集、验证集、测试集与候选数据集，用于发现重复、相似、泄漏、污染、失衡、异常与低质量样本（b1075）。七种问题当中，前四种是"同一份信息出现在了不该出现的地方"，后三种是"数据的分布形状不对或内容本身不合格"。两组问题的处理方式不同：前者靠比对，后者靠统计与规则。本类工具按这一区分设两个工具链，分别承担比对与统计两条主线。

能力覆盖的七个环节按招标文件口径为精确去重、近重检测、语义相似过滤、污染扫描、分布统计、均衡处理与质量报告输出（b1075）。这七个环节在实现上并不是七个独立程序，而是同一条流水线上的七道算子，共享样本指纹、共享向量索引、共享统计缓存。否则在约 63 万张图纸量级下，各算子重复计算指纹与向量成本过高，且口径不一致时，同一样本可能在去重判唯一、在污染扫描判命中。

输入输出口径按 b1076 的要求固化为表 2-1。表中"矿装对象取值"一列说明该项输入在天地奔牛这个具体对象上指什么，避免验收时对输入内容的理解分歧。

表 2-1　质量与分布控制类工具链输入输出口径（b1076）

| 类别 | 项目 | 矿装对象上的具体取值 | 格式 |
|---|---|---|---|
| 输入 | 训练集 | 图纸—工艺卡成对样本、选型问答、制度条款问答等已入库训练样本 | JSONL，含样本标识与来源标识 |
| 输入 | 验证集 | 自训练集同源切出、用于训练中途监控的样本 | JSONL |
| 输入 | 测试集 | 与训练集按来源与时间双重隔离的样本 | JSONL |
| 输入 | 专家题库 | 由工艺、设计、质量、设备各口专家出具的题目与标准答案 | JSONL，含出题人角色标识（不含姓名） |
| 输入 | 领域标签 | 供需计划、产品工艺设计、制造过程、质量四个数据域及其下级业务域 | 枚举值，取自数据集标准 |
| 输入 | 类别标签 | 如备料工序 28 道工序名、热处理三级判定、焊接缺陷类别 | 枚举值，取自各场景判据字典 |
| 输入 | 配比目标 | 四类数据集按数据域的规模配比（见 T1C） | 配置文件，域—目标占比 |
| 输入 | 相似度阈值 | 近重阈值、语义重复阈值、复核带上下界 | 配置文件，可按数据集类型分别设定 |
| 产出 | 去重后数据集 | 保留样本全集，附保留原因 | JSONL／Parquet |
| 产出 | 污染命中报告 | 命中样本、命中片段、来源集合、风险等级、处理建议 | CSV＋Markdown 摘要 |
| 产出 | 分布统计 | 八个维度的分布表与可视化图 | CSV＋图表文件 |
| 产出 | 质量治理报告 | 问题样本清单、质量指标、分布变化、风险等级、建议处理动作 | Markdown＋附表 |

### 2.2 数据去重与相似度过滤工具链（3.2.3.8.1）

#### 2.2.1 本工具要完成的三类判断

工艺人员编制备料工艺卡时，拿到一张新图纸，第一个动作是判断"这张图有没有做过类似的"。七八成的图纸确有可借用的既有工艺，但判断靠的是打开目录逐张核对。把这件事挪到数据集加工环节，问题的形式变了但本质相同：一批候选样本进来，要判断哪些是同一份信息的重复出现（应当合并或删除），哪些是看着像但信息不同的变体（应当保留），哪些是本不该在这里出现的评测内容（必须隔离）。

三类判断的难度递增，所需的比对代价也递增。按代价从低到高级联，是这一工具的基本设计：先用廉价手段把能确定的筛掉，剩下的才交给昂贵手段。若反过来先做语义比对，63 万张图纸配对出的工艺卡样本按两两比较是 10 的 11 次方量级的运算，不具可行性。

### 图 2-1　四级级联去重与污染扫描流水线

<svg viewBox="0 0 820 420" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="d1" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker></defs>
  <rect x="16" y="24" width="120" height="52" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="76" y="46" text-anchor="middle" font-size="12">候选样本</text>
  <text x="76" y="65" text-anchor="middle" font-size="12">含来源与批次标识</text>

  <rect x="176" y="24" width="140" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="246" y="46" text-anchor="middle" font-size="12">一级·精确重复</text>
  <text x="246" y="65" text-anchor="middle" font-size="12">五类指纹比对</text>

  <rect x="356" y="24" width="140" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="426" y="46" text-anchor="middle" font-size="12">二级·近重复</text>
  <text x="426" y="65" text-anchor="middle" font-size="12">MinHash＋LSH 分桶</text>

  <rect x="536" y="24" width="140" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="606" y="46" text-anchor="middle" font-size="12">三级·语义相似</text>
  <text x="606" y="65" text-anchor="middle" font-size="12">向量近邻检索</text>

  <rect x="536" y="130" width="140" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="606" y="152" text-anchor="middle" font-size="12">四级·污染扫描</text>
  <text x="606" y="171" text-anchor="middle" font-size="12">n-gram 跨集合命中</text>

  <rect x="696" y="236" width="108" height="52" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="750" y="258" text-anchor="middle" font-size="12">去重后数据集</text>
  <text x="750" y="277" text-anchor="middle" font-size="12">附保留原因</text>

  <path fill="none" d="M136 50 H176" stroke="#334155" stroke-width="1.3" marker-end="url(#d1)"/>
  <path fill="none" d="M316 50 H356" stroke="#334155" stroke-width="1.3" marker-end="url(#d1)"/>
  <path fill="none" d="M496 50 H536" stroke="#334155" stroke-width="1.3" marker-end="url(#d1)"/>
  <path fill="none" d="M606 76 V130" stroke="#334155" stroke-width="1.3" marker-end="url(#d1)"/>
  <path fill="none" d="M676 156 H730 V236" stroke="#334155" stroke-width="1.3" marker-end="url(#d1)"/>

  <rect x="176" y="236" width="180" height="76" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="266" y="258" text-anchor="middle" font-size="12">重复组清单</text>
  <text x="266" y="277" text-anchor="middle" font-size="12">组内保留一条＋删除理由</text>
  <text x="266" y="296" text-anchor="middle" font-size="12">按来源优先级定保留项</text>

  <rect x="376" y="236" width="180" height="76" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="466" y="258" text-anchor="middle" font-size="12">人工复核带</text>
  <text x="466" y="277" text-anchor="middle" font-size="12">相似度落在上下界之间</text>
  <text x="466" y="296" text-anchor="middle" font-size="12">按工艺口双盲判定</text>

  <rect x="16" y="236" width="140" height="76" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="86" y="258" text-anchor="middle" font-size="12">污染命中报告</text>
  <text x="86" y="277" text-anchor="middle" font-size="12">高风险直接隔离</text>
  <text x="86" y="296" text-anchor="middle" font-size="12">中风险转人工裁定</text>

  <path fill="none" d="M246 76 V200 H266 V236" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#d1)"/>
  <path fill="none" d="M426 76 V210 H466 V236" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#d1)"/>
  <path fill="none" d="M536 156 H110 V236" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#d1)"/>
  <path fill="none" d="M466 312 V336 H750 V288" stroke="#334155" stroke-width="1.1" marker-end="url(#d1)"/>
  <text x="620" y="332" text-anchor="middle" font-size="11">复核判为保留的样本回流</text>

  <rect x="16" y="358" width="788" height="46" rx="6" fill="#f8fafc" stroke="#94a3b8"/>
  <text x="410" y="378" text-anchor="middle" font-size="12">共享层：样本指纹库｜向量索引｜n-gram 倒排索引　——四级算子共用，不各自重算</text>
  <text x="410" y="396" text-anchor="middle" font-size="11">级联顺序按单条样本比对代价从低到高排列，上一级筛掉的不进下一级</text>
</svg>

图 2-1　四级级联去重与污染扫描流水线。数据来源：招标文件 3.2.3.8.1（1）—（5）（b1078、b1080、b1082、b1084、b1086）。

#### 2.2.2 一级：精确重复检测

精确重复检测按五类指纹识别完全重复的样本，五类指纹分别取自文本内容、样本标识、哈希指纹、源文件与结构化字段（b1078、b1079）。这五类不是五种算法，而是同一种比对方式作用在五种口径上，口径不同会得出不同的重复组，所以需要逐类定义而不是笼统写"按哈希去重"。

文本内容口径先做归一化再算摘要：统一全角半角、去除不可见字符、折叠连续空白、统一数字与单位写法（如"Φ30"与"φ30"、"30mm"与"30 毫米"），再对归一化后的正文取 SHA-256。不做归一化的后果在工艺卡样本上很明显：同一道工序的卡片内容相同，只因录入人的空格习惯不同而被判为两条，重复就漏掉了。

样本标识口径按业务主键比对。矿装业务的主键是复合的：图号加版次、施工号加零件号、工单号加工序号、炉次号、焊缝编号加焊道序号。这些主键之间目前没有稳定的映射关系，是数据集建设的已知前置问题（见 T1A 主键贯通）。本工具按已贯通的主键做比对，未贯通的主键组合在重复组清单里标注"主键口径待确认"，不自行推断。

哈希指纹口径针对非文本内容。图纸文件按几何要素序列取指纹而非按文件字节取指纹，因为同一张图另存一次字节就变了；照片按感知哈希取指纹，使同一缺陷的多次拍摄能够聚到一组；时序数据段按采样值序列取指纹。源文件口径按文件路径、文件大小与修改时间三者组合识别同一文件的多次导入，这类重复在多系统取数时很常见。

同一份工艺文件既在产品全生命周期管理系统里，也在企业文档系统里存了一份。结构化字段口径由配置指定参与比对的字段集合，例如备料工艺卡只比对材料牌号、板厚、外形轮廓、孔与方孔、坡口倒角、压弯线六个字段，不比对编制日期与编制人。

表 2-2　精确重复检测的五类指纹口径（b1078、b1079）

| 口径 | 计算方式 | 适用对象 | 已知风险与处置 |
|---|---|---|---|
| 文本内容 | 归一化后取 SHA-256 | 工艺卡正文、制度条款、问答样本 | 归一化规则漏项会漏判；规则表版本化管理，变更须重跑 |
| 样本标识 | 业务复合主键比对 | 图纸、工单、炉次、焊道 | 主键未贯通者标注待确认，不推断 |
| 哈希指纹 | 几何要素／感知哈希／采样值序列 | 图纸文件、照片、时序段 | 感知哈希对强噪声敏感；噪声超限转近重复级处理 |
| 源文件 | 路径＋大小＋修改时间 | 多系统重复导入的同一文件 | 跨系统路径不同但内容相同者由文本口径兜住 |
| 结构化字段 | 配置字段集合比对 | 物料主数据、定额、参数记录 | 字段集合由业务口确认后固化，变更须登记 |

重复组内留哪一条，按来源优先级定，不按先到先得。优先级口径为：已审核签发的正式版本高于草稿版本；原生系统导出高于二次转录；带完整血缘的高于血缘不全的；时间更新的高于更早的。四条依次比较，前一条能分出高低就不看后一条。保留与删除都写入重复组清单并给出理由，删除的样本不做物理删除，移入隔离区保留一个版本周期，以备复核推翻结论时取回（b1086）。

本级的指标按三项给出。**指标值与适用条件**：五类指纹口径内，指纹相同者全部判出——这一项按定义可穷尽，不设经验取值；适用条件是归一化规则集与比对字段集的版本已固化、样本业务主键已贯通。**测量方法**：构造同指纹样本对做回灌，按表 2-2 的五类口径逐一统计判出情况，每类不少于 50 对。**不达标处置**：业务主键未贯通的组合不按推断判重，在重复组清单中标注"主键口径待确认"转人工裁定；归一化规则漏项导致的漏判，规则表修订后重跑受影响批次。

#### 2.2.3 二级：近重复检测

近重复检测用于识别大规模文本中的高度相似样本，采用 MinHash、SimHash 与局部敏感哈希（Locality Sensitive Hashing，LSH）方法（b1080、b1081）。三种方法不是备选项，而是分工：SimHash 擅长抓少量字符改动的文本，适合制度条款与标书段落这类改几个字就另存一版的内容；MinHash 配合 LSH 擅长抓大规模集合上的 Jaccard 相似，适合工艺卡与问答样本这类按词或按字切片后比对的内容。

实现口径如下。中文文本按字切 5 字滑窗作为分片单元，英文与型号编码按词切 3 词滑窗；对每条样本取 128 个 MinHash 签名，按 LSH 分成 32 段每段 4 个签名建桶，候选对只在同桶内产生，把两两比较降到近线性；候选对再精算 Jaccard 相似度，不低于 0.85 判近重复，落在 0.72 至 0.85 之间进人工复核带。

SimHash 取 64 位指纹，汉明距离不超过 3 判近重复。阈值按数据集类型分别配置：预训练语料可取较松（宁可多删，语料冗余对训练不利），指令微调与偏好数据取较严（样本少，删错代价高），基准题目一律不做自动删除，只给提示。

借用件判定易错：同一零件族文本相似度常在 0.9 以上，差别却在关键字段——板厚从 16 毫米改成 20 毫米、压弯角度改了 5 度、增加了一道工序。若按整篇相似度判重，这类有信息量的变体会被整批删掉，训练集随之丢失对规格变化的敏感性。

我方的处理方式是在近重复判定之上加一道**关键字段差异检查**：候选近重复对若在配置指定的关键字段上存在差异，则不判重复，改判为"同族变体"，两条都保留并互相登记关联关系。关键字段清单按场景定，备料场景取材料牌号、板厚、工序序列、压弯参数、孔位，热处理场景取材料牌号、炉型、目标硬度区间、工艺参数窗口。

表 2-3　近重复检测的参数口径与数据集差异化配置（b1080、b1081）

| 参数 | 预训练语料 | 指令微调样本 | 偏好对比组 | 基准题目 |
|---|---|---|---|---|
| 分片单元 | 中文 5 字窗／英文 3 词窗 | 同左 | 同左 | 同左 |
| MinHash 签名数 | 128 | 128 | 128 | 128 |
| LSH 分段 | 32 段 × 4 | 32 段 × 4 | 32 段 × 4 | 32 段 × 4 |
| 判重阈值（Jaccard） | ≥0.80 | ≥0.85 | ≥0.88 | 不自动判重 |
| 人工复核带 | 0.70—0.80 | 0.72—0.85 | 0.75—0.88 | ≥0.75 全部提示 |
| SimHash 汉明距离 | ≤3 | ≤3 | ≤2 | 仅提示 |
| 关键字段差异检查 | 按域启用 | 启用 | 启用 | 启用 |
| 默认处置 | 自动删除并记录 | 自动删除并记录 | 删除需复核确认 | 仅出清单，人工决定 |

本级的指标按三项给出。**指标值与适用条件**：抽样复核下的判准率不低于 95%；适用条件是 Jaccard 判重阈值按表 2-3 分数据集类型取值、关键字段差异检查已启用、复核样本量每批次不少于 500 条。**测量方法**：每批次随机抽 500 条，由工艺或设计口人员双盲复核，结果按点估计与 95% 置信区间两段报出（口径见 5.4 节）。该门限依矿装数据特性设定，首期按行业常用阈值取值，首批数据到位后按复核结论的分布重新标定并报招标方确认。**不达标处置**：判重阈值调向保守侧一档，人工复核带上下界各放宽 0.03，落入带内的样本转人工判定；若不达标集中在同族变体上，先补关键字段清单再重跑。

#### 2.2.4 三级：语义级相似度过滤

语义级相似度过滤基于向量表示与近邻检索，识别表达不同但语义重复或高度接近的样本（b1082、b1083）。近重复抓的是字面相近，语义级抓的是字面不同而意思相同。这类重复在问答类样本上占比最高：同一条管理制度，不同人问法不同，"差旅住宿标准是多少"与"出差住宿费怎么报"指向同一个答案，二者字面相似度极低。

实现口径为：文本经向量化模型编码为稠密向量，向量模型经统一网关接入，采用当期能力评测领先的通用模型，可替换、可评测、可随代升级；向量入近似最近邻索引（本方案采用分层可导航小世界图，Hierarchical Navigable Small World，HNSW），检索参数按召回优先设置；余弦相似度不低于 0.92 判语义重复，0.85 至 0.92 进人工复核带。向量模型更换时，索引须整体重建并对上一版的判定结果做抽样回归比对，比对差异超过 2 个百分点的，该批次判定结果作废重跑——这一条是为了防止换模型后新旧判定不一致而无人察觉。

语义过滤对指令微调样本有一处特殊用法：同一问题的多种问法本身是有价值的多样性，不应一律删除。本工具的处理是按"语义簇"聚类而非按对删除，簇内保留若干条问法变体（默认保留 3 条，按问法长度与句式差异取最分散的三条），其余删除。这样既压掉了冗余，又保住了问法多样性。簇的构成与保留逻辑写入重复组清单。

对图文与时序样本，语义级比对走各自的表示通道：图纸按几何要素与标注文本的联合表示，照片按视觉表示，时序段按统计特征与形态表示。跨模态的语义重复（如同一缺陷既有照片又有文字描述）不在本工具处理范围，由多模态对齐工具的对齐结果提供关联，本工具只在同模态内比对（对齐见 T2B）。

本级的指标按三项给出。**指标值与适用条件**：人工复核带以外的判准率不低于 90%；适用条件是向量化模型与索引版本一致，余弦阈值取 0.92、复核带取 0.85—0.92。**测量方法**：与二级相同，复核样本自语义重复判定结果中随机抽取，每批次不少于 500 条。该门限随向量化模型换代重新标定。**不达标处置**：余弦阈值上调至 0.94，复核带下界降至 0.82，语义簇内保留条数由 3 条增至 5 条；换代引起的，按本小节的整体重建索引与抽样回归比对流程处理。

#### 2.2.5 四级：n-gram 污染扫描

污染扫描支持训练集与验证集、测试集、专家题库、保留评测集及基准集之间的 n-gram 比对，防止评测样本、测试答案或保留数据进入训练集（b1084、b1085）。这是本工具链中优先级最高的一项。它的失效不会表现为数据质量差，而会表现为验收指标虚高、上线表现落空。

扫描口径为：被保护集合（测试集、专家题库、保留评测集、基准集）先建 n-gram 倒排索引；训练集逐条样本切 n-gram 后查索引，命中即记录。n 的取值按内容类型分设：中文正文取连续 13 字，英文与代码取 8 元词组，结构化记录取字段值组合。单条样本的命中片段长度与命中次数共同决定风险等级。扫描方向是双向的：既查训练集是否含有被保护集合的内容，也查被保护集合是否含有训练集已有的内容。后者意味着这道题模型在训练时就见过，题目本身应当换掉。

风险等级与处理建议按表 2-4 固化。这张表是验收时的判定依据，等级划分口径与 S3 质量评测方案的内容干净性指标、T1B 质检的泄漏检查项保持同一套说法。

表 2-4　污染风险等级与处理建议（b1085、b1087）

| 等级 | 判定条件 | 含义 | 处理建议 | 是否阻断发布 |
|---|---|---|---|---|
| 高 | 命中片段覆盖被保护样本主体内容，或命中标准答案关键段 | 评测内容已进入训练集 | 训练侧样本隔离；该基准题目标记作废并补题 | 阻断 |
| 中 | 命中片段长度达阈值但不覆盖主体，或命中次数多而片段短 | 可能是共用的术语、标准条文或模板句式 | 转人工裁定，裁定结果写回规则库 | 阻断至裁定完成 |
| 低 | 仅命中通用术语、单位、型号编码 | 正常的领域词汇共现 | 登记不处理 | 不阻断 |
| 无 | 未命中 | —— | —— | 不阻断 |

高风险命中的拦截指标按三段给出。**指标值与适用条件**：以回灌测试度量，向训练集注入已知来自基准集的样本，按三档改写强度分别统计命中——原文照抄与同义替换两档全部命中，改写句式档不低于 85%；适用条件为 n 取值与索引粒度按本小节口径配置，被保护集合清单无遗漏。**测量方法**：每轮切分后执行一次回灌，注入量不少于 200 条，三档各不少于 60 条，逐档报命中数与命中率。**不达标处置**：缩短 n 取值一档并重建倒排索引后重跑；重跑仍不达标的，把未判定清楚的样本一律隔离不进训练集，并在该数据集版本的数据卡上登记"污染扫描存在未裁定项"。改写句式档的门限低于前两档，是因为该档的判定依赖语义通道而非字面通道，其召回随向量模型变化，按 7.3 节的门限校准机制逐季校准。

### 图 2-2　污染扫描的集合关系与扫描方向

<svg viewBox="0 0 820 300" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="p2" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker></defs>
  <rect x="24" y="40" width="200" height="200" rx="8" fill="#f1f5f9" stroke="#334155"/>
  <text x="124" y="64" text-anchor="middle" font-size="13">训练集</text>
  <text x="124" y="88" text-anchor="middle" font-size="12">预训练语料 615 亿 Token</text>
  <text x="124" y="110" text-anchor="middle" font-size="12">指令微调 89 万条</text>
  <text x="124" y="132" text-anchor="middle" font-size="12">偏好对比 6.6 万组</text>
  <text x="124" y="166" text-anchor="middle" font-size="12">切 n-gram 后查索引</text>
  <text x="124" y="188" text-anchor="middle" font-size="12">中文 13 字／英文 8 词</text>

  <rect x="500" y="24" width="296" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="648" y="46" text-anchor="middle" font-size="12">基准测试数据集　0.95 万条</text>
  <text x="648" y="65" text-anchor="middle" font-size="12">冻结管理，内容指纹固定</text>

  <rect x="500" y="92" width="296" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="648" y="114" text-anchor="middle" font-size="12">专家题库</text>
  <text x="648" y="133" text-anchor="middle" font-size="12">工艺／设计／质量／设备各口出题</text>

  <rect x="500" y="160" width="296" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="648" y="182" text-anchor="middle" font-size="12">测试集与验证集</text>
  <text x="648" y="201" text-anchor="middle" font-size="12">按来源与时间双重隔离切出</text>

  <rect x="500" y="228" width="296" height="52" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="648" y="250" text-anchor="middle" font-size="12">保留评测集</text>
  <text x="648" y="269" text-anchor="middle" font-size="12">验收专用，建设期内不参与任何训练</text>

  <rect x="268" y="110" width="186" height="60" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="361" y="134" text-anchor="middle" font-size="12">n-gram 倒排索引</text>
  <text x="361" y="155" text-anchor="middle" font-size="12">被保护集合统一建索引</text>

  <path fill="none" d="M224 140 H268" stroke="#334155" stroke-width="1.4" marker-end="url(#p2)"/>
  <text x="246" y="132" text-anchor="middle" font-size="11">查</text>
  <path fill="none" d="M500 50 H470 V110" stroke="#334155" stroke-width="1.2" marker-end="url(#p2)"/>
  <path fill="none" d="M500 118 H454" stroke="#334155" stroke-width="1.2" marker-end="url(#p2)"/>
  <path fill="none" d="M500 186 H470 V170" stroke="#334155" stroke-width="1.2" marker-end="url(#p2)"/>
  <path fill="none" d="M500 254 H480 V170" stroke="#334155" stroke-width="1.2" marker-end="url(#p2)"/>
  <rect x="459.5" y="213.5" width="36.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="478" y="226" text-anchor="middle" font-size="11">建索引</text>

  <path fill="none" d="M361 170 V200 H124 V240" stroke="#334155" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#p2)"/>
  <text x="250" y="214" text-anchor="middle" font-size="11">反向扫描：题目是否已在训练集出现</text>
  <text x="410" y="294" text-anchor="middle" font-size="11">扫描双向进行；高风险命中同时触发训练侧隔离与题库侧补题</text>
</svg>

图 2-2　污染扫描的集合关系与扫描方向。数据来源：招标文件 3.2.3.8.1（4）（b1084、b1085）；数据集规模口径见本卷 T1C。

#### 2.2.6 输出规格

工具输出重复组、保留样本、删除样本、相似度、命中规则、污染风险等级与处理建议七项（b1086、b1087）。七项按两张表组织：重复组清单一行一条样本，污染命中报告一行一处命中。字段定义见表 2-5，字段名在接口文档中与此一致，不另起别名。

表 2-5　去重与相似度过滤的输出字段（b1086、b1087）

| 表 | 字段 | 含义 | 取值 |
|---|---|---|---|
| 重复组清单 | group_id | 重复组标识 | 字符串 |
| 重复组清单 | sample_id | 样本标识 | 字符串 |
| 重复组清单 | decision | 处置结论 | 保留／删除／同族变体／待复核 |
| 重复组清单 | decision_reason | 处置理由 | 来源优先级／关键字段差异／复核结论 |
| 重复组清单 | similarity | 与组内保留样本的相似度 | 0—1，注明算法口径 |
| 重复组清单 | matched_rule | 命中规则 | 指纹口径名／近重算法名／语义阈值名 |
| 重复组清单 | variant_of | 同族变体关联 | 关联样本标识列表 |
| 污染命中报告 | hit_id | 命中标识 | 字符串 |
| 污染命中报告 | train_sample_id | 训练侧样本标识 | 字符串 |
| 污染命中报告 | protected_set | 被保护集合 | 基准集／专家题库／测试集／保留评测集 |
| 污染命中报告 | protected_sample_id | 被保护侧样本标识 | 字符串 |
| 污染命中报告 | hit_span | 命中片段 | 原文片段＋起止位置 |
| 污染命中报告 | hit_count | 命中次数 | 整数 |
| 污染命中报告 | risk_level | 污染风险等级 | 高／中／低／无 |
| 污染命中报告 | suggested_action | 处理建议 | 按表 2-4 取值 |
| 污染命中报告 | review_status | 人工裁定状态 | 待裁定／已裁定保留／已裁定隔离 |

两张表同时以 JSON Lines 与 CSV 两种格式输出，并生成一份 Markdown 摘要供人阅读。摘要包含本批次处理量、各级命中量、去重率、污染命中分布与需人工处理的条数，篇幅控制在一页之内，使项目组不必打开数据文件就能判断这一批是否正常。

#### 2.2.7 执行步骤、输入字段与阈值来源

一次去重任务的执行按八步推进，每步的输入字段、判据、阈值来源与失败处置见表 2-5A。表中"阈值来源"一列区分三种：按定义确定（无可调参数）、配置项（取自表 6-1，按数据集类型分设）、标定得出（由复核结论反推，按 7.3 节逐季校准）。

表 2-5A　去重与相似度过滤的执行步骤、输入字段与阈值来源

| 步 | 动作 | 用到的输入字段 | 算法或判据 | 阈值及其来源 | 失败或异常时的复核 |
|---|---|---|---|---|---|
| 一 | 前置检查 | 数据集版本、血缘挂接状态、被保护集合清单、规则集版本 | 校验输入数据集已完成质检、血缘字段齐备、被保护集合可读 | 无阈值，按定义判定 | 任一项不满足即拒收任务，返回输入类错误并指明缺失项 |
| 二 | 归一化与指纹计算 | 样本正文、业务主键、源文件路径与大小、结构化字段集 | 全半角统一、不可见字符剔除、空白折叠、数字与单位统一后取 SHA-256；图纸取几何要素序列指纹，照片取感知哈希，时序取采样值序列指纹 | 归一化规则集版本为配置项；指纹算法按定义确定 | 归一化规则命中异常（如单位字典缺项）的样本挂起，进"规则待补清单" |
| 三 | 一级精确重复判定 | 五类指纹值、来源优先级字段（审核状态、系统来源、血缘完整度、时间） | 指纹相同即同组；组内按四条来源优先级依次比较定保留项 | 无阈值，按定义确定 | 主键未贯通的组合标注"主键口径待确认"，不判重，转人工 |
| 四 | 二级近重复候选生成与精算 | 归一化正文、数据集类型标记 | 中文 5 字窗／英文 3 词窗分片，128 个 MinHash 签名，32×4 分段建桶出候选对；候选对精算 Jaccard；并行算 64 位 SimHash 汉明距离 | 判重阈值与复核带见表 2-3，属配置项，初值按行业常用取值、后续标定得出 | 候选对数量超过单批上限时按桶分片续跑，不降签名数——降签名数会改变召回口径 |
| 五 | 关键字段差异检查 | 场景关键字段集（材料牌号、板厚、工序序列、压弯参数、孔位等） | 候选近重复对在关键字段上存在差异即改判同族变体，双方保留并互相登记 | 关键字段集为配置项，由工艺与设计口确认 | 关键字段缺值的样本对不自动判重，转人工；缺值情况记入问题样本清单 |
| 六 | 三级语义相似过滤 | 归一化正文、模态标记、向量索引版本 | 向量化后在近似最近邻索引中检索，按余弦相似度判定；指令微调样本按语义簇聚类，簇内按问法长度与句式差异保留最分散的若干条 | 余弦阈值 0.92、复核带 0.85—0.92、簇内保留 3 条，均为配置项，随向量模型换代重标 | 向量化服务不可用时降级为仅执行一至二级，产出标记"降级完成"，恢复后补跑并比对差异 |
| 七 | 四级污染扫描 | 训练侧样本正文、被保护集合 n-gram 倒排索引、内容类型 | 训练集逐条切 n-gram 查倒排；双向扫描；按命中片段长度与命中次数定风险等级 | n 取值（中文 13 字／英文 8 元词组）与等级判定参数为配置项；等级划分口径与 S3、T1B 同一套 | 中风险命中转人工裁定，裁定前该样本不进训练集；裁定结论回写规则库 |
| 八 | 输出与隔离 | 处置结论、理由、相似度、命中规则、同族关联 | 按表 2-5 字段生成重复组清单与污染命中报告；删除样本移入隔离区而非物理删除 | 隔离保留期为配置项，默认一个版本周期 | 隔离写入失败即整批次回滚，不允许"已删除但未入隔离区"的中间态 |

表 2-5A　数据来源：招标文件 3.2.3.8.1（1）—（5）（b1078、b1080、b1082、b1084、b1086）；阈值取值见表 2-2、表 2-3、表 2-4 与配置清单表 6-1。

八步中第五步与第七步是本项目相较通用去重工具的两处增补。第五步应对的是借用件与原件的区分，第七步应对的是评测内容回流训练集，二者都来自矿装历史资料高度同源这一现场条件。

#### 2.2.8 索引构成、增量更新与重建触发

四级判定各自依赖一套索引，索引的增量更新与重建口径必须写明：增量口径决定每批次的算力开销，重建口径决定判定结论在什么情况下失去可比性。四套索引的构成见表 2-5B。

表 2-5B　四套索引的构成、增量更新与重建触发

| 索引 | 承载内容 | 增量更新方式 | 触发整体重建的条件 | 重建期间的处理 |
|---|---|---|---|---|
| 指纹表（一级） | 五类指纹值到样本标识的映射 | 新批次只对新增样本算指纹并写入；已入表样本不重算 | 归一化规则集版本变更；参与比对的结构化字段集变更 | 旧表继续服务，新表并行构建；两表对同一批样本的判定结果比对一致后切换 |
| MinHash／LSH 桶（二级） | 每条样本的 128 个签名与 32 个桶键 | 新增样本算签名后入桶；桶内候选对只在涉及新样本的组合上重算 | 分片单元变更；签名数或分段方式变更 | 同上；重建期间新批次先入新索引，二级判定暂以旧索引结论为准并登记 |
| 向量索引（三级） | 稠密向量与分层可导航小世界图 | 新增样本编码后插入图结构；已入索引样本不重复编码；图的邻居表按插入增量维护 | 向量化模型或其版本变更；距离度量变更 | 重建完成后对上一版判定结果抽样回归比对，差异超过 2 个百分点的批次判定作废重跑 |
| n-gram 倒排（四级） | 被保护集合的 n-gram 到样本与位置的倒排 | 被保护集合新增题目时只对新增题目建倒排；训练侧不建索引，逐条查询 | n 取值变更；被保护集合发生题目删除或答案修订；基准集发布新主版本 | 重建期间暂停训练集入库，避免在倒排不完整时放行样本 |

索引规模按首期数据量估算：指纹表与签名表按候选样本条数线性增长；向量索引是算力主要消耗项，按增量编码，首轮全量编码之后每批次只编码新增部分。删除样本在各索引中按墓碑标记摘除而非物理删除，摘除记录保留，使隔离区回取时可重新挂接（回取见 2.2.10）。

索引版本与数据集版本一并记入血缘：每一次判定结论都记录其所用的四套索引版本号。这一条的用处在版本回滚与争议复核时显现——没有索引版本，"当时为什么判成重复"这个问题答不出来。

#### 2.2.9 误杀与漏检的复核机制

去重有两类错误，方向相反且代价不同。**误杀**指本应保留的样本被判为重复而删除，代价是信息永久丢失——被删的样本既不在数据集里也不在问题清单里，不会再被发现，所以必须有专门的复核通道而不能依赖下游发现。**漏检**指本应判出的重复或污染未判出，代价是重复样本进入训练集、评测内容回流，前者稀释训练信号，后者使验收指标虚高。

两类错误的复核样本来源不同，口径见表 2-5C。三条通道都要求**随机抽取**：不专挑难的，也不专挑相似度接近阈值的。按难度抽样会使估计出的误杀率系统性偏高，按相似度抽样会使它偏低，两种偏差在报表上都看不出来。确需按来源或数据集类型分层抽取的，用分层口径计算，分层比例一并留档（算法同 5.4 节）。

表 2-5C　误杀与漏检的复核通道、抽样口径与处置

| 复核通道 | 针对的错误 | 抽样口径 | 判据 | 结论的回流去向 | 不达标处置 |
|---|---|---|---|---|---|
| 删除样本抽检 | 误杀 | 每批次从 decision 为删除的样本中随机抽 200 条，双盲复核 | 复核人判定"该条含原条所无的信息"即计一次误杀 | 误杀率与置信区间进质量治理报告第 2 章；误杀集中的字段进关键字段集修订建议 | 误杀率高于 2% 则该批次删除动作整体撤销，自隔离区回取，阈值调向保守侧重跑 |
| 复核带全量复核 | 两者 | 落入人工复核带的样本全量复核，不抽样 | 按表 2-3 的数据集类型分别适用判重阈值 | 复核结论用于反推阈值应往哪边移，进季度校准记录 | 复核带样本量超过人工产能时，先扩宽保守侧、收窄激进侧，不直接放行 |
| 保留样本抽检 | 漏检 | 每批次从 decision 为保留的样本中随机抽 200 条，按内容两两配对复核 | 复核人判定"这两条是同一份信息"而工具未判重即计一次漏检 | 漏检集中的形态进归一化规则集或分片单元的修订建议 | 漏检率高于 5% 则下调判重阈值一档并重跑该批次 |
| 污染回灌测试 | 漏检 | 注入已知来自基准集的样本不少于 200 条，按原文照抄、同义替换、改写句式三档各不少于 60 条 | 注入样本是否被判为高风险命中 | 逐档命中率进测试报告与质量治理报告 | 按 2.2.5 节的不达标处置执行 |

复核台账逐条记录：复核批次、抽样方式与抽样量、复核人角色（记角色不记姓名）、自动判定结论、人工判定结论、是否一致、不一致的原因归类。台账按季度汇总，汇总结果是阈值校准的唯一输入——阈值不按经验调，按台账调。

复核结论与自动判定不一致时，一致率的计算与报告按 5.4 节的差值纠正口径执行，报"点估计（置信区间）"两段式，并同时登记人工复核样本量与自动判定样本量。

#### 2.2.10 原始来源保留与隔离区回取

本工具不对任何样本做物理删除。判为删除的样本移入隔离区，隔离区按数据集版本分区存放，保留期默认一个版本周期（可配置为 7 至 180 日）。隔离的目的有两个：复核推翻结论时可回取；归因阶段发现某类知识缺失时，可核查是否曾被误删。

隔离样本保留的字段见表 2-5D。其中原始来源一组字段不可缺省——缺了这组字段，回取的样本无法续接血缘，回取就等于重新引入一条无来源的数据。

表 2-5D　隔离区留存字段与回取流程

| 分组 | 字段 | 用途 |
|---|---|---|
| 样本本体 | 样本标识、归一化前原文、原始文件引用、模态标记 | 回取后无需重新采集 |
| 原始来源 | 源系统标识、业务主键（图号加版次／施工号加零件号／工单号加工序号／炉次号／焊缝加焊道／设备编码）、取数时间、原文件指纹、入库批次标识 | 回取后续接血缘；核查该来源是否被成批误删 |
| 处置记录 | 所属重复组标识、被删理由、命中规则、相似度及其算法口径、保留样本标识、判定时所用的四套索引版本 | 复核时重现"当时为什么判成重复" |
| 同族关联 | 同族变体关联样本标识列表 | 族关系的双向登记在隔离后仍保留 |
| 隔离管理 | 进入隔离的时间、保留到期时间、回取申请与审批记录（记角色不记姓名） | 审计与到期清理 |

回取按五步执行：提出回取申请并说明理由（复核推翻、归因发现缺失、来源成批误删）；校验该样本的原始来源字段齐备且源对象仍可追溯；按当前版本的归一化规则重算指纹并重跑一至三级判定，确认不与现有保留样本重复；血缘续接，追加一条"自隔离区回取"的处理记录，不改写原有记录；写入当前数据集版本并在质量治理报告的"待补与存疑"章登记本次回取。五步中第三步不可省——若当时的误判源于阈值过松，直接回取会把一条真重复放回数据集。

保留期到期后的清理同样留痕：清理前生成一份到期清单（样本标识、原始来源、被删理由），清单保留期不短于项目质保期。隔离区的读取与回取属敏感操作，按 5.5.2 节的授权矩阵控制，操作进审计日志。

#### 2.2.11 性能、接口与验收

处理规模按首期数据量估算：63 万张图纸及其配对工艺卡，加上四类数据集的候选样本。一级与二级算子按批次并行，单批 10 万条，支持断点续跑；三级向量化是算力主要消耗项，按增量处理，已入索引的样本不重复编码；四级索引常驻，训练集逐条查询。指标口径与性能承诺在非功能性章节统一给出（见 T11），本节不重复列数值。

接口按 3.2.3.11 的统一口径提供（见第 5 节）。验收按五件套交付：演示样例用一批真实图纸与工艺卡的脱敏子集跑通四级流水线；输入输出样例给出上表全部字段的实例；配置说明覆盖表 2-2 与表 2-3 的全部可配项；接口说明含任务创建、查询、结果获取、重试、导出、回调六类调用；测试报告含回灌测试结果与抽样复核一致率（b1157、b1158）。

### 2.3 数据分布分析与均衡工具链（3.2.3.8.2）

#### 2.3.1 数据集分布的八个统计维度

工具支持从类别、领域、来源、长度、难度、时间、质量等级与模态八个维度做分布统计与可视化（b1089、b1090）。八个维度在矿装数据集上各有具体取值，统计才有意义；若只按通用维度统计，得到的图表看不出问题在哪。表 2-6 把八个维度落到本项目的具体对象上。

表 2-6　八个分布维度在本项目的取值口径（b1089、b1090）

| 维度 | 取值口径 | 要看出什么 |
|---|---|---|
| 类别 | 备料 28 道工序、热处理三级判定、焊接缺陷类别、故障名录条目、选型机型档位 | 哪些类别样本过少，模型在这些类别上不可用 |
| 领域 | 供需计划、产品工艺设计、制造过程、质量四个数据域及下级业务域 | 与配比目标的偏差（配比见 T1C） |
| 来源 | 产品全生命周期管理、企业资源计划、制造执行、质量管理、仓储物流、协同办公、采集监控、远程运维等取数通道 | 是否被单一来源主导；来源质量差异是否传导到数据集 |
| 长度 | 文本按字数分档，时序按时长分档，图纸按要素数分档 | 长度偏置是否使模型只会处理短样本 |
| 难度 | 按标注一致率、专家标注耗时、模型初判置信度三项合成分档 | 简单样本是否占比过高，难样本是否不足 |
| 时间 | 按图纸签发年份、工单完工时间、炉次开炉时间、报警发生时间分档 | 是否只覆盖近年；老工艺与新工艺的比例 |
| 质量等级 | 按质检结论与血缘完整度分 A／B／C 三档 | 低质量样本的占比与分布位置 |
| 模态 | 文本、图纸、照片、时序、表格、视频 | 多模态样本是否集中在少数几类任务上 |

可视化按维度性质选图形：类别与领域用条形图并按占比排序，长度与难度用直方图加累积曲线，时间用折线图，来源用堆叠条形图按类别拆分，模态用矩阵图展示模态与任务类型的交叉覆盖。两个维度的交叉分布另出热力图，默认出"类别×来源"与"类别×时间"两张，这两张是暴露偏置最有效的视角——某一类别的样本若全部来自同一个来源或同一个时间段，该类别的泛化能力存疑。可视化输出为图表文件与数据表双份，图表进质量治理报告，数据表供复核与再分析。

统计本身的正确性是一项可回归测试的指标。**指标值与适用条件**：对按已知分布构造的数据集，工具的统计结果与构造参数的偏差不超过千分之一，八个维度逐项比对；适用条件是构造集的维度取值与表 2-6 的取值口径一致。**测量方法**：每次工具版本发布前跑一次构造数据集回归测试，八个维度与两张交叉热力图逐项比对，比对结果随测试报告提交。**不达标处置**：该项属确定性计算，偏差超限即判为工具缺陷，该版本不交付，修复后重测，不以"统计口径差异"解释。

#### 2.3.2 偏置、异常与漂移的识别口径

工具支持识别长尾类别、来源偏置、长度偏置、异常峰值、批次漂移以及增强前后的分布变化（b1091、b1092）。六种情形各有判定口径，口径必须写死，否则"偏置"是个主观词，验收时无从核对。

长尾类别按双条件判定：某类别样本占比低于 1%，且绝对数量低于该类任务的最小可用量。最小可用量按任务类型给出默认值（分类类任务每类不少于 200 条，生成类任务每类不少于 50 条，诊断类任务每种故障不少于 30 个事件段），实际值随蓝图设计确认。两个条件都满足才判长尾，只满足占比条件的不判——数据集总量大时，占比 0.5% 也可能有上千条，够用。

来源偏置按单一来源占比与来源熵两项判定：某一来源在某类别内占比超过 70%，或该类别的来源分布熵低于阈值，判为来源偏置。长度偏置按长度分布的偏度与分位数判定：中位数与均值差异超过一倍标准差，或 90 分位长度不足 10 分位长度的三倍（分布过窄），判为长度偏置。

异常峰值按分位数与局部密度判定：某个取值点的样本密度超过邻域中位密度的 10 倍，判为异常峰值。这类峰值在矿装数据上多半有业务原因而非数据错误。某个槽宽档位是主力机型，样本自然多；某一年因大订单图纸数量激增。工具的职责是报出来并提示可能原因，不自动削峰。处置建议分三种：业务原因造成的记入数据卡说明；取数逻辑造成的（如某批次重复导入）退回去重环节；标注口径造成的（如标注员倾向于选某个默认值）退回标注环节复核。

批次漂移按群体稳定性指数（Population Stability Index，PSI）判定，以首批次或指定基准批次为参照：PSI 不超过 0.1 判稳定，0.1 至 0.25 判需关注，超过 0.25 判显著漂移。显著漂移触发两个动作：核查该批次的取数范围与标注规则是否变更，以及核查是否有新来源接入。增强前后的分布变化按同一套 PSI 口径比对增强前数据集与增强后数据集，PSI 超过 0.25 说明增强改变了数据集形状，须回看增强参数（增强工具见 T2B）。

表 2-7　六种分布问题的判定口径与处置（b1091、b1092）

| 问题 | 判定口径 | 默认阈值 | 处置动作 | 阻断发布 |
|---|---|---|---|---|
| 长尾类别 | 占比与绝对数双条件 | 占比 <1% 且绝对数低于最小可用量 | 按 2.3.4 节选均衡方法；不可行者记入数据卡 | 不阻断，须登记 |
| 来源偏置 | 单一来源占比或来源熵 | 单来源 >70% | 扩展取数来源；暂不可行者标注适用范围 | 不阻断，须登记 |
| 长度偏置 | 偏度与分位数比 | 均值中位数差 >1σ 或 P90/P10 <3 | 按长度分层采样补齐 | 不阻断 |
| 异常峰值 | 局部密度比 | >邻域中位密度 10 倍 | 判因后分别退回去重／取数／标注环节 | 判因前挂起 |
| 批次漂移 | PSI 对基准批次 | >0.25 显著 | 核查取数范围与标注规则变更 | 显著漂移阻断该批次入库 |
| 增强前后变化 | PSI 对增强前 | >0.25 | 回看增强参数与增强比例 | 阻断至参数修正 |

#### 2.3.3 覆盖度、类别不平衡与长尾不足的计算口径与算例

2.3.2 节给出了六种分布问题的判定条件，本小节给出三项核心量的计算式、一组算例与由算例导出的补充路径。给算例的用处是让这三个量在验收时可被独立复算：招标方拿到分布统计表，按下列计算式自己算一遍，应得到同一结果。

**覆盖度**按类别计，计算式为：某类别的覆盖度 ＝ 该类别已有合格样本数 ÷ 该类别的最小可用量。合格样本指质检通过且血缘齐备的样本，合成样本按其占该类别的实际条数计入但单独标记。覆盖度不小于 1 判覆盖充分，0.3 至 1 判覆盖不足，小于 0.3 判覆盖盲区。分母的最小可用量按任务类型取值：分类类任务每类 200 条，生成类任务每类 50 条，诊断类任务每种故障 30 个事件段，实际值随蓝图设计确认。

**类别不平衡度**按数据域内计，取两个量：不平衡比 ＝ 域内最大类别样本数 ÷ 域内最小类别样本数；归一化熵 ＝ 实际类别分布的信息熵 ÷ 同类别数下均匀分布的信息熵。不平衡比大于 20 或归一化熵低于 0.6，判该域类别不平衡。取两个量而不取一个，是因为不平衡比只看两端、对中间分布不敏感，归一化熵只看整体形状、对单个极小类别不敏感，两者互补。

**长尾不足量**按类别计，计算式为：长尾不足量 ＝ max（0，最小可用量 － 已有合格样本数）。这个量是补齐需求单上的"目标补充条数"，也是均衡方法上限校验的被除数。

表 2-7A　三项核心量的计算算例（备料工序类别维度，样本数为算例假设值）

| 类别 | 已有合格样本数 | 最小可用量 | 覆盖度 | 长尾不足量 | 占全域比 | 判定 |
|---|---|---|---|---|---|---|
| 下料 | 4 800 | 200 | 24.0 | 0 | 32.0% | 覆盖充分；为域内最大类别 |
| 压弯 | 3 100 | 200 | 15.5 | 0 | 20.7% | 覆盖充分 |
| 钻孔 | 2 450 | 200 | 12.3 | 0 | 16.3% | 覆盖充分 |
| 坡口加工 | 1 020 | 200 | 5.1 | 0 | 6.8% | 覆盖充分 |
| 校平 | 620 | 200 | 3.1 | 0 | 4.1% | 覆盖充分 |
| 预热 | 148 | 200 | 0.74 | 52 | 0.99% | 占比 <1% 且绝对数低于最小可用量，判长尾类别 |
| 火焰矫正 | 95 | 200 | 0.48 | 105 | 0.63% | 判长尾类别 |
| 高温回火 | 41 | 200 | 0.21 | 159 | 0.27% | 覆盖度 <0.3，判覆盖盲区 |
| 其余 20 道工序合计 | 2 726 | —— | —— | —— | 18.2% | 逐类另行计列 |
| 全域合计 | 15 000 | —— | —— | 316 | 100% | 不平衡比 ＝ 4 800 ÷ 41 ≈ 117；归一化熵 ≈ 0.52，判类别不平衡 |

表 2-7A　数据来源：计算式见本小节；最小可用量取表 6-2 的默认值；样本数为说明计算口径的假设值，非实测数据。

算例读出三件事。其一，"预热"与"火焰矫正"两类同判长尾，但不足量相差一倍，补齐投入不同，补齐需求单要逐类给量而不是给一个总数。其二，"高温回火"覆盖度 0.21 已落入盲区档，对它做过采样无意义——41 条复制 3 倍仍是 41 条的信息量，模型会把这 41 条背下来，评测时该类别指标虚高。其三，全域不平衡比 117、归一化熵 0.52 同时越限，说明问题不在个别类别而在整体分布形状，处置应同时包含优势类别的欠采样与长尾类别的补齐，只做其中一边改善有限。

三项量越限后的补充路径按表 2-7B 选择。路径的选择只看两个输入：覆盖度所在档位，以及该类别在现场是否本就罕发。现场罕发的类别走第五条路径，不以合成样本凑数。

表 2-7B　按覆盖度档位与现场发生频次选择补充路径

| 覆盖度档位 | 现场发生频次 | 补充路径 | 具体动作 | 上限校验 | 不可行时的登记 |
|---|---|---|---|---|---|
| ≥1 且占比过高 | 常见 | 欠采样 | 优先削去重环节判为同族变体的样本，其次削时间上最密集的批次 | 削减后不低于最小可用量 | 不适用 |
| 0.3—1 | 常见但取数未覆盖 | 扩展取数范围 | 向采集接入提出取数需求，扩展来源系统或时间窗口（见 T12） | 不适用 | 取数不可行的转下一行 |
| 0.3—1 | 常见且取数已覆盖 | 过采样＋权重采样 | 复制倍数不超过 3 倍，权重跨度不超过 10 倍；过采样样本单独标记 | 过采样后占比不超过目标占比的 1.2 倍 | 上限内补不足的，余量转生成补齐 |
| <0.3 | 规则明确、可按约束生成 | 生成补齐 | 出补齐需求单交模板化生成工具（见 3.2 节），生成结果回本工具重新统计分布 | 合成样本占该类别不超过 30%，占数据集整体不超过配比目标的 10% | 上限内补不足的转下一行 |
| 任意 | 现场本就罕发 | 不做均衡，出覆盖不足登记 | 在数据卡登记该类别覆盖不足与当期实际条数；降低该类别的判定门槛并在场景侧设人工确认环节 | 不适用 | 该类别的相关评测维度不纳入当期验收口径 |

表 2-7B　数据来源：五种均衡方法与上限见表 2-8；覆盖度档位划分见本小节；罕发类别的处置口径与数据卡覆盖度如实统计口径一致（见 T1C）。

接前述算例：高温回火覆盖度 0.21，热处理不合格炉次在现场本就罕发，按表 2-7B 末行处置，出覆盖不足登记而非合成 159 条；预热与火焰矫正覆盖度分别为 0.74 与 0.48，工序本身常见而取数未覆盖，先走扩展取数路径，取数不可行的部分按不足量 52 条与 105 条出补齐需求单，交模板化生成工具执行（需求单字段见 2.3.4 节）。

#### 2.3.4 均衡处理的五种方法与选用条件

工具支持过采样、欠采样、权重采样、分层采样与生成补齐五种方式改善长尾类别覆盖（b1093、b1094）。五种方法不能随意选，选错会把一个问题换成另一个问题：对只有 20 条样本的故障类别做 10 倍过采样，模型会把这 20 条背下来，评测时该类别指标很高而实际不可用。选用条件按表 2-8。

表 2-8　五种均衡方法的选用条件与上限（b1093、b1094）

| 方法 | 适用条件 | 上限约束 | 已知副作用与防范 |
|---|---|---|---|
| 过采样 | 长尾类别已有一定样本量且样本本身多样 | 复制倍数不超过 3 倍；单类别过采样后占比不超过目标占比的 1.2 倍 | 过拟合；过采样样本单独标记，评测时按原始分布加权还原 |
| 欠采样 | 优势类别样本充裕且内部冗余明显 | 削减后不低于该类最小可用量；优先削去重环节判为同族变体的样本 | 丢信息；被削样本保留在隔离区可追回 |
| 权重采样 | 训练侧支持样本权重 | 权重跨度不超过 10 倍 | 权重过大等效过采样；权重随数据集版本固化并记入数据卡 |
| 分层采样 | 需要在多个维度同时控制比例 | 分层维度不超过 3 个，避免层内样本过少 | 层数爆炸；层内样本少于 30 条的层合并处理 |
| 生成补齐 | 长尾类别样本严重不足且业务规则明确可生成 | 合成样本占该类别不超过 30%；占数据集整体不超过配比目标的 10% | 合成样本与真实分布偏离；合成样本全部打标可识别，评测集一律不含合成样本 |

生成补齐与模板化数据生成工具链配套使用：分布分析识别出需要补齐的类别与补齐量，模板化生成工具按业务约束生成，生成结果回到本工具重新统计分布并复核是否达到目标（见 3.2 节）。两者之间的接口是一张补齐需求单，含类别、目标数量、必须覆盖的参数组合、禁止出现的组合（如某材料牌号不允许某道工序）。

有一类情形不做均衡：当某个类别在现场本就极少发生，而数据集的用途是让模型在遇到时能识别，此时正确做法不是把样本凑到与常见类别相当，而是降低该类别的判定门槛并在场景侧设人工确认环节。工具在这种情形下的输出是一条明确的覆盖不足登记，而不是一批合成样本。热处理不合格炉次、焊接低频缺陷、在役装备的稀有故障模式都属此类。这一点与数据卡的覆盖度如实统计口径一致（见 T1C）。

#### 2.3.5 质量治理报告

工具输出质量治理报告，报告含问题样本清单、质量指标、分布变化、风险等级与建议处理动作（b1095、b1096）。报告按数据集版本出，一个版本一份，目录固化为表 2-9，不随批次调整，便于逐版本比对。

表 2-9　质量治理报告目录与内容口径（b1095、b1096）

| 章 | 内容 | 来源 |
|---|---|---|
| 一 | 本版本概要：数据集标识、版本号、样本量、处理批次、处理时间窗 | 任务骨架登记 |
| 二 | 质量指标：去重率、污染命中率、校验通过率、血缘挂接率、标注一致率、低质量样本占比 | 各算子汇总 |
| 三 | 问题样本清单：按问题类型分节，每条给样本标识、问题描述、建议动作、责任环节 | 重复组清单＋污染报告＋校验结果 |
| 四 | 分布现状：八个维度统计表与图，两张交叉热力图 | 分布统计算子 |
| 五 | 分布变化：与上一版本及基准批次的比对，PSI 与关键类别占比变化 | 分布统计算子 |
| 六 | 风险等级：按阻断项、须登记项、提示项三档汇总，列明阻断项的解除条件 | 质量检查节点判定 |
| 七 | 建议处理动作：逐条对应第 3 章与第 6 章，给出责任环节与期限建议 | 规则库＋归因工具 |
| 八 | 待补与存疑：本版本未能解决的项，含污染未裁定项、覆盖不足类别、血缘不全样本 | 各算子遗留项登记 |

报告须设「未解决问题」专章：未解决项逐条列明并随版本累计，解决一条划掉一条，不得跨版本消失。报告同时输出为 Markdown 正文与附表 CSV，附表可直接导入运营平台的质量看板（平台见 T3）。

#### 2.3.6 执行步骤、输入字段与阈值来源

一次分布分析与均衡任务按七步推进，见表 2-9A。统计类步骤的正确性无法靠眼看，只能靠已知答案反推，因此第二步与第三步都设构造数据集回归测试（用例见 6.2.3 节）。

表 2-9A　分布分析与均衡的执行步骤、输入字段与阈值来源

| 步 | 动作 | 用到的输入字段 | 算法或判据 | 阈值及其来源 | 失败或异常时的复核 |
|---|---|---|---|---|---|
| 一 | 维度取值归一 | 类别标签、领域标签、来源标识、长度、难度三项合成因子、时间字段、质检结论、模态标记 | 按各维度的分档规则把原始取值映射到统计档位 | 分档规则为配置项，变更影响历史可比性，须登记 | 枚举值不在字典内的样本入"字典待补清单"，不归入"其他"档——归入其他档会掩盖字典缺项 |
| 二 | 八维度分布统计与交叉表 | 归一后的八维取值、样本权重 | 逐维度计数与占比；按配置的两维组合出交叉热力图数据表 | 交叉组合为配置项，默认类别×来源、类别×时间 | 与构造数据集的已知分布比对，偏差超过千分之一即判工具缺陷 |
| 三 | 三项核心量计算 | 各类别合格样本数、最小可用量、域内类别计数 | 按 2.3.3 节的覆盖度、不平衡比、归一化熵、长尾不足量四个计算式 | 最小可用量随蓝图设计确认；不平衡比 20、归一化熵 0.6、占比 1% 为配置项 | 最小可用量未确认的任务类型按默认值计算并在报告中标注"按默认值" |
| 四 | 六类分布问题判定 | 第二步与第三步的结果、基准批次标识、增强前数据集版本 | 按表 2-7 的六条判定口径；漂移按群体稳定性指数对基准批次计算 | 判定阈值见表 2-7，属配置项 | 基准批次未指定时默认取首批次并在报告中标注；指定批次不可读则该项不判定，登记为未检 |
| 五 | 异常峰值归因 | 峰值所在取值点、该点样本的来源与批次分布、重复组标识 | 判三类成因：业务原因、取数逻辑重复导入、标注默认值倾向 | 密度倍数阈值为配置项，默认 10 倍 | 三类都不成立的峰值挂起，转人工判因，判因前该批次不入库 |
| 六 | 补充路径选择与均衡方案生成 | 覆盖度档位、现场发生频次标记、配比目标 | 按表 2-7B 逐类别选路径；按表 2-8 校验各方法上限 | 上限值见表 2-8，属配置项 | 请求超出上限的均衡动作直接拒绝并返回策略类错误，不执行后再告警 |
| 七 | 质量治理报告生成 | 各步结果、重复组清单、污染报告、校验结果、工单状态 | 按表 2-9 的八章目录组装 | 报告模板版本为配置项 | 第 8 章"待补与存疑"为空时不得省略该章，须写明本版本无遗留项 |

表 2-9A　数据来源：招标文件 3.2.3.8.2（1）—（4）（b1089、b1091、b1093、b1095）；阈值取值见表 2-7、表 2-8 与配置清单表 6-2。

## 3、数据生成控制与评测类工具链（3.2.3.9）

本类含模板化数据生成、数据集切分与基准构建两个工具链。

### 3.1 类级能力范围与输入输出口径

这一类工具要保障四件事：生成数据格式稳定、内容可解释、评测集长期可比、数据版本可管理（b1098）。四件事看着分属两头，实际共一条线索，即可控。合成数据如果不可控，就只是一批看起来像真数据的噪声；评测集如果不可控，这一轮与下一轮的指标就不能比；版本如果不可控，出了问题找不回当时用的是哪批数据。本类的两个工具链分别管生成侧的可控与评测侧的可控。

把这一类放在矿装场景上看，可控的分量尤其重。甲方的六个专业场景中，有四类数据当前根本没有记录，须从零补录：选型的投运使用评价、热处理的装载量与码装方式登记、焊接的层间温度、健康诊断的维修事实。这些数据的正确建设方式是在既有业务流程里增设填报入口，由系统预填、经手人确认，而不是一次性补录或靠生成填满。

模板化生成工具在这里的作用是有限且明确的：为"天然稀少但后果严重"的情形构造样本，让模型在遇到时有过见识；以及为格式稳定、规则清晰的结构化记录批量产生训练与评测样本。我方不以合成样本替代真实数据：合成样本一律打标可识别，评测集不含合成样本。这条界线在 3.2.6 节的验收口径中写入。

表 3-1　生成控制与评测类工具链输入输出口径（b1099）

| 类别 | 项目 | 矿装对象上的具体取值 | 格式 |
|---|---|---|---|
| 输入 | 规则模板 | 工艺卡模板、检验记录模板、选型校核问答模板、故障现象—处置问答模板 | 模板文件，含槽位定义与条件逻辑 |
| 输入 | 参数字典 | 设备型谱、部件型谱、材料牌号表、备料 28 道工序字典、故障名录、缺陷类别表、质量指标项 | 结构化字典，带版本号 |
| 输入 | 业务约束 | 工序先后约束、材料与工艺匹配约束、参数取值窗口、禁止组合清单 | 约束规则文件 |
| 输入 | 采样配置 | 各参数的取值分布、组合覆盖要求、生成数量、随机种子 | 配置文件 |
| 输入 | 切分策略 | 随机／分层／时序／按来源隔离／按文档级／按业务场景 | 配置文件 |
| 输入 | 评测协议 | 题型、能力维度、评分规则、指标口径、复核规则 | 协议文件，带版本号 |
| 产出 | 结构化合成样本 | 带完整字段的合成记录，标记为合成来源 | JSONL／Parquet |
| 产出 | 生成批次 | 批次标识、模板版本、参数版本、数量、校验结果、审核状态 | 批次台账 |
| 产出 | 模板版本记录 | 模板内容快照、变更说明、生效范围、影响批次 | 版本库 |
| 产出 | train/valid/test 数据集 | 三份互斥样本集及其切分凭据 | JSONL＋切分记录 |
| 产出 | 评测结果 | 指标、样本级结果、版本对比、人工复核状态 | JSON＋CSV＋Markdown 报告 |

### 3.2 模板化数据生成工具链（3.2.3.9.1）

#### 3.2.1 采用模板化生成的原因

用大模型自由生成训练样本，产量高、成本低，但在工业数据集上有两个过不去的问题：一是字段不稳定，同一批生成的工艺卡样本，有的带坡口字段有的不带，入库后下游解析逻辑无从统一；二是内容不可解释，生成的一条"材料 Q345B、板厚 20、压弯角度 90 度、工序序列为下料—压弯—钻孔"是否符合备料分厂的实际工序约束，无从核对。工业数据集的下游用途是辅助工艺判断与质量判定，一条不符合实际约束的样本进入训练集，造成的不是精度损失而是错误知识。

模板化生成把这两个问题换成可管理的形式。字段由模板的槽位定义固定，生成多少批都是同一套字段；内容的合规性由业务约束与 Schema 校验两道检查把住，约束写在明处，可由工艺口逐条确认。代价是模板本身要人来编，覆盖面受模板数量限制。我方的取舍是：结构稳定、规则清晰、量大重复的记录类样本走模板化生成；需要自然语言多样性的问答与论述类样本由数据增强与改写工具承担（见 T2B），两者产出都回到本节 3.3 的切分工具统一管理。

### 图 3-1　模板化数据生成的执行链路与四道关卡

<svg viewBox="0 0 820 390" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="t3" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker>
  <marker id="t3r" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#7f1d1d"/></marker></defs>

  <rect x="16" y="24" width="124" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="78" y="43" text-anchor="middle" font-size="12">规则模板</text>
  <text x="78" y="61" text-anchor="middle" font-size="12">槽位＋条件逻辑</text>
  <rect x="16" y="86" width="124" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="78" y="105" text-anchor="middle" font-size="12">参数字典</text>
  
  <rect x="16" y="148" width="124" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="78" y="167" text-anchor="middle" font-size="12">业务约束</text>
  <text x="78" y="185" text-anchor="middle" font-size="12">禁止组合清单</text>
  <rect x="16" y="210" width="124" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="78" y="229" text-anchor="middle" font-size="12">采样配置</text>
  <text x="78" y="247" text-anchor="middle" font-size="12">分布＋覆盖＋种子</text>

  <rect x="180" y="100" width="128" height="80" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="244" y="128" text-anchor="middle" font-size="12">关卡一</text>
  <text x="244" y="148" text-anchor="middle" font-size="12">参数受控采样</text>
  <text x="244" y="167" text-anchor="middle" font-size="12">组合合法性预判</text>

  <rect x="344" y="100" width="128" height="80" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="408" y="128" text-anchor="middle" font-size="12">关卡二</text>
  <text x="408" y="148" text-anchor="middle" font-size="12">批量渲染</text>
  <text x="408" y="167" text-anchor="middle" font-size="12">按模板填充槽位</text>

  <rect x="508" y="100" width="128" height="80" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="572" y="128" text-anchor="middle" font-size="12">关卡三</text>
  
  <text x="572" y="167" text-anchor="middle" font-size="12">六类检查</text>

  <rect x="672" y="100" width="132" height="80" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="738" y="128" text-anchor="middle" font-size="12">关卡四</text>
  <text x="738" y="148" text-anchor="middle" font-size="12">人工审核</text>
  <text x="738" y="167" text-anchor="middle" font-size="12">按批次抽检</text>

  <path fill="none" d="M140 47 H160 V140 H180" stroke="#334155" stroke-width="1.2" marker-end="url(#t3)"/>
  <path fill="none" d="M140 109 H160" stroke="#334155" stroke-width="1.2"/>
  <path fill="none" d="M140 171 H160" stroke="#334155" stroke-width="1.2"/>
  <path fill="none" d="M140 233 H160 V140" stroke="#334155" stroke-width="1.2"/>
  <path fill="none" d="M308 140 H344" stroke="#334155" stroke-width="1.3" marker-end="url(#t3)"/>
  <text x="326" y="132" text-anchor="middle" font-size="11">参数组</text>
  <path fill="none" d="M472 140 H508" stroke="#334155" stroke-width="1.3" marker-end="url(#t3)"/>
  <text x="490" y="132" text-anchor="middle" font-size="11">候选样本</text>
  <path fill="none" d="M636 140 H672" stroke="#334155" stroke-width="1.3" marker-end="url(#t3)"/>
  <text x="654" y="132" text-anchor="middle" font-size="11">合规样本</text>

  <rect x="620" y="240" width="184" height="58" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="712" y="263" text-anchor="middle" font-size="12">合成样本入候选池</text>
  <text x="712" y="283" text-anchor="middle" font-size="12">标记合成来源与批次</text>
  <path fill="none" d="M738 180 V240" stroke="#334155" stroke-width="1.3" marker-end="url(#t3)"/>

  <rect x="180" y="300" width="400" height="56" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="380" y="323" text-anchor="middle" font-size="12">生成日志：模板版本｜变量取值｜采样参数｜校验结果｜审核状态</text>
  <text x="380" y="343" text-anchor="middle" font-size="12">一条样本一条日志，随样本血缘一并落库</text>
  <path fill="none" d="M244 180 V300" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#t3)"/>
  <path fill="none" d="M408 180 V300" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#t3)"/>
  <path fill="none" d="M572 180 V274 H620" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2"/>

  <path fill="none" d="M572 180 V210 H540 V140" stroke="#7f1d1d" stroke-width="1.3" stroke-dasharray="5 3" marker-end="url(#t3r)"/>
  <path fill="none" d="M672 150 V210 H120 V70" stroke="#7f1d1d" stroke-width="1.3" stroke-dasharray="5 3" marker-end="url(#t3r)"/>
  <rect x="185.1" y="193.5" width="290.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="330" y="206" text-anchor="middle" font-size="11" fill="#7f1d1d">校验不过退回渲染；抽检不过退回模板修订并回滚模板版本</text>
  <text x="410" y="376" text-anchor="middle" font-size="11">四道关卡顺序执行，任一关卡不过的样本不进入候选池</text>

  <rect x="26.0" y="107.9" width="104.0" height="20.0" fill="#f1f5f9" stroke="none" data-halo="1"/><text x="78" y="123" text-anchor="middle" font-size="12">型谱／工序／名录</text>

  <rect x="532.1" y="132.9" width="79.8" height="19.0" fill="#eef2f7" stroke="none" data-halo="1"/><text x="572" y="148" text-anchor="middle" font-size="12">Schema 校验</text>
</svg>

图 3-1　模板化数据生成的执行链路与四道关卡。数据来源：招标文件 3.2.3.9.1（1）—（5）（b1101、b1103、b1105、b1107、b1109）。

#### 3.2.2 模板、槽位与条件逻辑

工具支持通过规则模板、参数槽位、条件逻辑、枚举值、数值范围、组合关系与业务约束批量生成结构稳定、字段完整的样本（b1101、b1102）。七个要素的分工是：模板定结构，槽位定位置，枚举与数值范围定单个槽位的取值集合，条件逻辑与组合关系定槽位之间的相互制约，业务约束定整条样本是否成立。

槽位类型按表 3-2 划分。类型的作用是让采样器知道怎么取值、让校验器知道怎么检查，不是为了分类而分类。

表 3-2　槽位类型与取值方式（b1101、b1102）

| 槽位类型 | 取值方式 | 矿装取值举例 | 校验要求 |
|---|---|---|---|
| 枚举槽位 | 从参数字典取值 | 材料牌号、工序名、缺陷类别、故障条目 | 必在字典内且字典版本一致 |
| 数值槽位 | 在区间内按指定分布采样 | 板厚、压弯角度、目标硬度、保温时间 | 落在区间内；单位规范；精度位数符合 |
| 派生槽位 | 由其他槽位按公式计算 | 压弯件展开长（按中性层系数计算）、材料定额 | 公式版本登记；结果复算一致 |
| 序列槽位 | 从有序集合按约束抽子序列 | 工序序列（备料 28 道工序的合法子序列） | 先后约束成立；序列长度在范围内 |
| 文本槽位 | 从语句库取值或按句式模板填充 | 工艺要求描述、检验结论措辞 | 不含占位残留；术语与字典一致 |
| 引用槽位 | 引用既有真实对象标识 | 设备型号、部件编码、图号前缀 | 引用对象存在且在役状态符合 |
| 条件槽位 | 依前序槽位取值切换取值集合 | 材料为某牌号时热处理工艺窗口随之切换 | 条件分支覆盖完整，无落空分支 |

条件逻辑与组合关系用一套规则表达，不嵌入模板正文。这样做的理由是规则要让工艺口的人看得懂并逐条确认：规则写成"若材料牌号属于某组且板厚大于某值，则压弯工序前须插入预热工序"这类可读形式，由工艺部门签字确认后入库，而不是藏在模板的代码里。禁止组合另列清单，命中即判该参数组不合法，不生成。规则表与禁止组合清单都带版本号，变更须说明原因与影响范围，受影响的历史批次在台账里标注。

模板的编制与维护遵循一条纪律：**模板由业务规则驱动，不由样本数量驱动**。需要补哪类样本、补多少，由分布分析工具的补齐需求单决定（见 2.3.4 节）；模板只负责在约束内把样本造对。补齐需求与模板约束分开，避免为凑数量放宽约束。

#### 3.2.3 参数受控采样

工具支持对设备、部件、故障、工艺、质量指标与安全规则等变量进行受控采样，覆盖不同业务场景（b1103、b1104）。受控的含义有三层：取值在合法集合内、取值分布按指定分布而非一律均匀、参数之间的组合覆盖达到指定要求。

第一层由槽位类型保证。第二层按配置指定：主力机型档位与常见材料牌号按真实使用频次采样，使合成样本的分布形状不与真实数据相悖；稀有故障与低频缺陷按提升后的频次采样，这正是生成补齐要解决的事。两种采样目标相互矛盾，所以分批生成而非混在一批：**分布贴近批**用于补充常规样本的字段多样性，**稀有强化批**专门针对长尾类别，两批在数据集中分别计量、分别设占比上限（上限见表 2-8）。

第三层是组合覆盖。工业参数的组合空间大，全组合不可行也无必要。我方采用两两组合覆盖（pairwise）为默认口径：对参数集合中任意两个参数的取值组合，至少出现一次合法实例；对工艺口标记为关键的参数对，提升到三三组合覆盖。覆盖率由采样器统计并写入批次台账，未达覆盖目标的组合逐条列出，这份清单同时是工艺口核对约束表是否有遗漏的材料。随机种子固定并记入批次台账，同种子同配置重跑结果一致，这是可复现的前提（b1109）。

安全规则类变量的采样需要单独约束。涉及安全操作规程、禁止动作、应急处置的样本，不按分布采样，而按规程条目逐条生成——每一条规程至少对应一组样本，覆盖正例与典型违规例。这类样本的标准答案由安全管理口确认，不由模型生成。

#### 3.2.4 生成结果 Schema 校验

工具支持对生成结果做 Schema 校验，检查字段完整性、类型正确性、取值范围、单位规范、格式规范与业务约束六项（b1105、b1106）。六项检查按代价递增顺序执行，前一项不过就不做后一项，校验结果逐项记录而非只给通过与否。

表 3-3　Schema 校验的六类检查与失败处置（b1105、b1106）

| 检查项 | 检查内容 | 实现方式 | 失败处置 |
|---|---|---|---|
| 字段完整性 | 必填字段是否齐全，可选字段是否符合依赖关系 | JSON Schema 的 required 与 dependencies | 退回渲染，补填或标记该样本不可用 |
| 类型正确性 | 字段类型与声明一致，数组元素类型一致 | JSON Schema type 约束 | 退回渲染 |
| 取值范围 | 数值在区间内，枚举在字典内，日期在合理窗口内 | Schema 的 minimum/maximum/enum＋字典比对 | 退回采样器，参数组作废 |
| 单位规范 | 单位存在、单位与量纲匹配、数值与单位的量级合理 | 单位字典＋量纲表＋量级区间 | 退回渲染并记入单位规范问题清单 |
| 格式规范 | 编码格式（图号、物料编码、工单号）、文本编码、小数位数、分隔符 | 正则规则库 | 退回渲染 |
| 业务约束 | 规则表与禁止组合清单逐条判定 | 规则引擎 | 退回采样器；若约束本身存疑，挂起转工艺口裁定 |

校验通过率是本工具链的首要质量指标。指标值为结构类五项检查的通过率不低于 99%、业务约束检查的通过率不低于 95%，适用条件为模板版本与参数字典版本匹配且规则表已经工艺口确认；测量方法是校验器全量自动统计，分母为渲染产出的候选样本数。低于基线的处置不是放宽校验，而是修模板。通过率低说明模板的槽位定义或约束表达与实际规则有偏差，这正是模板需要修订的信号。修订后模板版本递增，上一版本生成的批次在台账中标注"按旧版模板生成"，必要时重跑。

业务约束检查有一类结果需要专门对待：校验判不合法，而工艺口认为合法。这说明约束表写错了，不是样本错了。工具把这类分歧单独列为"约束存疑清单"，提交工艺口裁定，裁定结论回写规则表并记入变更说明。把这条路径设出来，是为了让约束表能在使用中被修正，而不是一经写定就成为错误的来源。

#### 3.2.5 批量渲染与批量导出

工具支持按任务、模板、版本、生成批次与审核状态输出标准化训练或评测数据（b1107、b1108）。五个维度是导出的筛选条件，可任意组合，导出结果附一份清单说明本次导出的筛选条件与样本量，使导出件可核对。

渲染按批次并行，单批规模可配，默认一万条。渲染过程中的失败分两类分别处理：参数组导致的失败（如条件分支落空）记入失败清单并退回采样器；模板缺陷导致的失败（如槽位引用了不存在的字典项）立即中止该批次，避免产出一批统一错误的样本。中止的批次在台账中保留记录与失败原因，不静默重跑。

导出格式按 3.2.3.11 的统一要求支持 JSON、JSON Lines、Markdown、CSV 与 Parquet（见 5.2 节）。审核状态是导出的一道硬筛：默认只导出审核通过的样本；需要导出未审核样本的（如供工艺口预览），导出件文件名与清单中显式标注未审核，且该导出件不得作为训练输入。这条约束由导出接口强制，不靠使用者自觉。

#### 3.2.6 生成日志留存

工具记录模板、变量、采样参数、校验结果与人工审核状态（b1109、b1110）。日志的粒度是一条样本一条日志，不是一个批次一条日志。粒度之所以要到样本级，是因为后续归因工具要能从一条错题回溯到"这条样本是哪个模板的哪一版、用什么参数、哪一次采样、谁审过"（见 4.3.2 节）。批次级日志无法支撑这种回溯。

表 3-4　生成日志字段（b1109、b1110）

| 字段 | 含义 | 与血缘字段的对应 |
|---|---|---|
| sample_id | 样本标识 | 血缘主键 |
| batch_id | 生成批次标识 | 处理链路节点 |
| template_id／template_version | 模板标识与版本 | 规则版本 |
| param_dict_version | 参数字典版本 | 规则版本 |
| slot_values | 各槽位实际取值 | 处理链路参数 |
| sampling_config_hash | 采样配置指纹 | 处理链路参数 |
| random_seed | 随机种子 | 可复现凭据 |
| validation_result | 六类校验逐项结果 | 质检结果 |
| review_status／review_round | 审核状态与轮次 | 审核状态 |
| synthetic_flag | 合成来源标记 | 原始数据标识（标记为合成） |
| tool_version | 工具版本 | 工具版本 |

合成来源标记这一项不可缺省。标记的用途有三处：评测集构建时按此标记排除合成样本；分布统计时按此标记分别计量合成与真实样本的占比；归因分析时若某类错误集中在合成样本上，说明该模板的约束有问题。三处用途都依赖标记的完整性，所以标记由骨架写入而非由模板自填（见 1.4 节）。

#### 3.2.7 执行步骤、输入字段与阈值来源

一次模板化生成任务按七步推进，见表 3-4A。七步中第一步与第七步是本工具与其他工具的接口：输入接补齐需求单，输出接切分工具与分布统计。

表 3-4A　模板化数据生成的执行步骤、输入字段与阈值来源

| 步 | 动作 | 用到的输入字段 | 算法或判据 | 阈值及其来源 | 失败或异常时的复核 |
|---|---|---|---|---|---|
| 一 | 受理补齐需求单 | 类别、目标补充条数、必须覆盖的参数组合、禁止出现的组合 | 校验需求单的类别在参数字典内、目标条数未超出表 2-8 的上限 | 合成占比上限见表 2-8，属配置项 | 超上限的需求单直接驳回并返回策略类错误，不按上限截断后静默执行 |
| 二 | 模板与版本绑定 | 模板标识与版本、参数字典版本、规则表版本、禁止组合清单版本 | 四项版本须相互匹配，匹配关系在模板元数据中声明 | 无阈值，按定义判定 | 版本不匹配即中止，不按"取最新版"自行兜底——自行兜底会产出一批口径不明的样本 |
| 三 | 参数受控采样 | 槽位定义、取值分布配置、关键参数对清单、随机种子 | 按七类槽位分别取值；常规参数按真实使用频次采样，长尾类别按提升后频次采样；默认两两组合覆盖，关键参数对提升到三三组合覆盖 | 采样分布与覆盖强度为配置项；随机种子记入批次台账 | 未达覆盖目标的参数组合逐条列出，该清单同时提交工艺口核对约束表是否有遗漏 |
| 四 | 批量渲染 | 采样得到的参数组、模板正文、句式模板库 | 按参数组渲染样本；分布贴近批与稀有强化批分批渲染，不混批 | 单批规模为配置项，默认一万条 | 参数组导致的失败记入失败清单退回采样器；模板缺陷导致的失败立即中止该批次，不静默重跑 |
| 五 | Schema 六项校验 | 渲染产出、JSON Schema、单位字典、量纲表、正则规则库、规则引擎 | 按表 3-3 的六项依代价递增顺序执行，前一项不过不做后一项 | 结构类通过率 99%、业务约束通过率 95%，属工程门限，口径见 3.2.4 节 | 校验判不合法而工艺口认为合法的进"约束存疑清单"转裁定，裁定结论回写规则表 |
| 六 | 人工抽检 | 校验通过的样本、抽检比例配置 | 每批次随机抽 200 条由工艺口复核内容合理性 | 抽检量为配置项；合格率门限见 3.2.4 节 | 抽检随机抽取，不专挑校验得分高的；合格率与置信区间按 5.4 节口径报出 |
| 七 | 打标、留日志与交付 | 合成来源标记、生成日志十一项字段、审核状态 | 合成标记由公共层写入；日志按样本级留存；导出按审核状态硬筛 | 无阈值，按定义判定 | 合成标记写入失败即整批次作废，不允许未打标的合成样本进入候选池 |

表 3-4A　数据来源：招标文件 3.2.3.9.1（1）—（5）（b1101、b1103、b1105、b1107、b1109）；阈值取值见表 2-8、表 3-3 与配置清单表 6-3。

### 3.3 数据集切分与基准构建工具链（3.2.3.9.2）

这一工具链是本组七个工具中对验收数字可信度影响最直接的一个。

#### 3.3.1 六种切分策略

工具支持随机切分、分层切分、时序切分、按来源隔离切分、按文档级切分与按业务场景切分六种策略（b1112、b1113）。六种策略按数据性质与评测目的组合使用，而非择一。板材备料的图纸—工艺卡样本若只做随机切分，同一零件族的借用件会分落两侧，测试集上的指标反映的是"见过同族"而不是"会做新件"。

表 3-5　六种切分策略的适用条件与本项目用法（b1112、b1113）

| 策略 | 做法 | 适用条件 | 本项目的具体用法 |
|---|---|---|---|
| 随机切分 | 按比例随机分配 | 样本间相互独立 | 仅用于经文档级与来源隔离之后的二次细分 |
| 分层切分 | 按指定维度在每层内按比例切 | 需要各集合的类别分布一致 | 按工序类别、缺陷类别、故障条目分层，保证测试集覆盖全部关注类别 |
| 时序切分 | 按时间点前后切 | 数据有时间演进，关心对新数据的表现 | 以图纸签发年份、工单完工时间、炉次开炉时间为轴；近期数据留作测试 |
| 按来源隔离切分 | 同一来源的样本只进一个集合 | 来源间存在系统性差异 | 按取数系统与车间隔离，检验跨来源泛化 |
| 按文档级切分 | 同一文档的全部样本只进一个集合 | 一份文档切出多条样本 | 制度条款问答、技术手册问答按文档整份归属 |
| 按业务场景切分 | 按场景划分集合 | 需要评估跨场景迁移 | 用于专项评测：训练覆盖部分场景，测试另加未覆盖场景观察迁移 |

默认组合为三层：先按文档级与来源隔离做硬切分，再按时间轴切出时序测试集，最后在训练侧按类别分层细分验证集。基准测试数据集不从这条流水线出，另行建设并冻结（见 3.3.3）。默认切分比例为训练、验证、测试 8 : 1 : 1，但基准集与保留评测集的规模按招标文件给定的 0.95 万条口径单独规划（规模见 T1C）。比例可按数据集调整，调整须在切分记录中说明理由。

#### 3.3.2 切分前的泄漏检测

工具在切分前做泄漏检测，避免同源文档、近似问答、同一工单、同一图纸或同一评测题跨集合泄漏（b1114、b1115）。五类泄漏的判定口径见表 3-6。检测在切分前执行，而非切分后检查。切分后才发现泄漏意味着要重切，成本高且容易将就。

表 3-6　五类泄漏的判定口径与处置（b1114、b1115）

| 泄漏类型 | 判定口径 | 典型场景 | 处置 |
|---|---|---|---|
| 同源文档 | 样本的来源文档标识相同，或文档指纹相同 | 同一份技术手册切出的多条问答 | 整份文档归一个集合 |
| 近似问答 | 跨集合样本对的语义相似度超过阈值（口径同 2.2.4 节） | 同一制度条款的不同问法 | 相似簇整体归一个集合 |
| 同一工单 | 工单号相同，或工单所属施工号相同 | 同一工单的多道工序记录 | 按工单号归集；跨施工号的按施工号归集 |
| 同一图纸 | 图号相同，或同一零件族（借用关系链） | 借用件与原件的图纸与工艺卡 | 按零件族归集，族关系取自去重工具的同族变体登记 |
| 同一评测题 | 题目指纹相同，或与基准集／专家题库 n-gram 命中（口径同 2.2.5 节） | 基准题目被当作训练样本 | 训练侧隔离；题目标记作废并补题 |

同一图纸这一类要特别说明。零件族的识别依赖去重工具登记的同族变体关系（见 2.2.3 节），两个工具在这里是上下游：去重工具判出"这两条是同族变体，都保留"，切分工具据此把整族归入同一集合。若族关系缺失，切分工具会把借用件与原件分开，测试集指标虚高。因此切分任务的前置条件之一是该数据集已完成去重与同族登记，未完成的数据集不允许切分，这条由任务骨架的前置检查强制。

泄漏检测的指标按三段给出。**指标值与适用条件**：五类检测口径下，切分后交叉复查零命中；适用条件为该数据集已完成去重与零件族登记、文档标识与工单主键齐备、语义阈值与 2.2.4 节同版本。**测量方法**：切分完成后对训练、验证、测试三个集合两两交叉复查，逐类统计命中数，复查结果写入切分台账的泄漏检测结果字段。**不达标处置**：发现命中即重切，并作废基于旧切分得出的评测结论；族关系或文档标识缺失导致无法判定的，该数据集不允许切分，退回补登记。基于旧切分得出的评测数字必须作废而不是沿用，否则检测不成立。

### 图 3-2　三层切分与泄漏隔离

<svg viewBox="0 0 820 360" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="s3" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker></defs>
  <rect x="16" y="20" width="150" height="60" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="91" y="44" text-anchor="middle" font-size="12">洁净数据集</text>
  <text x="91" y="64" text-anchor="middle" font-size="12">已完成去重与同族登记</text>

  <rect x="206" y="20" width="166" height="60" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="289" y="44" text-anchor="middle" font-size="12">前置检查</text>
  <text x="289" y="64" text-anchor="middle" font-size="12">五类泄漏检测通过才继续</text>

  <rect x="412" y="20" width="166" height="60" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="495" y="44" text-anchor="middle" font-size="12">第一层·硬隔离</text>
  <text x="495" y="64" text-anchor="middle" font-size="12">按文档级＋来源隔离分组</text>

  <rect x="618" y="20" width="186" height="60" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="711" y="44" text-anchor="middle" font-size="12">第二层·时序切分</text>
  <text x="711" y="64" text-anchor="middle" font-size="12">近期数据留作测试集</text>

  <path fill="none" d="M166 50 H206" stroke="#334155" stroke-width="1.3" marker-end="url(#s3)"/>
  <path fill="none" d="M372 50 H412" stroke="#334155" stroke-width="1.3" marker-end="url(#s3)"/>
  <path fill="none" d="M578 50 H618" stroke="#334155" stroke-width="1.3" marker-end="url(#s3)"/>

  <rect x="618" y="112" width="186" height="56" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="711" y="135" text-anchor="middle" font-size="12">第三层·分层细分</text>
  <text x="711" y="155" text-anchor="middle" font-size="12">训练侧按类别切出验证集</text>
  <path fill="none" d="M711 80 V112" stroke="#334155" stroke-width="1.3" marker-end="url(#s3)"/>

  <rect x="60" y="200" width="200" height="66" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="160" y="224" text-anchor="middle" font-size="12">训练集　约 80%</text>
  <text x="160" y="245" text-anchor="middle" font-size="12">可持续扩充</text>
  <rect x="290" y="200" width="200" height="66" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="390" y="224" text-anchor="middle" font-size="12">验证集　约 10%</text>
  <text x="390" y="245" text-anchor="middle" font-size="12">训练中途监控用</text>
  <rect x="520" y="200" width="200" height="66" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="620" y="224" text-anchor="middle" font-size="12">测试集　约 10%</text>
  <text x="620" y="245" text-anchor="middle" font-size="12">来源与时间双重隔离</text>
  <path fill="none" d="M700 168 H740 V190 H160 V200" stroke="#334155" stroke-width="1.2" marker-end="url(#s3)"/>
  <path fill="none" d="M390 190 V200" stroke="#334155" stroke-width="1.2" marker-end="url(#s3)"/>
  <path fill="none" d="M620 190 V200" stroke="#334155" stroke-width="1.2" marker-end="url(#s3)"/>

  <rect x="60" y="290" width="660" height="52" rx="6" fill="#ffffff" stroke="#334155" stroke-dasharray="4 3"/>
  <text x="390" y="312" text-anchor="middle" font-size="12">基准测试数据集 0.95 万条＋保留评测集：不走本流水线，另行建设并冻结</text>
  <text x="390" y="332" text-anchor="middle" font-size="12">建设期内不参与任何训练；每次使用前校验内容指纹</text>
  <path fill="none" d="M160 266 V282" stroke="#334155" stroke-width="1" stroke-dasharray="3 2"/>
  <text x="250" y="282" text-anchor="middle" font-size="11">与三集合互斥，由污染扫描持续核验</text>
</svg>

图 3-2　三层切分与泄漏隔离。数据来源：招标文件 3.2.3.9.2（1）（2）（b1112、b1114）；基准集规模口径见本卷 T1C。

#### 3.3.3 基准测试集冻结管理

工具支持基准测试集冻结管理，固定样本内容、版本号、随机种子、题型、答案、判分规则、能力维度与使用范围（b1116、b1117）。冻结的意思是这八项一经发布就不可修改，要改只能发新版本并保留旧版本。这样做的用途单一而关键：使不同时间、不同模型、不同轮次的评测结果可比。若基准集可以悄悄改，两轮评测的分数差异就无法归因于模型或数据的改进。

表 3-7　基准集冻结要素与实现方式（b1116、b1117）

| 冻结要素 | 实现方式 | 变更处理 |
|---|---|---|
| 样本内容 | 全集内容取 SHA-256 指纹，逐条样本另取指纹 | 任一条变更即发新版本；旧版本留存 |
| 版本号 | 主版本.次版本.修订，主版本变更表示题目集合变化 | 版本号不复用 |
| 随机种子 | 题目顺序、选项顺序、抽样子集的种子固定并记录 | 种子变更须在协议版本中声明 |
| 题型 | 单选、多选、判断、填空、短答、长答、结构化抽取、图文问答、序列生成等枚举 | 新增题型须同步判分规则 |
| 答案 | 标准答案及可接受的等价答案集合 | 答案修订属修订版本；影响的历史评测结论标注 |
| 判分规则 | 每种题型对应的判分方法与分值权重 | 规则变更须重跑受影响的历史评测以保可比 |
| 能力维度 | 题目到能力维度的映射（维度见 4.2.1 节） | 映射调整属次版本变更 |
| 使用范围 | 该基准集可用于哪些评测场合，是否属保留评测集 | 范围收紧可即时生效；放宽须审批 |

基准集的建设与使用分离：建设过程中题目可以增删改，一经冻结发布即进入只读状态；评测引擎只能读取已冻结的版本，不能读取建设中的草稿版本。保留评测集是基准集中的一个子集，专用于验收，建设期内不向任何训练环节开放，也不在中途评测中使用——用过一次就不再是保留集了。保留集的使用须经审批并记录，每次使用后在台账中登记，使用次数与时点可查。

题目的来源与质量另有要求。基准题目来自专家题库与真实业务场景的回放窗口两条通道：专家题库由工艺、设计、质量、设备各口出题，题目须注明依据（哪一版工艺文件、哪一条规程、哪一份判据）；回放窗口取历史任务的原始输入与当时的真实产出，用于端到端任务级评测。两条通道的题目都要经过污染扫描核验未在训练集出现（见 2.2.5 节），核验通过方可入基准集。

##### 3.3.3A 按题目难度与区分度组题、基准压缩与锚题等值

冻结管理解决的是「基准集不被偷偷改」，题目来源解决的是「题目有依据」。但还有一个问题这两者都没回答：**这零点九五万条题目，每一条都有用吗。** 答案是没有。一道所有模型都答对的题，和一道所有模型都答错的题，都分不出版本高低——前者太容易，后者可能题面本身有问题或超出了数据集的覆盖范围。基准集里这两类题占比越高，基准的分辨力就越差，而总分却照样算得出来，于是「分数稳定」看起来像是模型稳定，实际是基准钝了。

本项目因此在组题环节引入两个题目参数，并据此构建与压缩基准集。

**第一步，估计每道题的难度与区分度。** 做法是在首批候选题上用若干个能力水平不同的模型试答——取网关侧登记的几档能力水平的通用模型，加上本项目不同训练阶段的检查点，构成一个能力梯度。一道题若各档模型答对率都接近百分之百，它的难度低且区分度为零；若各档都接近零，同样区分度为零；若答对率随能力档位单调上升，它的区分度高，这才是能分辨版本的题。难度与区分度两个参数由试答结果估计得出，不需要人工预判题目难易——人工预判的难度与模型实际表现的难度经常不一致，尤其在图纸识读与多步工艺推理这类任务上。

**第二步，据此组题。** 零区分度的题目不直接丢掉，而是移入「基础能力检查」子集——它们仍有用，用于确认模型没有在基础项上退化，但不参与版本间的能力比较。其余题目按能力维度与难度分层组题，保证每一个能力维度上都有若干道中高区分度的题，不出现「某个能力维度有二十道题但全是零区分度」这种看起来覆盖了实际测不出的情形。

**第三步，做基准压缩，日常回归用小集、阶段验收用全量。** 按题目参数挑选出的小型子集，可以在明显更少的题量下逼近全量基准的排序结论。这件事的实际价值在于回归频率：全量零点九五万条跑一轮的算力与时间开销，不允许每天跑；而小型子集可以每日或每批次跑，于是版本退化能在当天发现，而不是等到阶段评测。本项目因此把基准集的使用分两档——压缩子集用于日常回归与灰度放量判断，全量基准用于阶段验收与对外报告；两者的结论一致率作为一项指标度量，一致率下降说明压缩子集已经不能代表全量，需要按新的题目参数重新挑选。

**第四步，用锚题把跨版本的分数等值起来。** 基准集更新（补题、换题、剔除零区分度题）之后，新旧版本的分数不能直接比较——题目变了，分数的量纲就变了，而招标文件要求的「长期可比」正是要在基准更新之后仍然成立。解决办法只有一个：保留一组**锚题**，跨版本不变、不公开、不参与任何训练环节，在新旧两版基准中都出现；用模型在锚题上的表现把新版本的分数等值到旧版量纲，使「这一版比上一版提升多少」的结论在基准更新后依然可比。锚题集的规模、构成与使用记录纳入冻结要素一并管理，锚题一旦泄漏即整组作废并替换——这一点与保留评测集的管理口径相同。

**第五步，让冻结可以被独立复验。** 表 3-7 已经规定了内容指纹，这里再补一条口径：**指纹的算法与计算方式写入方案与随集交付的说明文档**，包括逐条样本指纹取什么字段、以什么顺序、按什么编码规范化，以及集合指纹如何由逐条指纹聚合。写明这一层的用处是，招标方可以自行计算并核对指纹，不必依赖我方工具的输出，也不必信任我方的记录。「可独立复验」这件事只有在算法公开时才成立，只给一串指纹值是不够的。

表 3-7A　题目参数化组题与锚题等值的首期基线、度量方式与回退

| 事项 | 首期基线 | 度量方式 | 未达基线时的回退 |
|---|---|---|---|
| 各能力维度的区分度达标比例 | 每个能力维度至少有一半题目达到中等及以上区分度 | 按能力梯度试答结果估计参数，按维度统计分布 | 不达标的维度补题；补题后仍不达标，在评测报告中声明该维度的分辨力有限，**不以调整统计口径的方式达标** |
| 压缩子集与全量基准的结论一致率 | 两者在同一批模型上的排序结论一致率不低于 90% | 同批模型两套集合各跑一轮，比较排序与分组结论 | 低于门限则重新挑选压缩子集；两次重选仍不达标，日常回归改用全量基准的分层抽样并说明口径 |
| 锚题等值的稳定性 | 同一模型在相邻两版基准上经等值后的主指标偏差不超过 1 个百分点 | 以若干固定模型作为等值校验对象，跨版本复测 | 偏差超限则该次基准更新不启用等值，新旧版本分数分开报告、不作跨版本比较 |

表 3-7A　数据来源：题目参数的估计依本小节所述能力梯度试答；三项基线为本方案设定的首期目标，属待验证目标，随首轮组题与首次基准更新的实测结果调整后报招标方确认。区分度不达标时的处置见表中末列。

#### 3.3.4 标准化评测运行

工具支持调用指定模型在冻结基准集上执行评测，输出指标、样本级结果、版本对比与人工复核状态（b1118、b1119）。这一项与 3.2.3.10.1 的多协议评测引擎是同一能力的两个侧面：本小节管"在冻结集上按协议跑一次并出结果"，4.2 节管"协议本身怎么定、多个模型怎么调度、多种判分怎么融合"，实现上是同一套引擎。

一次标准化评测运行的产出固定为四件：指标汇总（按能力维度与题型分别给分，附总分与计算口径）、样本级结果（逐题的模型输出、判分结果、判分依据、是否进入人工复核）、版本对比（与指定的历史运行结果逐维度比对，给出差值与显著性判断）、人工复核状态（复核范围、复核人角色、复核结论、复核后指标修正量）。四件产出同时输出机读格式与一份可阅读的评测报告。

运行的可重复性是本项目验收的一项依据，口径为：同一协议、同一模型、同一基准集版本、同一随机种子下两次运行，主指标偏差不超过 0.5 个百分点。偏差来源主要是模型推理的非确定性，因此运行配置中固定温度等解码参数并记录。偏差超限时的处置是该协议标记为不稳定，暂停用于验收口径，转人工评测或改用确定性更高的判分策略（见 4.2.3 节）。这一条写进验收口径，意味着我方要对评测结果的稳定性负责，而不只是对跑过一遍负责。

#### 3.3.5 版本化发布与回滚

工具记录每次切分的策略、输入数据版本、输出数据指纹、审批状态与评测协议版本，并支持回滚（b1120、b1121）。记录的字段见表 3-8。这张台账是数据集血缘的切分侧来源，与 4.4 节的血缘图谱对接。

表 3-8　切分与发布台账字段（b1120、b1121）

| 字段 | 含义 |
|---|---|
| split_task_id | 切分任务标识 |
| input_dataset_version | 输入数据集版本号与内容指纹 |
| strategy_config | 切分策略配置全文（三层组合、比例、分层维度、时间轴、随机种子） |
| leakage_check_result | 五类泄漏检测结果与复查结论 |
| output_fingerprints | train／valid／test 各集合的内容指纹与样本量 |
| benchmark_version | 本次配套使用的基准集版本 |
| protocol_version | 评测协议版本 |
| approval_status／approver_role | 审批状态与审批角色（不记个人姓名） |
| created_at | 生成时间 |
| superseded_by | 被哪一版本替代（回滚时反向指向） |

回滚按版本执行，不按文件执行。一次回滚包含三个动作：把数据集的当前指针指回目标版本；把基于被回滚版本产出的评测结论标注为"基于已回滚版本，仅供参考"；按血缘查出受影响的下游对象（训练任务、模型检查点、评测报告、已发布数据集组合）并逐一登记（影响范围分析见 4.4.2 节）。回滚不删除被回滚的版本，版本谱系完整保留。

回滚的触发条件写明三类，避免临场争议：发现跨集合泄漏且已影响评测结论；发现输入数据集存在未裁定的高风险污染；发现切分配置与台账记录不一致（说明有未经登记的改动）。三类任一成立即回滚，不作权衡。

#### 3.3.6 执行步骤、输入字段与阈值来源

一次切分与基准构建任务按八步推进，见表 3-8A。第一步的前置检查是本工具的硬闸：未完成去重与零件族登记的数据集不允许切分，这一条由任务骨架强制，不靠使用者自觉。

表 3-8A　切分与基准构建的执行步骤、输入字段与阈值来源

| 步 | 动作 | 用到的输入字段 | 算法或判据 | 阈值及其来源 | 失败或异常时的复核 |
|---|---|---|---|---|---|
| 一 | 前置检查 | 数据集版本、去重完成标志、零件族登记覆盖率、污染裁定状态 | 校验已完成去重与同族登记、无未裁定的高风险污染 | 族关系覆盖率门限为配置项 | 任一项不满足即拒收任务；族关系覆盖率不足时按图号前缀粗粒度归集，宁可过度隔离并在数据卡登记 |
| 二 | 归集单元构建 | 来源文档标识与文档指纹、工单号与施工号、图号与零件族标识、题目指纹 | 把样本归入不可拆分的归集单元：同文档、同工单、同零件族、同评测题各为一个单元 | 无阈值，按定义判定 | 归集键缺值的样本单独成组并标注，不并入他组——并入他组会制造跨集合泄漏 |
| 三 | 切分前泄漏检测 | 归集单元标识、跨集合候选样本对、语义相似度 | 按表 3-6 的五类口径逐类检测 | 近似问答阈值同 2.2.4 节，属配置项 | 检出命中即在切分前调整归集，不切完再补救 |
| 四 | 三层切分 | 归集单元、时间轴字段、分层维度、切分比例、随机种子 | 先按文档级与来源隔离硬切分，再按时间轴切出时序测试集，最后在训练侧按类别分层细分验证集 | 默认比例 8∶1∶1，属配置项；比例调整须在切分记录中说明理由 | 某一层内样本不足以支撑分层的，该层合并处理并登记 |
| 五 | 切分后交叉复查 | 三个集合的归集单元标识与样本正文 | 对三集合两两交叉复查五类泄漏 | 零命中，按检测口径确定性判定 | 复查发现命中即重切，并作废基于旧切分得出的评测结论 |
| 六 | 基准集组题与冻结 | 候选题目、能力梯度试答结果、能力维度映射、锚题集 | 按难度与区分度分层组题；零区分度题移入基础能力检查子集；八项冻结要素取指纹后发布 | 区分度达标比例、压缩子集一致率、锚题等值偏差见表 3-7A | 冻结后发现题目须改的，发新版本并保留旧版本，不在原版本上改 |
| 七 | 标准化评测运行 | 冻结基准集版本、协议版本、被测对象接口、随机种子 | 按协议在冻结集上执行，输出四件产出 | 重复性偏差 0.5 个百分点，见 3.3.4 节 | 偏差超限则该协议标记不稳定，暂停用于验收口径 |
| 八 | 版本化发布与台账登记 | 表 3-8 的十项台账字段 | 发布前校验输出指纹与审批状态；回滚按版本执行 | 回滚触发条件三类，按定义判定 | 配置与台账不一致即判为存在未登记改动，触发回滚 |

表 3-8A　数据来源：招标文件 3.2.3.9.2（1）—（5）（b1112、b1114、b1116、b1118、b1120）；阈值取值见表 3-5、表 3-6、表 3-7A 与配置清单表 6-4。

## 4、数据集验证与归因类工具链（3.2.3.10）

本类含多协议模型评测引擎、数据贡献度归因与错题溯源、数据集–模型版本血缘追溯三个工具链。

### 4.1 类级定位：用模型表现反向评估数据集

这一类工具的用途在招标文件里写得很清楚：通过模型表现反向评估数据集价值，并定位数据问题对模型能力的影响（b1123）。这句话定义了本包交付的质量证据链的最后一环，也定义了一条责任边界——工具评估的是数据集，不是模型。同一套评测结果有两种读法：模型方读它判断模型好不好，数据方读它判断数据够不够。本包按后一种读法组织工具产出，所有归因结论都指向数据侧的可执行动作（补哪类样本、修哪一批标注、改哪条规则），不指向模型侧的调参建议。智能场景建设不在本包范围。

反向评估能成立，依赖一个前提：模型在某道题上答错，能够追到是哪些训练样本导致的。这个前提在工程上不自动成立，需要三件事配套——评测可重复（否则错题本身不稳定）、错题可归类（否则一万条错题无从下手）、样本可追溯（否则归类结果落不到具体数据）。本类三个工具链正好对应这三件事：评测引擎管可重复，归因与溯源管可归类，血缘追溯管可追溯。

表 4-1　验证与归因类工具链输入输出口径（b1124）

| 类别 | 项目 | 本项目的具体取值 | 格式 |
|---|---|---|---|
| 输入 | 模型接口 | 经统一网关接入的推理接口；被测对象含基座、继续预训练、微调与偏好对齐各档及其检查点 | 接口配置，含限流与超时参数 |
| 输入 | 冻结基准集 | 基准测试数据集 0.95 万条及保留评测集，按版本引用 | 只读引用＋内容指纹 |
| 输入 | 评测协议 | 题型、能力维度、评分规则、种子、复核规则、指标口径 | 协议文件，带版本号 |
| 输入 | 判分规则 | 各题型的判分方法、权重、等价答案集合、裁判提示词版本 | 规则文件，带版本号 |
| 输入 | 评测错题 | 上一轮评测的失败样本清单 | JSONL |
| 输入 | 训练样本血缘 | 样本的来源、处理链路、批次、质检与审核记录 | 血缘库查询 |
| 输入 | 模型检查点 | 检查点标识、对应训练任务、使用的数据集版本 | 登记表引用 |
| 输入 | 训练任务日志 | 任务参数、数据集版本、起止时间、完成状态 | 日志引用 |
| 输入 | 数据子集标签 | 按数据域、来源、批次、合成与真实、标注轮次划分的子集标记 | 标签表 |
| 输入 | 发布审批记录 | 数据集与基准集的发布与审批记录（记角色不记姓名） | 台账引用 |
| 产出 | 模型评测报告 | 指标汇总、能力维度得分、题型得分、对比结论 | Markdown＋JSON |
| 产出 | 样本级评测结果 | 逐题输出、判分、依据、复核状态 | JSONL＋CSV |
| 产出 | 能力雷达图 | 按能力维度的得分图，多版本可叠加 | 图表文件＋数据表 |
| 产出 | 版本对比 | 数据集版本或模型版本之间的逐维度差值与显著性 | CSV＋Markdown |
| 产出 | 失败样本清单 | 错题及其聚类归属、关联训练样本 | JSONL＋CSV |
| 产出 | 归因报告 | 错误类型分布、关联数据问题、贡献度估计、修订建议 | Markdown＋附表 |

### 4.2 多协议模型评测引擎工具链（3.2.3.10.1）

#### 4.2.1 统一评测协议

工具支持建立统一评测协议，固化题型、能力维度、评分规则、随机种子、基准集版本、人工复核规则与指标口径，保证评测可重复执行（b1126、b1127）。协议是一份带版本号的文件，不是一组运行时参数；跑评测时引用协议版本，而不是逐项填参数。这个区别决定了半年后能否重跑出同样的结果。

协议的七项要素中，能力维度最需要按本项目定义。通用的能力维度（如推理、知识、指令遵循）对矿山装备制造数据集没有判别力。一个在通用推理维度得高分的模型，可能完全读不懂一张带坡口与压弯线的多视图图纸。我方按甲方的六个专业场景与五个通用场景提炼能力维度，见表 4-2。维度到题目的映射写在基准集的冻结要素里（见 3.3.3 节）。

表 4-2　评测能力维度与对应的现场判断（b1126）

| 能力维度 | 要测的是什么 | 典型题目形态 | 对应场景 |
|---|---|---|---|
| 图纸要素识读 | 从多视图读出材料牌号、板厚、外形轮廓、孔与方孔、坡口倒角、压弯线、粗糙度符号 | 给图纸出结构化抽取题 | 板材备料 |
| 工序序列编排 | 在备料 28 道工序的合法集合内挑选并排序，含分档规则 | 给零件信息出序列生成题 | 板材备料 |
| 展开与定额计算 | 按中性层系数换算压弯件展开长，计算材料定额 | 给参数出数值计算题 | 板材备料 |
| 选型校核判断 | 给定工况与一套配置，判断整机功率与链条安全系数是否过门槛 | 给工况与配置出判断题与短答题 | 产品智能选型 |
| 工艺借用判定 | 判断新件能否借用既有工艺，差异在哪 | 给两份图纸出对比题 | 板材备料、选型 |
| 过程—质量关联 | 由一段过程时序与工艺窗口判断质量结论 | 给曲线与参数窗口出三级判定题 | 热处理、焊接 |
| 缺陷识别与分类 | 由图像或检测记录判断缺陷类别与位置 | 给图文出分类与定位题 | 焊接质量 |
| 故障征兆诊断 | 由运行数据段与设备档案判断故障模式与证据档次 | 给数据段出诊断题 | 健康诊断 |
| 库存与需求判断 | 由物料、库存、商机数据给出储备建议与口径说明 | 给数据出短答与计算题 | 库存控制 |
| 依据可溯答复 | 回答时说明依据的是哪一版文件哪一条，无依据时明确不回答 | 给制度与技术文档出带引证要求的问答题 | 五个通用场景 |
| 权限边界遵守 | 在越权提问下拒答并说明原因 | 给越权问法出拒答题 | 五个通用场景 |
| 工具调用正确性 | 判断该调哪个工具、参数填得对不对 | 给任务出工具调用题 | 多场景通用 |

人工复核规则是协议中容易被忽略但必须固化的一项。规则要写明三件事：哪些判分结果必须人工复核（如裁判模型判分落在分界带内的、长答题全部、拒答题全部）、抽样复核的比例与抽样方法（默认对自动判分结果抽 10%）、复核与自动判分不一致时怎么办（不一致率低于 15% 则以复核结果修正该题并记录；不一致率达到或超过 15% 则该判分策略在本协议下标记失效，该题型全部转人工判分）。规则固化之后，"人工复核过了"这句话才有可核对的含义。

指标口径同样要写明而非默认。本方案固化四项：单题得分的计算方式与满分制、维度得分为该维度题目得分的加权平均（权重在协议中给出）、总分为各维度得分的加权和、置信区间按自助重采样 1000 次给出 95% 区间。指标口径与 S3 数据集质量评测方案的指标体系保持同一套说法，同一指标不在两处给不同定义。

区间给出来之后，还有一件事要在协议里固化，否则评测结论在验收会上站不住：**版本之间的比较怎么判。** 评测报告最常被追问的一句话是「这一版比上一版好了零点八个百分点，这是真的好还是波动」。本方案对此固化三条。

第一条，比较用配对口径，不比较两个独立区间是否重叠。两个版本跑的是同一批题目，逐题结果是成对的；把这些成对结果做配对重采样（二分类的判对判错用配对符号检验），得到的是「差值」的区间。若直接拿两个版本各自的区间看有没有重叠，会把本来能分辨出来的差异判成分辨不出——因为各自区间里包含了题目难度带来的变异，而这部分变异在两个版本上是共同的，配对之后就消掉了。这一条写进协议，使比较方法不因人而异。

第二条，重采样按**题目簇**进行，不按单题。同一份图纸、同一张工单派生出的若干道题彼此相关，若把它们当作独立样本重采样，算出来的区间会偏窄，报告显得比实际更有把握。协议中因此登记每道题的来源簇标识，重采样以簇为单位。

第三条，给出基准集规模与可分辨差异的对应关系。零点九五万条基准在题目层面能稳定分辨多大的差异，这个量级要在协议里写明；小于该量级的差异，结论一律表述为「未检出显著差异」，不表述为持平，也不表述为提升。这一条的作用是把「多小的改善值得报」这件事事先定下来，而不是每次报告时临时判断。

这三条与 3.3.4 节约定的「同协议同模型两次运行主指标偏差不超过零点五个百分点」说的不是一回事，不能混用：那一条讲的是**重复性**，即同样的东西跑两遍应当得到同样的结果；这三条讲的是**可分辨性**，即不同的东西跑出来的差异多大才算差异。两者都要有——重复性不好，任何比较都无意义；可分辨性不写明，比较出来的数就没有解释口径。判分涉及裁判模型时，区间还要覆盖裁判本身的不确定性，做法见 4.2.3 节。

#### 4.2.2 多模型并行评测调度

工具支持多模型并行评测调度，对基座模型、继续预训练模型、微调模型、强化学习或偏好对齐模型以及不同检查点做横向对比（b1128、b1129）。被测对象五档对应同一训练链路上的五个阶段；横向对比用于度量本轮数据增量对各能力项的贡献。本包不负责训练，被测对象由训练推理技术服务提供推理接口（见 T13）；本包负责按协议把它们跑在同一套冻结基准集上并给出可比的分数。

调度的实现要点有四条。其一是接口抽象：所有被测对象经统一网关以同一种调用形式接入，网关层处理鉴权、限流、超时与重试，评测引擎不感知对象差异。模型采用当期能力评测领先的通用大模型，可替换、可评测、可随代升级；替换时协议不变，只在运行记录中登记被测对象标识与版本。其二是并发与配额：按被测对象分别设并发上限与速率配额，避免一个慢对象拖住整批评测，也避免并发过高触发对端限流导致结果缺失。

其三是失败处理：单题调用失败按配置重试，重试仍失败的题目标记为"未获取输出"，单独计量而不计入得分分母——把超时当作答错会使慢对象的分数系统性偏低。未获取输出的比例超过 2% 时该次运行标记无效，需重跑。其四是公平性约束：同一批对比中，各对象的提示词模板、解码参数、上下文长度、工具可用性必须一致，差异项在运行记录中登记；不一致的运行不得用于横向对比，只能单独呈现。

### 图 4-1　多协议评测引擎的调度结构与一次运行的产出

<svg viewBox="0 0 820 400" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="e4" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker></defs>
  <rect x="16" y="24" width="150" height="48" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="91" y="46" text-anchor="middle" font-size="12">评测协议（版本化）</text>
  <text x="91" y="64" text-anchor="middle" font-size="12">题型·维度·规则·种子</text>
  <rect x="16" y="88" width="150" height="48" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="91" y="110" text-anchor="middle" font-size="12">冻结基准集</text>
  <text x="91" y="128" text-anchor="middle" font-size="12">使用前校验指纹</text>

  <rect x="206" y="48" width="140" height="68" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="276" y="74" text-anchor="middle" font-size="12">运行编排器</text>
  <text x="276" y="94" text-anchor="middle" font-size="12">按对象分配并发与配额</text>
  <text x="276" y="111" text-anchor="middle" font-size="11">公平性约束校验</text>
  <path fill="none" d="M166 48 H186 V82 H206" stroke="#334155" stroke-width="1.2" marker-end="url(#e4)"/>
  <path fill="none" d="M166 112 H186 V82" stroke="#334155" stroke-width="1.2"/>

  <rect x="386" y="18" width="150" height="32" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="461" y="39" text-anchor="middle" font-size="12">基座模型</text>
  <rect x="386" y="56" width="150" height="32" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="461" y="77" text-anchor="middle" font-size="12">继续预训练模型</text>
  <rect x="386" y="94" width="150" height="32" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="461" y="115" text-anchor="middle" font-size="12">指令微调模型</text>
  <rect x="386" y="132" width="150" height="32" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="461" y="153" text-anchor="middle" font-size="12">偏好对齐模型</text>
  <rect x="386" y="170" width="150" height="32" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="461" y="191" text-anchor="middle" font-size="12">各阶段检查点</text>
  <path fill="none" d="M346 82 H366 V34 H386" stroke="#334155" stroke-width="1.1" marker-end="url(#e4)"/>
  <path fill="none" d="M366 82 H386" stroke="#334155" stroke-width="1.1" marker-end="url(#e4)"/>
  <path fill="none" d="M366 82 V110 H386" stroke="#334155" stroke-width="1.1" marker-end="url(#e4)"/>
  <path fill="none" d="M366 82 V148 H386" stroke="#334155" stroke-width="1.1" marker-end="url(#e4)"/>
  <path fill="none" d="M366 82 V186 H386" stroke="#334155" stroke-width="1.1" marker-end="url(#e4)"/>
  <text x="366" y="212" text-anchor="middle" font-size="11">统一网关接入</text>

  <rect x="576" y="76" width="140" height="68" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="646" y="102" text-anchor="middle" font-size="12">判分融合层</text>
  <text x="646" y="122" text-anchor="middle" font-size="12">五通道按题型加权</text>
  <text x="646" y="139" text-anchor="middle" font-size="11">分界带转人工复核</text>
  <path fill="none" d="M536 110 H576" stroke="#334155" stroke-width="1.3" marker-end="url(#e4)"/>
  <text x="556" y="102" text-anchor="middle" font-size="11">输出</text>

  <rect x="500" y="250" width="148" height="60" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="574" y="273" text-anchor="middle" font-size="12">指标汇总</text>
  <text x="574" y="293" text-anchor="middle" font-size="12">维度分＋总分＋区间</text>
  <rect x="664" y="250" width="140" height="60" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="734" y="273" text-anchor="middle" font-size="12">样本级结果</text>
  <text x="734" y="293" text-anchor="middle" font-size="12">逐题输出与判分依据</text>
  <rect x="336" y="250" width="148" height="60" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="410" y="273" text-anchor="middle" font-size="12">版本对比</text>
  <text x="410" y="293" text-anchor="middle" font-size="12">差值＋显著性判断</text>
  <rect x="172" y="250" width="148" height="60" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="246" y="273" text-anchor="middle" font-size="12">失败样本清单</text>
  <text x="246" y="293" text-anchor="middle" font-size="12">转归因与溯源</text>

  <path fill="none" d="M646 144 V220 H574 V250" stroke="#334155" stroke-width="1.2" marker-end="url(#e4)"/>
  <path fill="none" d="M646 220 H734 V250" stroke="#334155" stroke-width="1.2" marker-end="url(#e4)"/>
  <path fill="none" d="M646 220 H410 V250" stroke="#334155" stroke-width="1.2" marker-end="url(#e4)"/>
  <path fill="none" d="M646 220 H246 V250" stroke="#334155" stroke-width="1.2" marker-end="url(#e4)"/>

  <rect x="16" y="334" width="788" height="46" rx="6" fill="#ffffff" stroke="#94a3b8" stroke-dasharray="4 3"/>
  <text x="410" y="354" text-anchor="middle" font-size="12">运行记录：协议版本｜基准集版本与指纹｜被测对象标识与版本｜解码参数｜种子｜未获取输出比例｜复核范围</text>
  <text x="410" y="372" text-anchor="middle" font-size="11">同协议同对象同种子重跑，主指标偏差超 0.5 个百分点则该协议标记不稳定，暂停用于验收</text>
</svg>

图 4-1　多协议评测引擎的调度结构与一次运行的产出。数据来源：招标文件 3.2.3.10.1（1）（2）（b1126、b1128）；3.2.3.9.2（4）（b1118）。

#### 4.2.3 多种判分策略融合

工具支持使用精确匹配、语义相似度、规则约束、行业指标、模型裁判与人工复核结果形成最终评分（b1130、b1131）。六种判分按题型分工后再合成，不对六种结果简单取平均，以免不适用通道稀释主判分。

表 4-3　六种判分方式的适用题型与融合口径（b1130、b1131）

| 判分方式 | 怎么判 | 适用题型 | 在融合中的角色 |
|---|---|---|---|
| 精确匹配 | 与标准答案或等价答案集合逐字比对（经归一化） | 结构化抽取、数值计算、枚举选择、工序序列 | 可用则以其为准，权重最高 |
| 语义相似度 | 向量相似度与标准答案比对，分段给分 | 短答、工艺要求描述 | 作主判分；低于分界带转人工 |
| 规则约束 | 按业务规则判定答案是否成立（如工序先后约束、参数窗口） | 序列生成、校核判断、参数给定 | 作否决项：违反硬约束即判零分，不与其他方式平均 |
| 行业指标 | 按领域计算方式给分（如序列编辑距离、定额偏差率、安全系数误差） | 序列生成、数值计算、诊断定级 | 作主判分，口径在协议中写明 |
| 模型裁判 | 由裁判模型按评分细则打分并给理由 | 长答、论述、引证充分性、拒答合理性 | 作主判分；须抽样复核校准 |
| 人工复核 | 按复核规则由业务口判定 | 全部长答题、拒答题、分界带样本、抽样样本 | 作最终裁定，覆盖自动判分结果 |

融合规则按三条执行。第一条，有否决项先判否决：规则约束判定违反硬约束的，该题判零分且标记违反的具体约束，不再计算其他通道。第二条，按题型取主判分并辅以校准：每种题型在协议中指定一个主判分方式与零到两个校准方式，校准方式的作用是在主判分落入分界带时触发人工复核，而不是直接改分。第三条，人工复核结果覆盖自动结果并留痕：覆盖前后的分值、复核人角色、复核理由都记录，便于统计自动判分与人工判分的一致率。

模型裁判这一通道需要额外的约束，因为它本身是模型，可能把错的判成对的。我方设的约束有三项：裁判提示词与评分细则版本化，变更须重跑受影响的历史评测以保可比；裁判模型的判分结果按不低于 10% 的比例抽样人工复核，一致率低于 85% 时该题型的裁判通道停用并转人工判分；裁判模型不参与自身训练数据的评测（即不用同源模型既生成样本又判分），避免自评。三项约束写入协议，不是实施时的自觉。

这三项之上还要再补一层，把裁判通道本身当作被评测的对象来管，而不只是当作一个判分工具。理由是裁判的毛病有两种：一种是判错，抽样复核能查出来；另一种是判得有系统性倾向，抽样复核查不出来，因为倾向在每一次判定上都只偏一点点，只在汇总时才显出来。后一种更需要处置。

**第一件，位置与长度两类偏差要在流程上消掉，不靠裁判自己克服。** 成对比较时把两个待比对象的呈现顺序正反各跑一遍、取平均，消掉「先出现的那个更容易被选中」这类顺序偏差；对长答题按答案长度分档统计裁判给分，若发现分值随长度单调上升而人工复核并不认同，则该题型的裁判通道按长度分档分别校准，或直接转人工。两项处置都写进评测协议，使它们是流程动作而不是提醒。

**第二件，裁判结论要给区间，不给单点。** 做法是同一题由不少于三个裁判配置独立判分（可以是不同提示词版本、不同参数设定，或不同的网关登记模型），取其共识区间作为该题的判分区间。区间窄说明裁判之间看法一致，可以采纳；区间跨过了及格分界或跨过了档位分界，说明这道题的判定本身存在分歧，转人工裁定。这一条把「裁判不确定」这件事从看不见变成可触发的处置条件。

**第三件，多模态题型不用裁判打绝对分，改用成对比较。** 这是一处有依据的差异化判断，需要讲清理由。裁判模型在多模态任务上的能力分布有一个特点：判断「A 比 B 好」比较可靠，给出「A 得七十八分」则很不稳定——同一份答案在不同批次、不同措辞的评分细则下，绝对分值能差出十几分，而相对优劣的判断基本一致。本项目因此对图纸解读、缺陷识别一类多模态题型，判分采用结构化字段比对为主、成对比较为辅的组合：字段能机械比对的部分（材料牌号、板厚、孔位、缺陷类别与位置）一律机械比对，剩下的描述性部分用成对比较排出优劣，不让裁判给绝对分。表 4-3 的「模型裁判」一行对多模态题型即按此口径执行。

**第四件，多模型横向对比的名次要带不确定性。** 评测结果里的排行榜若由成对比较聚合得出，名次之间的差距有大有小；把名次精确排到第几位，会把本来分辨不出来的两个模型排出先后。本项目的处置是在排行榜上标出「统计上不可区分」的分组——同组内不宣称先后，只宣称该组整体优于下一组。这个做法看起来是把结论说松了，实际是把结论说准了：验收会上一个带分组的排行榜，比一个精确到第几名却经不起追问的排行榜更站得住。

#### 4.2.4 多模态评测能力

工具支持多模态评测，覆盖图文问答、图纸解读、缺陷识别、视频理解、传感器诊断与工具调用等任务场景（b1132、b1133）。六类任务在本项目的落点与判分方式见表 4-4。多模态评测的难点不在模型调用，而在标准答案的形式——图纸解读的答案是一组结构化字段，缺陷识别的答案含位置信息，传感器诊断的答案含证据档次，三者的判分方式完全不同。

表 4-4　六类多模态评测任务的落点与判分（b1132、b1133）

| 任务场景 | 本项目的具体对象 | 输入形态 | 标准答案形态 | 主判分方式 |
|---|---|---|---|---|
| 图文问答 | 技术手册与图示混排内容的问答 | 图＋文 | 文本答案＋引证位置 | 语义相似度＋引证命中 |
| 图纸解读 | 刮板输送机零部件图纸的要素抽取与借用判定 | 图纸文件或渲染图 | 结构化字段组 | 精确匹配（逐字段）＋字段级召回 |
| 缺陷识别 | 焊缝外观缺陷的类别与位置判断 | 照片 | 类别＋位置区域 | 分类精确匹配＋位置重叠度 |
| 视频理解 | 工艺动作与操作规范符合性判断 | 视频片段 | 动作序列＋符合性结论 | 序列编辑距离＋规则约束 |
| 传感器诊断 | 热处理炉次曲线、焊接参数流、在役装备振动段的判定 | 时序数据段＋设备档案 | 结论＋证据档次＋依据参数 | 行业指标＋规则约束 |
| 工具调用 | 该调哪个工具、参数填写、调用顺序 | 任务描述＋可用工具清单 | 调用序列＋参数 | 精确匹配（工具名）＋参数校验 |

位置类答案的判分口径要写明：缺陷位置按区域重叠度判定，重叠度不低于 0.5 判为位置正确，0.3 至 0.5 判为部分正确按半分计，低于 0.3 判错。这个口径与焊接三类检测（外观、超声、磁粉）的位置口径不一致问题相关。现场三类检测的位置口径目前不统一，评测时统一到焊道编号加沿焊道里程的口径上，三类检测的位置先换算到该口径再比对。换算规则由质量口确认后固化。

多模态题目的基准集建设有一处需要说明：视频理解与传感器诊断两类任务的题目依赖现场采集条件。当前采集覆盖部分车间的部分设备，工艺过程所需的图像采集须按场景数据要求单独布点。因此这两类题目的首期规模按已具备采集条件的试点范围确定，覆盖范围随采集扩展逐步补充，数据卡上如实标注当期覆盖范围，不以试点范围冒充全厂覆盖。

#### 4.2.5 执行步骤、输入字段与阈值来源

一次评测运行按八步推进，见表 4-4A。第二步的公平性校验与第七步的重复性校验是两道闸：前者保证横向对比成立，后者保证结论可复现。

表 4-4A　多协议评测引擎的执行步骤、输入字段与阈值来源

| 步 | 动作 | 用到的输入字段 | 算法或判据 | 阈值及其来源 | 失败或异常时的复核 |
|---|---|---|---|---|---|
| 一 | 协议与基准集绑定 | 协议版本、基准集版本与内容指纹、判分规则版本、随机种子 | 校验基准集指纹与发布版本一致、协议中声明的能力维度映射完整 | 无阈值，按定义判定 | 指纹不一致即停用该集，追查改动来源，按版本谱系回到发布版本 |
| 二 | 公平性校验 | 各被测对象的提示词模板、解码参数、上下文长度、工具可用性 | 同批对比中各对象上述四项必须一致，差异项登记 | 无阈值，按定义判定 | 不一致的运行不得用于横向对比，只能单独呈现 |
| 三 | 并行调度与推理调用 | 被测对象接口配置、并发上限、速率配额、超时与重试参数 | 按对象分别设并发与配额；单题失败按配置重试 | 并发与配额为配置项；未获取输出比例上限 2% | 未获取输出的题目单独计量不计入得分分母；比例超 2% 该次运行标记无效需重跑 |
| 四 | 判分与融合 | 模型输出、标准答案与等价答案集合、业务规则、行业指标口径、裁判配置 | 先判否决项，再按题型取主判分并辅以校准；多模态题型用结构化字段比对为主、成对比较为辅 | 主判分与校准方式的配对关系在协议中写明 | 规则约束判违反硬约束的判零分并标记具体约束，不与其他通道平均 |
| 五 | 裁判通道的偏差处置 | 呈现顺序、答案长度分档、多套裁判配置的判分 | 成对比较正反各跑一遍取平均；按长度分档统计给分；同题不少于三个裁判配置独立判分取共识区间 | 人机一致率 85%、抽样比例 10%，见 4.2.3 节 | 共识区间跨过及格分界或档位分界的题转人工裁定 |
| 六 | 人工复核 | 复核规则、抽样比例与抽样方法、复核结论 | 长答题与拒答题全量复核，自动判分结果随机抽 10% | 不一致率 15% 为协议中固化的门限 | 不一致率达到或超过 15%，该判分策略在本协议下标记失效，该题型全部转人工判分 |
| 七 | 重复性校验 | 同协议同模型同基准集版本同种子的两次运行结果 | 比较主指标偏差 | 0.5 个百分点，见 3.3.4 节 | 偏差超限则该协议标记不稳定，暂停用于验收口径 |
| 八 | 出四件产出与显著性判断 | 逐题结果、历史运行结果、题目来源簇标识 | 指标汇总、样本级结果、版本对比、人工复核状态；比较用配对口径，重采样按题目簇 | 显著性水平与可分辨差异量级在协议中写明 | 差异未达可分辨量级的一律表述为"未检出显著差异"，不表述为持平或提升 |

表 4-4A　数据来源：招标文件 3.2.3.10.1（1）—（4）（b1126、b1128、b1130、b1132）；阈值取值见 4.2.1 至 4.2.4 各小节与配置清单表 6-5。

### 4.3 数据贡献度归因与错题溯源工具链（3.2.3.10.2）

#### 4.3.1 评测结果的六种呈现

工具支持输出能力雷达图、排行榜、版本对比、样本级结果、失败样本清单与统计显著性分析（b1135、b1136）。六种呈现针对的是六种不同的问题，不是同一份数据的六种画法。

能力雷达图回答"这个数据集把模型的哪些能力带起来了、哪些没带起来"。按表 4-2 的能力维度作轴，多个版本可叠加在同一张图上，一眼看出哪一轮加数据改善了哪一维。图 4-2 是雷达图的样式与读法示意，图中数值为示意值，不代表实测结果。

### 图 4-2　能力雷达图样式与读法（示意，非实测值）

<svg viewBox="0 0 820 400" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <g transform="translate(250,200)">
    <circle r="150" fill="none" stroke="#cbd5e1"/>
    <circle r="112.5" fill="none" stroke="#e2e8f0"/>
    <circle r="75" fill="none" stroke="#e2e8f0"/>
    <circle r="37.5" fill="none" stroke="#e2e8f0"/>
    <line x1="0" y1="0" x2="0" y2="-150" stroke="#cbd5e1"/>
    <line x1="0" y1="0" x2="142.7" y2="-46.4" stroke="#cbd5e1"/>
    <line x1="0" y1="0" x2="88.2" y2="121.4" stroke="#cbd5e1"/>
    <line x1="0" y1="0" x2="-88.2" y2="121.4" stroke="#cbd5e1"/>
    <line x1="0" y1="0" x2="-142.7" y2="-46.4" stroke="#cbd5e1"/>
    <polygon points="0,-90 85.6,-27.8 52.9,72.8 -44.1,60.7 -85.6,-27.8"
             fill="#cbd5e1" fill-opacity="0.35" stroke="#64748b" stroke-width="1.6"/>
    <polygon points="0,-127.5 114.2,-37.1 70.6,97.1 -61.7,85 -114.2,-37.1"
             fill="none" stroke="#334155" stroke-width="2" stroke-dasharray="6 3"/>
    <text x="0" y="-162" text-anchor="middle" font-size="12">图纸要素识读</text>
    <text x="158" y="-46" text-anchor="start" font-size="12">工序序列编排</text>
    <text x="96" y="140" text-anchor="start" font-size="12">过程—质量关联</text>
    <text x="-96" y="140" text-anchor="end" font-size="12">故障征兆诊断</text>
    <text x="-158" y="-46" text-anchor="end" font-size="12">依据可溯答复</text>
  </g>
  <rect x="470" y="60" width="330" height="128" rx="6" fill="#f8fafc" stroke="#334155"/>
  <text x="486" y="84" font-size="12">读法：</text>
  <text x="486" y="106" font-size="12">灰底实线＝数据集 v1 训练后的维度得分</text>
  <text x="486" y="128" font-size="12">虚线＝数据集 v2 训练后的维度得分</text>
  <text x="486" y="150" font-size="12">某轴未外扩，说明该轮新增数据未覆盖该能力</text>
  <text x="486" y="172" font-size="12">某轴内缩，须查新增数据是否引入了噪声</text>
  <rect x="470" y="204" width="330" height="106" rx="6" fill="#ffffff" stroke="#94a3b8"/>
  <text x="486" y="228" font-size="12">配套读的两项：</text>
  <text x="486" y="250" font-size="12">一、各轴得分的 95% 置信区间（自助重采样）</text>
  <text x="486" y="272" font-size="12">二、轴间差异的显著性判断（配对检验）</text>
  <text x="486" y="294" font-size="12">区间重叠的两版不作"已提升"的结论</text>
  <text x="250" y="378" text-anchor="middle" font-size="11">轴为表 4-2 能力维度的一个子集；满分归一到最外环</text>
</svg>

图 4-2　能力雷达图样式与读法（示意，非实测值）。数据来源：招标文件 3.2.3.10.2（1）（b1135）；能力维度取自表 4-2。

排行榜回答"同一协议下几个被测对象谁更好"，按总分排序并列出各维度得分，附公平性约束的一致性声明——提示词、解码参数、上下文长度、工具可用性一致方可同榜。版本对比回答"两次之间变了多少"，给差值、变化方向与显著性。样本级结果是逐题的原始记录，是其余五种呈现的共同底料，也是复核与申诉的依据。失败样本清单是归因的入口，见下一小节。

统计显著性分析关系到验收结论是否可辩护。评测集规模 0.95 万条，按能力维度拆分后单个维度可能只有几百道题，几个百分点的差异完全可能来自抽样波动。本方案的口径是：每个维度得分同时给出点估计与自助重采样 1000 次得出的 95% 置信区间；两个版本的比较采用配对检验（同一批题目上的正误配对，采用 McNemar 检验），给出检验统计量与显著性水平；置信区间重叠或检验不显著的，评测报告中表述为"未见显著差异"，不表述为"有所提升"。这一条写进协议，意味着我方不会把波动当成果报出来。

#### 4.3.2 错题溯源与聚类分析

工具支持错题溯源与聚类分析，把模型错误关联到训练样本、数据来源、标注批次、生成批次、质量问题或知识覆盖盲区（b1137、b1138）。六个关联对象对应六类不同的数据侧原因，处置动作各不相同，所以归类必须到这个粒度，笼统说"数据质量问题"无法执行。

溯源的路径分两条，按证据强弱分别使用。强路径是血缘回溯：错题所考的知识点或字段，经知识点标签反查训练集中覆盖该知识点的样本集合，再经血缘查出这批样本的来源、批次、标注轮次与质检结论。这条路径依赖知识点标签的完整性，覆盖范围以已打标的部分为限。

弱路径是相似检索：以错题题干与标准答案为查询，在训练集中做语义近邻检索，取最相近的若干样本作为嫌疑样本集合。弱路径不需要标签，但给出的是相关性而非因果，结论须标注为"相关性推断"。两条路径的结论都写入归因报告，并分别标明路径与证据强度，不混为一谈。

三条路径不是三种备选方案，而是按证据强度与成本排布的三层，逐层收窄到结论，对照见表 4-4B。分层的用意在于把昂贵的手段用在值得的地方：前两层每批评测都跑，成本接近于零；第三层需要额外训练轮次，只在结论将用于数据剔除、版本回滚或责任判定时启用。**贡献度**指向因果关系，仅凭相关性结论不足以支撑数据剔除与责任判定；而对全部子集执行第三层在工期与算力上不可行。因此按证据效力分层，并逐层写明启用条件。

表 4-4B　三层归因路径的分工、成本与启用条件

| 层 | 做法 | 回答的问题 | 成本 | 证据性质 | 启用条件 |
|---|---|---|---|---|---|
| 一层·血缘回溯（强路径） | 错题所考知识点反查覆盖该知识点的训练样本集合，再经血缘查出来源、标注批次、生成批次 | 这个错误与哪些来源、哪些批次相关 | 极低，为血缘图谱上的一次查询 | 关联关系明确，但不区分「相关」与「起作用」 | 每批评测默认执行 |
| 二层·相似检索（弱路径） | 以错题题干与标准答案为查询，在训练样本中做语义近邻检索，取嫌疑样本集合 | 哪些具体样本与这道错题最像 | 低，为一次向量检索 | 相关性，不含因果；但可读、可人工判断 | 每批评测默认执行；一层无命中时尤其有用 |
| 三层·留出对比 | 按数据子集做等量替换后的对照训练，比较该能力维度上的差异 | 这个子集对该能力实际贡献多少 | 高，需额外训练轮次 | 接近因果，但受训练随机性影响，须按本小节口径处置 | 结论将用于数据剔除、版本回滚或责任判定时启用；默认只对占比最大来源、新接入来源、合成子集三类做 |

表 4-4B　数据来源：三条路径依本小节所述做法归并；成本与证据性质为本方案的工程判断；三层的执行范围与本小节后文的限定一致。

贡献度估计用于回答"这批数据对这个能力贡献了多少"。我方采用可操作的做法而非理论上最优的做法：按数据子集做留出对比——在训练侧按数据域、来源、批次、合成与真实划分子集，由训练侧提供"含该子集"与"不含该子集"两组训练产出，在同一协议同一基准集上评测，差值即该子集对各能力维度的贡献估计。

这个做法的代价是需要额外的训练轮次，所以不对所有子集都做，只对三类子集做：占比最大的来源、新接入的来源、合成样本子集。其余子集的贡献按相似检索的嫌疑样本分布做相对排序，标注为估计值。留出对比所需的训练轮次由训练推理技术服务承担（见 T13），本工具负责设计对比方案、提供子集划分与评测执行。

留出对比要得出可用的结论，还有两处必须按口径执行，否则测到的不是子集的贡献。

**第一处，用等量替换而不是直接删除。** 把一个子集从训练数据中去掉，同时改变了两件事：少了这个子集，也少了相应的数据总量与原有配比。直接比较会把「数据变少了」记成「这个子集没用」。因此留出时用其余子集按原配比补足同等规模，使两次训练的总量与配比一致，差异只在被替换的那一部分。补足所用的样本构成一并留档，使对照可复现。

**第二处，差异要大于训练随机性才算差异。** 同一份数据、同一套超参，仅随机种子不同的两次训练，在单个能力维度上的得分本就有波动；若不先把这个波动量测出来，留出对比得到的一两个百分点就无法解释。做法是先用同一配置、不同种子跑出基准波动区间作为参照刻度，再按工具链总述第 4.9 节第三条的配对口径判断留出前后的差异是否超出该刻度；未超出的一律表述为「未检出显著贡献差异」，不表述为「该子集无贡献」——前者是实测结论，后者是一个需要举证的断言，而手上的数据举不出这个证。

两处约束使留出对比的单次成本上升（需要一次等量替换对照与若干次同配置重复），因此前述「只对三类子集做」的限定更要守住：其余子集的贡献按前两层给出相关性结论，并在归因报告中标明所用层级，不把相关性写成贡献度。

当争议只涉及个别错题与少量嫌疑样本、且不具备另跑训练轮次的条件时，另有一条不重训的仲裁路径：在指定的模型检查点上，比较嫌疑训练样本与该错题在模型内部表示上的作用方向，按作用强度对嫌疑样本排序，再取排序结果与二层相似检索的结果交叉比对——两者同时指向的样本作为优先核查对象。该路径只在抽样子集与具体错题上执行，不对数据集整体给出贡献度结论，它的定位是**仲裁与排序，不是度量**。

这条路径对训练推理技术服务提出三项接口要求：提供指定检查点的只读访问；提供该检查点对应的训练任务标识与数据集版本，使嫌疑样本可回指血缘；提供训练日志中的批次与顺序记录。三项中任一不可得时，本路径停用，仲裁退回留出对比或人工判定，接口可用与不可用两种情形的处置一并写入接口条款，不按单一通道作承诺。本路径的结论一律标注所依据的检查点与执行范围，不与留出对比的结论混记。

聚类分析把错题归成可处理的若干类。聚类维度不是单一的语义相似，而是四个维度联合：错误表现（答错、答偏、拒答失当、格式不合、超时）、所考能力维度、所涉业务对象（工序、材料、设备、缺陷类别、故障条目）、嫌疑数据来源。四维联合聚类的产出是一张错题分类表，每一类给出错题数量、占该维度错题的比例、典型例题、嫌疑原因与建议动作。类别数控制在二十类以内；超出则按数量合并尾部类别，保证报告可执行。

表 4-5　六类数据侧原因与对应处置（b1137、b1138）

| 关联对象 | 该类原因的特征 | 典型表现 | 处置动作 | 承接环节 |
|---|---|---|---|---|
| 训练样本 | 错误集中在少数具体样本所覆盖的知识点上 | 同一工序的编排题成批答错 | 核查这批样本内容是否有误，修订或剔除 | 加工环节 |
| 数据来源 | 错误集中在某一取数系统来源的样本上 | 某系统来源的字段填写不完整导致学歪 | 核查该来源取数逻辑与字段完整度 | 采集接入（见 T12） |
| 标注批次 | 错误集中在某一标注轮次或某一标注批次 | 该批次标注口径与判据口径不一致 | 该批次返工重标，核对标注规范 | 标注环节（见 T1B） |
| 生成批次 | 错误集中在合成样本标记为真的样本上 | 模板约束有误，生成了不合实际的组合 | 修模板、回滚模板版本、重生成 | 3.2 节 |
| 质量问题 | 错误样本的质检结论本已标为低质量却仍入集 | 低质量样本未被质量检查节点拦住 | 核查质量检查节点阈值与执行记录 | 2.3 节 |
| 知识覆盖盲区 | 错误所考知识点在训练集中几乎无样本 | 稀有故障、低频缺陷、非常规工况 | 出补齐需求单；不可补齐者记入数据卡覆盖不足 | 2.3.4 节 |

第六类与前五类性质不同：前五类是数据错了，第六类是数据没有。区分这两者是归因工具的主要价值。把覆盖盲区误判为数据质量问题，会导致反复返工已有样本而问题不解。判别方式是看训练集中该知识点的样本量：低于最小可用量即判盲区，不再往数据质量方向找原因。

判别规则要给得更细一层，因为只看样本量会漏掉第三种情形。按两个可计算的量组合判定：错题所考知识点在训练集中的**样本密度**（该知识点标签下的样本条数与其在业务中的重要度之比），以及这些样本的**质检通过率**。三种组合对应三种结论：密度低，判为覆盖盲区，出补齐需求单；密度足够而质检通过率低，判为质量问题，核查质量检查节点与该批样本；密度足够、质检通过率正常而仍成批答错，判为标注口径或任务定义问题，核查标注规范与题目设定。第三种最容易被漏掉，它既不是数据错了也不是数据没有，而是**数据与题目各自都对，但两者的口径不一致**——这种情形下返工样本与补充样本都无效，要改的是规范或题面。三种结论的判据阈值在首批归因中标定，标定记录随归因报告留档。

处置权限上还有一条硬规矩：**二层相似检索的结论不单独作为剔除或修改训练样本的依据。** 相似不等于致错，按相似度删样本会误删真实样本，而误删的样本不会再被发现——它既不在数据集里，也不在问题清单里。弱路径结论只能用于排序与派发核查；真正的剔除或修改须经一层血缘确认、三层留出对比确认，或经人工确认后由修订工单执行。这条规矩与数据修订工单的字段口径配套：工单须记录其所依据的归因层级，层级为二层的工单只能派「核查」动作，不能派「剔除」动作。

#### 4.3.3 成因分类、证据链与整改责任

表 4-5 按招标文件的六个关联对象给出处置动作，那是按"错误关联到什么"分的。执行时还需要按"错误由什么造成"再分一层——同一个关联对象下可能是数据本身错了，也可能是处理它的规则错了，两者的整改动作与责任组完全不同。本小节把成因归为六大类，逐类给出判定证据、证据链与整改责任。

成因判定的次序固定：接口成因 → 规则成因 → 模型成因 → 标注成因 → 数据成因 → 题面与任务定义成因。这个次序按"证据的确定性"由强到弱排。接口成因有调用日志可查，是确定的；数据成因往往要排除前几类之后才能认定。倒过来查的后果是把一批本来没错的样本返工掉，而真正的成因（某次接口截断、某版规则误删）留在系统里继续产生新的错误。

表 4-5A　六类成因的判定证据、证据链与整改责任

| 成因大类 | 具体情形 | 判定证据 | 证据链（自错题回溯的记录序列） | 整改责任组 | 整改后的验证方式 |
|---|---|---|---|---|---|
| 接口成因 | 取数接口字段缺失或截断；推理接口超时与输出截断；网关限流致批次不完整；回调丢失致状态不一致 | 调用日志中的错误码与返回长度、批次实际条数与预期条数之差、任务状态与结果条数不匹配 | 错题 → 评测运行标识 → 调用日志条目（含错误码、重试次数）→ 处理批次 → 源对象取数记录 | 采集接入组（取数侧，见 T12）或平台侧（推理与网关侧） | 重跑受影响批次，比对补齐后的条数与字段完整度；重跑结果与原结果差异登记 |
| 规则成因 | 清洗、校验、质检规则误删或误放；业务约束清单过严或过松；字段映射配置错误；归一化规则漏项 | 规则版本号与变更记录、该规则在本批次的命中条数异常、同一样本在前后两版规则下的判定不同 | 错题 → 嫌疑样本 → 血缘中的规则版本 → 规则变更记录 → 受同一规则影响的全部批次清单 | 规则维护组（质检规则见 T1B，数据集标准见 T4B） | 按修订后的规则重跑受影响批次；对修订前后的判定差异抽样复核 |
| 模型成因 | 生成、标注或判分所用模型或其版本变更；提示词模板版本变更；裁判模型存在系统性倾向 | 血缘中的模型版本与提示词版本、换版前后同批样本的判定差异率、裁判按长度或顺序分档的给分分布 | 错题 → 嫌疑样本 → 血缘中的模型与提示词版本 → 网关调用记录 → 同版本处理的全部批次 | 平台侧（模型接入与提示词资产） | 固定版本重跑并比对；差异超过 2 个百分点的批次判定作废重跑 |
| 标注成因 | 某一标注轮次或批次的口径与判据字典不一致；判据字典已更新而标注规范未同步；标注员倾向于选默认值 | 该批次的标注一致率、分布统计中该批次的异常峰值、判据字典版本与标注规范版本的时间差 | 错题 → 知识点标签 → 覆盖该知识点的样本 → 血缘中的标注批次与轮次 → 该批次的标注规范与判据字典版本 | 标注环节（见 T1B） | 该批次返工重标后重跑评测，比对该能力维度得分变化 |
| 数据成因 | 源数据本身有误；某一取数来源的字段填写不完整；某类别样本覆盖不足；合成样本偏离真实分布 | 来源维度的错误集中度、该来源的字段完整度统计、该知识点的样本密度与质检通过率、合成标记分布 | 错题 → 知识点标签 → 训练样本集合 → 血缘中的来源与处理批次 → 源对象与取数时间 | 加工环节（内容修订）或采集接入组（来源侧，见 T12） | 修订或补采后重跑该知识点的相关题目；覆盖不足的按补齐需求单执行后复核覆盖度 |
| 题面与任务定义成因 | 数据与题目各自都对，但两者口径不一致；题目超出数据集声明的覆盖范围；判分规则与题型不匹配 | 该知识点样本密度足够且质检通过率正常而仍成批答错；同一知识点换一种问法即答对 | 错题 → 知识点标签 → 样本密度与质检通过率 → 题目的能力维度映射与判分规则版本 | 评测组（题面与协议）会同标注环节（规范口径） | 改题面或改规范后重测该维度；改动写入协议次版本并声明可比性边界 |

表 4-5A　数据来源：招标文件 3.2.3.10.2（2）（b1137、b1138）；六类成因由本小节按整改动作归并；证据链所用记录项见表 4-7 的血缘节点与边。

证据链的硬规矩是**逐节可查、不得跨节推断**：从错题到成因的每一节都要能在血缘图谱或调用日志里取到一条实际记录；取不到的那一节，整条链降级为相关性推断，按 4.3.2 节的二层证据处理，只能派核查动作。

整改责任按组别指派，不指个人。一条错题可能同时命中两类成因（如某批次既有接口截断又有标注口径问题），此时按判定次序取最先成立的一类为主责，其余类另开工单并在两张工单上互相登记关联，避免两边都等对方先改。主责组在整改期限内未能给出结论的，工单升级为"口径存疑"并提交项目组评审，不在两组之间往复转派。

#### 4.3.4 自动生成数据修订工单

工具支持自动生成数据修订工单，工单含问题类型、关联样本、影响范围、修订建议、责任组、优先级与整改期限（b1139、b1140）。工单是归因结论转为执行的接口，字段口径见表 4-6。工单的生成是自动的，工单的关闭须人工确认并附证据。

表 4-6　数据修订工单字段与取值口径（b1139、b1140）

| 字段 | 取值口径 | 自动生成依据 |
|---|---|---|
| 问题类型 | 按表 4-5 六类取值，另设"口径存疑"一类用于约束表或判据本身有疑问的情形 | 聚类分析结论 |
| 关联样本 | 样本标识列表＋所属批次＋所属数据集版本 | 血缘回溯或相似检索结果 |
| 影响范围 | 受影响的数据集版本、训练任务、模型检查点、评测报告、已发布数据集组合 | 血缘图谱的影响范围分析（见 4.4.2） |
| 修订建议 | 具体动作：修订内容／剔除样本／重标批次／改模板／扩来源／补采集／记入覆盖不足 | 按问题类型映射的动作表 |
| 责任组 | 按环节指向加工、标注、采集、质检、模板维护、评测各组（记组别不记个人） | 问题类型到环节的映射 |
| 优先级 | 高／中／低。高＝阻断发布或影响验收结论；中＝影响某一能力维度得分；低＝局部问题 | 影响范围与阻断关系 |
| 整改期限 | 高 5 个工作日，中 10 个工作日，低随下一版本处理 | 优先级映射，可按项目计划调整 |
| 验证方式 | 整改后如何确认已解决：重跑哪一项检查、重测哪一维度、复核多少样本 | 按问题类型映射 |
| 状态 | 新建／处理中／待验证／已关闭／已转需求（指需要新增采集或新增系统能力的） | 流程状态 |

工单有两条纪律写在流程里。第一，工单不自动关闭：整改完成后须按验证方式重跑检查或重测维度，验证通过方可关闭，验证记录随工单留存。第二，"已转需求"是一个正式状态而非借口：当整改需要的是现场新增采集点、源系统开通新接口或业务流程增设填报入口时，工单转为需求项并登记依赖方与预计解决时点，同时在相关数据集的数据卡上标注该项覆盖不足。这样处理的理由是甲方的四类从零补录数据（选型投运评价、热处理装载登记、焊接层间温度、维修事实）注定会反复触发这类工单，不设正式出口就会积压成一堆无法关闭的待办。

工单汇总进质量治理报告第 7 章（见表 2-9），按优先级与状态统计，未关闭工单随版本累计，不跨版本消失。

#### 4.3.5 执行步骤、输入字段与阈值来源

一次归因任务按七步推进，见表 4-6A。第一步的输入是上一轮评测的失败样本清单，第七步的输出是修订工单，两端都与其他工具衔接。

表 4-6A　归因与错题溯源的执行步骤、输入字段与阈值来源

| 步 | 动作 | 用到的输入字段 | 算法或判据 | 阈值及其来源 | 失败或异常时的复核 |
|---|---|---|---|---|---|
| 一 | 受理失败样本清单 | 错题标识、题干、标准答案、模型输出、判分依据、所考能力维度 | 校验该次评测运行有效（重复性达标、未获取输出比例未超限） | 无阈值，按定义判定 | 评测运行标记无效的，归因不启动，先重跑评测 |
| 二 | 一层血缘回溯 | 知识点标签、训练样本集合、血缘中的来源、批次、标注轮次、质检结论 | 经知识点标签反查覆盖该知识点的训练样本，再经血缘查出来源与批次 | 无阈值；覆盖范围以已打标部分为限 | 知识点标签缺失的错题转二层；缺失情况记入报告的覆盖说明 |
| 三 | 二层相似检索 | 错题题干与标准答案、训练样本向量索引 | 语义近邻检索取嫌疑样本集合 | 近邻条数为配置项 | 结论标注为相关性推断，只用于排序与派发核查 |
| 四 | 成因判定 | 调用日志、规则版本、模型与提示词版本、标注批次与轮次、样本密度、质检通过率 | 按 4.3.3 节的固定次序逐类判定，取最先成立的一类为主责 | 样本密度与质检通过率的判据阈值在首批归因中标定，记录留档 | 六类都不成立的错题归入"口径存疑"，提交项目组评审 |
| 五 | 四维联合聚类 | 错误表现、所考能力维度、所涉业务对象、嫌疑数据来源 | 四维联合聚类，类别数控制在二十类以内 | 类别数上限为配置项 | 超出上限按数量合并尾部类别，合并记录写入报告 |
| 六 | 三层留出对比（按条件启用） | 子集划分、等量替换的补足样本构成、同配置不同种子的重复训练结果 | 等量替换后对照训练，按配对口径判断差异是否超出训练随机性刻度 | 启用条件为结论将用于数据剔除、版本回滚或责任判定 | 差异未超出刻度的表述为"未检出显著贡献差异"，不表述为"该子集无贡献" |
| 七 | 生成修订工单 | 问题类型、关联样本、影响范围、责任组、优先级、归因层级 | 按表 4-6 字段生成；影响范围取自血缘图谱的影响范围分析 | 优先级与整改期限的映射见表 4-6 | 归因层级为二层的工单只能派核查动作；工单不自动关闭 |

表 4-6A　数据来源：招标文件 3.2.3.10.2（1）—（3）（b1135、b1137、b1139）；三层归因路径的分工见表 4-4B；六类成因见表 4-5A。

### 4.4 数据集–模型版本血缘追溯工具链（3.2.3.10.3）

#### 4.4.1 血缘图谱

工具支持数据集、训练任务、模型检查点与评测结果的血缘追踪，并以图谱展示数据、任务、模型、评测、工单与发布记录之间的依赖关系（b1142、b1143）。图谱的节点类型与边类型必须先定死，否则"图谱化展示"会做成一张谁也看不懂的网。节点与边的定义见表 4-7，图谱结构见图 4-3。

表 4-7　血缘图谱的节点类型与边类型（b1142、b1143）

| 类型 | 名称 | 关键属性 | 出边 |
|---|---|---|---|
| 节点 | 源对象 | 来源系统、业务主键（图号／工单号／炉次／焊道／设备编码）、取数时间 | 加工自 |
| 节点 | 样本 | 样本标识、所属数据集、质检结论、审核状态、合成标记 | 加工自、属于 |
| 节点 | 处理批次 | 批次标识、工具与版本、规则版本、提示词版本、模型版本、参数指纹 | 产出 |
| 节点 | 数据集版本 | 版本号、内容指纹、样本量、发布状态 | 切分为、用于 |
| 节点 | 切分结果 | train／valid／test 标识与指纹、切分策略、泄漏检测结论 | 用于 |
| 节点 | 基准集版本 | 版本号、内容指纹、冻结要素、使用范围 | 用于 |
| 节点 | 训练任务 | 任务标识、输入数据集版本、起止时间、完成状态 | 产出 |
| 节点 | 模型检查点 | 检查点标识、所属训练任务、阶段（基座／继续预训练／微调／偏好对齐） | 被评测 |
| 节点 | 评测运行 | 运行标识、协议版本、基准集版本、被测对象、指标结果 | 发现 |
| 节点 | 修订工单 | 工单标识、问题类型、优先级、状态 | 指向 |
| 节点 | 发布记录 | 发布标识、发布对象、审批角色、发布时间、生效范围 | 发布 |
| 边 | 加工自 | 处理批次标识、时间 | 样本→源对象，样本→上游样本 |
| 边 | 属于 | —— | 样本→数据集版本 |
| 边 | 切分为 | 切分任务标识 | 数据集版本→切分结果 |
| 边 | 用于 | 用途（训练／验证／测试／评测） | 切分结果→训练任务，基准集版本→评测运行 |
| 边 | 产出 | —— | 训练任务→模型检查点，处理批次→样本 |
| 边 | 被评测 | 运行标识 | 模型检查点→评测运行 |
| 边 | 发现 | 错题标识、聚类类别 | 评测运行→修订工单 |
| 边 | 指向 | 关联类型（强路径／相关性推断） | 修订工单→样本／批次／来源 |
| 边 | 发布 | 审批角色、时间 | 发布记录→数据集版本／基准集版本 |

### 图 4-3　数据集–模型版本血缘图谱的节点与依赖关系

<svg viewBox="0 0 820 420" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="b4" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker>
  <marker id="b4r" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#7f1d1d"/></marker></defs>

  <rect x="16" y="150" width="112" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="72" y="170" text-anchor="middle" font-size="12">源对象</text>
  <text x="72" y="183.2" text-anchor="middle" font-size="11"><tspan x="72">图号/工单/炉次/</tspan><tspan x="72" dy="13.8">焊道</tspan></text>

  <rect x="162" y="150" width="104" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="214" y="170" text-anchor="middle" font-size="12">样本</text>
  <text x="214" y="187" text-anchor="middle" font-size="11">含质检与审核态</text>

  <rect x="162" y="60" width="104" height="46" rx="5" fill="#ffffff" stroke="#334155"/>
  <text x="214" y="80" text-anchor="middle" font-size="12">处理批次</text>
  

  <rect x="300" y="150" width="112" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="356" y="170" text-anchor="middle" font-size="12">数据集版本</text>
  <text x="356" y="187" text-anchor="middle" font-size="11">内容指纹</text>

  <rect x="300" y="236" width="112" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="356" y="256" text-anchor="middle" font-size="12">切分结果</text>
  <text x="356" y="273" text-anchor="middle" font-size="11">train/valid/test</text>

  <rect x="300" y="60" width="112" height="46" rx="5" fill="#ffffff" stroke="#334155"/>
  <text x="356" y="80" text-anchor="middle" font-size="12">发布记录</text>
  <text x="356" y="97" text-anchor="middle" font-size="11">审批角色与生效范围</text>

  <rect x="448" y="236" width="112" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="504" y="256" text-anchor="middle" font-size="12">训练任务</text>
  <text x="504" y="273" text-anchor="middle" font-size="11">输入版本与参数</text>

  <rect x="596" y="236" width="112" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  
  

  <rect x="596" y="150" width="112" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="652" y="170" text-anchor="middle" font-size="12">评测运行</text>
  <text x="652" y="187" text-anchor="middle" font-size="11">协议与基准集版本</text>

  <rect x="596" y="60" width="112" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="652" y="80" text-anchor="middle" font-size="12">基准集版本</text>
  <text x="652" y="97" text-anchor="middle" font-size="11">冻结要素</text>

  <rect x="448" y="330" width="260" height="46" rx="5" fill="#ffffff" stroke="#7f1d1d"/>
  <text x="578" y="350" text-anchor="middle" font-size="12">修订工单</text>
  <text x="578" y="367" text-anchor="middle" font-size="11">问题类型·影响范围·责任组·期限</text>

  <path fill="none" d="M128 173 H162" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="145" y="166" text-anchor="middle" font-size="10">加工自</text>
  <path fill="none" d="M214 106 V150" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="238" y="130" text-anchor="middle" font-size="10">产出</text>
  <path fill="none" d="M266 173 H300" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="283" y="166" text-anchor="middle" font-size="10">属于</text>
  <path fill="none" d="M356 196 V236" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="382" y="220" text-anchor="middle" font-size="10">切分为</text>
  <path fill="none" d="M356 150 V106" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="382" y="130" text-anchor="middle" font-size="10">发布</text>
  <path fill="none" d="M412 259 H448" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="430" y="252" text-anchor="middle" font-size="10">用于</text>
  <path fill="none" d="M560 259 H596" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="578" y="252" text-anchor="middle" font-size="10">产出</text>
  <path fill="none" d="M652 236 V196" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="680" y="220" text-anchor="middle" font-size="10">被评测</text>
  <path fill="none" d="M652 106 V150" stroke="#334155" stroke-width="1.2" marker-end="url(#b4)"/>
  <text x="680" y="130" text-anchor="middle" font-size="10">用于</text>

  <path fill="none" d="M652 196 V300 H708 V330" stroke="#7f1d1d" stroke-width="1.3" marker-end="url(#b4r)"/>
  <rect x="688.0" y="302.6" width="24.0" height="15.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="700" y="314" text-anchor="middle" font-size="10" fill="#7f1d1d">发现</text>
  <path fill="none" d="M448 353 H240 V196" stroke="#7f1d1d" stroke-width="1.3" stroke-dasharray="5 3" marker-end="url(#b4r)"/>
  <rect x="228.1" y="334.6" width="204.0" height="15.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="330" y="346" text-anchor="middle" font-size="10" fill="#7f1d1d">指向：强路径＝血缘回溯，虚线＝相关性推断</text>

  <path fill="none" d="M16 110 H140 V150" stroke="#334155" stroke-width="1" stroke-dasharray="3 2"/>
  <text x="76" y="124" text-anchor="middle" font-size="10">审计查询入口</text>
  <text x="410" y="404" text-anchor="middle" font-size="11">正向查"这个模型用了哪些数据"，反向查"这批数据影响了哪些模型与评测"</text>

  <rect x="618.0" y="240.9" width="68.0" height="19.0" fill="#eef2f7" stroke="none" data-halo="1"/><text x="652" y="256" text-anchor="middle" font-size="12">模型检查点</text>

  <rect x="626.0" y="259.0" width="52.0" height="19.0" fill="#eef2f7" stroke="none" data-halo="1"/><text x="652" y="273" text-anchor="middle" font-size="11">阶段标识</text>

  <rect x="183.7" y="80.4" width="60.8" height="31.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="214" y="93.2" text-anchor="middle" font-size="11"><tspan x="214">工具/规则/</tspan><tspan x="214" dy="13.8">模型版本</tspan></text>
</svg>

图 4-3　数据集–模型版本血缘图谱的节点与依赖关系。数据来源：招标文件 3.2.3.10.3（1）（2）（b1142、b1144）；血缘字段口径见 3.2.3.11（3）（b1151）。

图谱的存储按属性图组织，节点与边都带时间属性，支持按时点查询历史状态。粒度上有一处取舍需要说明：样本级节点在 615 亿 Token 的预训练语料上数量过大，不逐条建节点。本方案的分层口径分两档。指令微调样本（89 万条）、偏好对比组（6.6 万组）、基准题目（0.95 万条）建样本级节点；预训练语料建到文档级与批次级节点，单条 Token 序列不建节点，但保留文档标识使其可回溯到源对象。分层口径在数据集标准中写明，验收时按此口径核对，不按"全部样本都有节点"核对。

#### 4.4.2 审计查询与影响范围分析

工具支持审计查询与影响范围分析，满足项目验收、数据安全、模型发布、质量追责与版本回滚五类要求（b1144、b1145）。五类要求问的是五种不同的问题，查询需要分别预置，不能只给一个通用图查询界面让使用者自己拼。

表 4-8　五类审计查询的问题形式与返回内容（b1144、b1145）

| 用途 | 要回答的问题 | 查询方向 | 返回内容 |
|---|---|---|---|
| 项目验收 | 这一版数据集是怎么来的，每条样本的处理链路是否完整 | 正向，自数据集版本向上游展开 | 样本量、血缘挂接率、各环节工具与规则版本、质检与审核记录、未挂接样本清单 |
| 数据安全 | 哪些样本经过了外部模型调用，调用范围与数据出域情况如何 | 按处理批次筛选 | 涉外调用的批次、调用范围、出域字段、脱敏记录、审批记录（见 5.5 节） |
| 模型发布 | 这个检查点用了哪些数据集版本，其中是否有未裁定的污染或未关闭的高优工单 | 反向，自模型检查点向上游展开 | 数据集版本链、污染裁定状态、未关闭工单清单、发布阻断项 |
| 质量追责 | 这条错样本是哪个环节引入的，经过哪些人工审核 | 正向，自样本向上游展开 | 源对象、各处理批次、规则与提示词版本、审核轮次与角色、质检结论变化 |
| 版本回滚 | 回滚这一版数据集会影响哪些下游对象 | 反向，自数据集版本向下游展开 | 受影响的切分结果、训练任务、模型检查点、评测运行、已发布组合、需作废的评测结论 |

影响范围分析的输出不只是一张受影响对象清单，还包含三项判断：**阻断判断**（受影响对象中是否有已对外发布或已用于验收的，有则回滚须经审批）、**作废判断**（哪些评测结论须标注为基于已回滚版本）、**重做判断**（哪些处理批次须重跑，按依赖顺序给出重跑序列）。三项判断的规则写在工具里而非靠人现场拍定，是为了让回滚这件事在压力下也能按同一套口径执行。

血缘完整性本身是一项受考核的指标。**指标值与适用条件**：发布版本内样本的血缘挂接率不低于 98%，未挂接血缘的样本不得进入发布版本；适用条件为该版本涉及的各加工环节均已接入公共层的血缘写入，预训练语料按 4.4.1 节的分层粒度计量。**测量方法**：发布前的血缘完整性校验，逐样本检查八类血缘字段是否齐备（字段见 5.3 节），按全量计算不作抽样折算。**不达标处置**：未挂接样本退回补录；补不齐的从该版本剔除并记入待补清单，不以"血缘后补"为理由放行。

#### 4.4.3 执行步骤、输入字段与阈值来源

血缘工具的执行分两条线：写入线随每一次加工动作实时追加，查询线按请求执行。两条线的步骤见表 4-8A。

表 4-8A　血缘追溯的执行步骤、输入字段与阈值来源

| 步 | 动作 | 用到的输入字段 | 算法或判据 | 阈值及其来源 | 失败或异常时的复核 |
|---|---|---|---|---|---|
| 一 | 节点与边登记（写入线） | 表 4-7 的十一类节点属性与九类边属性 | 由公共层在每个环节追加写入，不由各工具自填 | 无阈值，按定义判定 | 写入失败即该处理批次回滚，不允许"数据已产出而血缘未写"的中间态 |
| 二 | 分层粒度判定（写入线） | 数据集类型、样本条数、文档标识 | 指令微调、偏好对比组、基准题目建样本级节点；预训练语料建文档级与批次级节点 | 分层口径写入数据集标准，按定义判定 | 文档标识缺失的预训练语料不得入发布版本，退回补录 |
| 三 | 发布前完整性校验（写入线） | 八类血缘字段、发布版本样本清单 | 逐样本检查八类字段是否齐备，全量计算挂接率 | 98%，见 4.4.2 节 | 未挂接样本退回补录；补不齐的从该版本剔除并记入待补清单 |
| 四 | 审计查询（查询线） | 查询用途、起点对象标识、时点 | 按表 4-8 的五类预置查询分别展开，正向或反向 | 无阈值，按定义判定 | 查询超时的按时点分段执行并合并结果，不返回部分结果而不作说明 |
| 五 | 影响范围分析（查询线） | 受影响对象清单、发布与验收状态、依赖顺序 | 出阻断、作废、重做三项判断，并给出重跑序列 | 判定规则写在工具里，变更须审批 | 规则版本与台账不一致时，分析结论标注所用规则版本，不按现场口头口径执行 |
| 六 | 更正与留痕 | 被更正项标识、更正内容、更正理由、操作角色 | 只追加不修改：更正以追加更正记录并标注被更正项的方式实现 | 无阈值，按定义判定 | 任何直接改写血缘记录的请求一律拒绝，并记入审计日志 |

表 4-8A　数据来源：招标文件 3.2.3.10.3（1）（2）（b1142、b1144）；血缘字段见表 5-3；节点与边定义见表 4-7。

## 5、专项智能工具链通用接口、追溯与验收要求（3.2.3.11）

这六条不只约束本组三类七个工具，而是 9 类 25 个工具的共同约束，在本节统一给出；数据构建类工具（见 T2A）与对齐标注类工具（见 T2B）同样按本节的六条执行。

把通用要求集中写有一个实际理由。25 个工具若各自定义接口、各自决定输出格式、各自实现血缘记录，结果会是 25 套用法与 25 种口径，集成成本与验收成本都落在甲方身上；而血缘这类横向要求一旦依赖各工具自觉实现，缺失是必然的。我方的做法是把六条通用要求实现在工具运行的公共层，工具只实现自己的业务算子，接口、格式、血缘、质量上报、安全管控与验收材料由公共层统一承担。公共层承载在奔牛数据智能平台之上。

### 5.1 接口要求

工具须提供标准应用程序接口或平台内部服务接口，支持任务创建、任务查询、结果获取、异常重试、批量导出与状态回调（b1147、b1148）。六类调用构成一个任务的完整生命周期，缺任何一类都会迫使使用者改用别的途径（如直接读数据库、手工搬文件），那些途径一旦出现，血缘与审计就断了。

#### 5.1.1 六类调用的定义

接口按表现层状态转移（Representational State Transfer，REST）风格组织，同时提供平台内部服务接口供平台内模块直接调用，两者共用同一套参数与返回结构。清单见表 5-1。表中路径为示意写法，最终路径随平台接口规范确定。

表 5-1　六类调用的接口定义（b1147、b1148）

| 调用 | 方法与路径 | 关键入参 | 返回 | 幂等性 |
|---|---|---|---|---|
| 任务创建 | POST /tools/{tool_id}/tasks | 输入数据集版本或数据位置、参数集、回调地址、客户端请求标识 | 任务标识、受理状态、预估批次数 | 按客户端请求标识幂等，重复提交返回同一任务标识 |
| 任务查询 | GET /tools/{tool_id}/tasks/{task_id} | 任务标识 | 任务状态、批次进度、已完成与失败数、当前指标快照 | 天然幂等 |
| 结果获取 | GET /tools/{tool_id}/tasks/{task_id}/results | 任务标识、分页参数、筛选条件（批次、状态、风险等级） | 结果记录分页、结果集指纹 | 天然幂等 |
| 异常重试 | POST /tools/{tool_id}/tasks/{task_id}/retry | 任务标识、批次标识列表（缺省为全部失败批次）、是否沿用原参数 | 重试任务标识、纳入重试的批次清单 | 按批次幂等，已成功批次不重复执行 |
| 批量导出 | POST /tools/{tool_id}/tasks/{task_id}/exports | 格式、筛选条件、是否含未审核样本、脱敏级别 | 导出作业标识、取件地址、有效期、导出清单 | 按筛选条件指纹幂等 |
| 状态回调 | 由平台回调调用方登记的地址 | 任务标识、状态、阶段、指标摘要、失败摘要 | 调用方返回接收确认 | 带序号与去重标识，支持重复投递 |

六类调用之外另有两类辅助接口：参数校验接口（提交前预检参数集合法性，避免提交后才发现配置错误）与能力描述接口（返回该工具的参数清单、取值范围、默认值、输出字段与格式，供上层自动构建配置界面）。能力描述接口使运营平台可以不硬编码各工具的参数表（平台见 T3）。

八类调用共用同一套请求头与响应包络，字段见表 5-1A。统一包络的用处是让调用方只写一次解析逻辑，也让平台侧能对所有工具做同一套链路追踪与审计——这两件事若留给各工具自行约定，25 个工具就是 25 套解析分支。

表 5-1A　公共请求头与响应包络字段

| 位置 | 字段 | 类型 | 必填 | 含义与取值 |
|---|---|---|---|---|
| 请求头 | Authorization | 字符串 | 是 | 承载令牌，格式为 Bearer 加访问令牌；令牌的获取与刷新见 5.1.2 节 |
| 请求头 | X-Caller-Id | 字符串 | 是 | 调用方标识（系统或模块标识，不记个人账号） |
| 请求头 | X-Caller-Role | 字符串 | 是 | 调用方角色，用于三层授权校验与审计留痕（记角色不记姓名） |
| 请求头 | X-Request-Id | 字符串 | 是 | 单次请求标识，全链路追踪用，不参与幂等判定 |
| 请求头 | X-Idempotency-Key | 字符串 | 写操作必填 | 客户端请求标识，幂等判定依据，有效期见 5.1.2 节 |
| 请求头 | X-Data-Domain | 字符串 | 是 | 本次请求涉及的数据域，用于角色与数据域的交叉授权 |
| 请求头 | Content-Type | 字符串 | 是 | 固定为 application/json；批量导出取件走单独的取件地址 |
| 响应包络 | code | 整数 | 是 | 业务状态码，0 表示成功，非 0 按表 5-1E 取值 |
| 响应包络 | message | 字符串 | 是 | 可读描述，面向排障而非面向展示 |
| 响应包络 | request_id | 字符串 | 是 | 回显请求标识 |
| 响应包络 | server_time | 字符串 | 是 | 带时区偏移的 ISO 8601 时间 |
| 响应包络 | data | 对象 | 成功时 | 各调用的业务数据，结构见表 5-1 的"返回"一列 |
| 响应包络 | error | 对象 | 失败时 | 含 code、category、locator（任务与批次标识、涉及的样本标识或参数名）、suggested_action、policy_version 五项 |
| 响应包络 | trace | 对象 | 是 | 含工具标识与版本、公共层版本、本次处理耗时，供性能核对 |

表 5-1A　数据来源：招标文件 3.2.3.11（1）接口要求（b1147、b1148）；字段为本方案按统一包络设计，最终名称随平台接口规范定稿。

分页、筛选与排序的参数在所有查询类调用上同名同义：page_token 与 page_size 控制分页（游标式分页，避免深翻页时的重复与遗漏），filter 承载筛选条件（批次、状态、风险等级、时间窗口），order_by 承载排序字段与方向。结果获取接口另返回 result_set_digest 一项，即本次结果集的指纹，调用方据此判断两次拉取是否同源。

#### 5.1.2 鉴权、幂等、限流与接口审计

**鉴权**分两步：先认身份，再认权限。身份认证采用令牌机制，调用方以其系统标识与密钥向平台换取访问令牌，令牌有效期默认两小时，到期前可刷新；令牌与调用方标识、角色、可访问的数据域绑定，不可转借。平台内部服务接口走服务间的双向证书认证，不使用同一套令牌，避免内部调用凭据外泄即等同外部凭据。权限校验按 5.5.2 节的三个层次执行：工具范围、数据权限、操作权限，三层都在公共层完成，工具算子收到的输入已是经权限过滤的数据。敏感操作（导出含敏感字段的结果、使用保留评测集、执行版本回滚、自隔离区回取）须经第二角色批准，批准记录随请求一并留痕。

**幂等**按调用类别分三种实现，见表 5-1B。幂等键的有效期为 24 小时：同一幂等键在有效期内重复提交，返回首次受理的结果而不重复执行；超过有效期的视为新请求。幂等键由调用方生成并保证唯一，平台不替调用方推断。

表 5-1B　八类调用的幂等实现与限流口径

| 调用 | 幂等实现 | 重复提交的返回 | 限流维度与默认配额 |
|---|---|---|---|
| 任务创建 | 按 X-Idempotency-Key 记录首次受理结果 | 返回同一任务标识，不新建任务 | 按调用方与工具，默认每分钟 60 次、并发在跑任务 10 个 |
| 任务查询 | 天然幂等 | 返回当前状态 | 按调用方，默认每分钟 600 次 |
| 结果获取 | 天然幂等 | 返回同一页数据与同一结果集指纹 | 按调用方，默认每分钟 300 次、单页上限 1000 条 |
| 异常重试 | 按批次标识幂等 | 已成功批次不重复执行，返回已纳入重试的批次清单 | 按任务，默认每任务每分钟 5 次 |
| 批量导出 | 按筛选条件指纹幂等 | 返回同一导出作业标识与取件地址 | 按调用方，默认每小时 20 次、单次导出上限按数据域配置 |
| 状态回调 | 带递增序号与去重标识 | 调用方按序号去重，平台支持重复投递 | 按接收方地址，默认每秒 20 次 |
| 参数校验 | 天然幂等 | 返回同一校验结论 | 按调用方，默认每分钟 300 次 |
| 能力描述 | 天然幂等 | 返回同一描述文档与版本号 | 按调用方，默认每分钟 60 次 |

表 5-1B　数据来源：招标文件 3.2.3.11（1）（b1147、b1148）；配额默认值为本方案设定的工程值，随平台容量规划按非功能性章节（见 T11）的统一口径调整。

限流在网关层实施，采用令牌桶，超限返回限流错误码并在响应头给出建议的重试等待秒数。限流配额按调用方与工具两个维度叠加：一个调用方把某个工具的配额用满，不影响它调用其他工具，也不影响其他调用方。配额调整须经审批并记入配置变更审计。被限流的请求不计入任务失败，不触发自动重试的重试次数累计——否则一次限流会被当成三次执行失败。

**接口审计**记录每一次调用的九项：调用时间、调用方标识与角色、工具与版本、调用类别、请求标识与幂等键、涉及的数据域与数据集版本、响应状态码、处理耗时、是否命中限流。审计日志只追加不可改，留存期不短于项目质保期，日志中记录角色与账号标识而不记个人姓名。导出类与回取类调用另记其筛选条件、样本量与审批记录。审计日志与 5.5.2 节的六类事件日志共用同一套存储与查询接口，不另起一套。

#### 5.1.3 任务状态机、状态迁移与异常重试

任务状态固定为八个，流转见图 5-1。调用方按状态机编程，不以自由文本判断进展。

### 图 5-1　工具任务状态机与重试路径

<svg viewBox="0 0 820 340" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="m5" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker>
  <marker id="m5r" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#7f1d1d"/></marker></defs>

  <rect x="16" y="120" width="96" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="64" y="147" text-anchor="middle" font-size="12">已受理</text>
  <rect x="146" y="120" width="96" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="194" y="147" text-anchor="middle" font-size="12">参数校验中</text>
  <rect x="276" y="120" width="96" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="324" y="147" text-anchor="middle" font-size="12">执行中</text>
  <rect x="406" y="120" width="96" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="454" y="141" text-anchor="middle" font-size="12">质量检查节点</text>
  <text x="454" y="158" text-anchor="middle" font-size="11">判定</text>
  <rect x="536" y="120" width="96" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="584" y="147" text-anchor="middle" font-size="12">已完成</text>
  <rect x="676" y="120" width="112" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="732" y="141" text-anchor="middle" font-size="12">结果已发布</text>
  <text x="732" y="158" text-anchor="middle" font-size="11">可导出</text>

  <rect x="276" y="36" width="96" height="44" rx="5" fill="#ffffff" stroke="#7f1d1d"/>
  <text x="324" y="63" text-anchor="middle" font-size="12">参数不合法</text>
  <rect x="406" y="36" width="96" height="44" rx="5" fill="#ffffff" stroke="#7f1d1d"/>
  <text x="454" y="57" text-anchor="middle" font-size="12">部分失败</text>
  <text x="454" y="73" text-anchor="middle" font-size="11">批次级</text>
  <rect x="398" y="232" width="112" height="44" rx="5" fill="#ffffff" stroke="#7f1d1d"/>
  <text x="454" y="253" text-anchor="middle" font-size="12">已挂起</text>
  <text x="454" y="269" text-anchor="middle" font-size="11">质量检查节点未过</text>

  <path fill="none" d="M112 142 H146" stroke="#334155" stroke-width="1.3" marker-end="url(#m5)"/>
  <path fill="none" d="M242 142 H276" stroke="#334155" stroke-width="1.3" marker-end="url(#m5)"/>
  <path fill="none" d="M372 142 H406" stroke="#334155" stroke-width="1.3" marker-end="url(#m5)"/>
  <path fill="none" d="M502 142 H536" stroke="#334155" stroke-width="1.3" marker-end="url(#m5)"/>
  <path fill="none" d="M632 142 H676" stroke="#334155" stroke-width="1.3" marker-end="url(#m5)"/>

  <path fill="none" d="M194 120 V58 H276" stroke="#7f1d1d" stroke-width="1.2" marker-end="url(#m5r)"/>
  <path fill="none" d="M324 120 V80" stroke="#7f1d1d" stroke-width="1.2" stroke-dasharray="3 2"/>
  <path fill="none" d="M372 58 H406" stroke="#7f1d1d" stroke-width="1.2" marker-end="url(#m5r)"/>
  <path fill="none" d="M454 80 V120" stroke="#334155" stroke-width="1.2" marker-end="url(#m5)"/>
  <text x="494" y="104" text-anchor="middle" font-size="11">重试成功后继续</text>
  <path fill="none" d="M454 164 V232" stroke="#7f1d1d" stroke-width="1.2" marker-end="url(#m5r)"/>
  
  <path fill="none" d="M398 254 H340 V164" stroke="#334155" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#m5)"/>
  <path fill="none" d="M510 254 H560 V164" stroke="#334155" stroke-width="1.2" marker-end="url(#m5)"/>
  <text x="596" y="212" text-anchor="middle" font-size="11">人工复核放行</text>

  <rect x="16" y="288" width="788" height="40" rx="5" fill="#f8fafc" stroke="#94a3b8"/>
  <text x="410" y="312" text-anchor="middle" font-size="12">每次状态变更触发一次状态回调，并向血缘写入层追加一条处理记录；挂起与失败状态不自动恢复，须显式重试或放行</text>

  <rect x="472.0" y="186.0" width="96.0" height="19.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="520" y="200" text-anchor="middle" font-size="11">阈值回退一档重跑</text>
</svg>

图 5-1　工具任务状态机与重试路径。数据来源：招标文件 3.2.3.11（1）接口要求（b1147、b1148）。

八个状态之间的合法迁移、触发条件与迁移时的动作见表 5-1C。表中未列的迁移一律非法：收到非法迁移请求时拒绝并返回状态类错误，不按"就近可达状态"自行兜底。

表 5-1C　任务状态迁移表

| 当前状态 | 目标状态 | 触发条件 | 迁移时的动作 | 调用方可做什么 |
|---|---|---|---|---|
| （无） | 已受理 | 任务创建请求通过鉴权与幂等判定 | 分配任务标识，登记输入版本与参数指纹，触发回调 | 查询、取消 |
| 已受理 | 参数校验中 | 调度器取到该任务 | 预检参数合法性与前置条件 | 查询 |
| 参数校验中 | 执行中 | 参数与前置条件均通过 | 按可重试的最小单元切批次，登记批次数 | 查询 |
| 参数校验中 | 已挂起（参数不合法） | 参数类或输入类检查不通过 | 返回定位信息与建议动作，不消耗执行资源 | 改参数后重新创建任务 |
| 执行中 | 质量检查节点判定 | 全部批次执行结束 | 汇总批次指标 | 查询 |
| 执行中 | 已挂起（部分失败） | 存在失败批次且自动重试已用尽 | 登记失败批次清单与失败原因分类 | 按批次重试 |
| 质量检查节点判定 | 已完成 | 指标全部达门限 | 写入血缘，生成结果集指纹 | 查询、取结果 |
| 质量检查节点判定 | 已挂起（质量检查节点未过） | 任一指标未达门限 | 登记未达项、门限值与实测值 | 阈值回退一档重跑，或申请人工复核放行 |
| 已挂起（部分失败） | 执行中 | 重试接口被调用且批次清单非空 | 仅执行未成功批次，已成功批次不重复执行 | 查询 |
| 已挂起（质量检查节点未过） | 执行中 | 阈值回退一档后重跑该批次 | 登记本次所用门限与回退档位 | 查询 |
| 已挂起（质量检查节点未过） | 已完成 | 两次重跑仍未过，经第二角色人工复核放行 | 登记放行记录、放行角色与未达项，写入数据卡 | 查询、取结果 |
| 已完成 | 结果已发布 | 发布动作执行且审批通过 | 登记发布记录，结果转为只读 | 取结果、导出 |
| 结果已发布 | 可导出 | 导出作业提交 | 生成导出作业与取件地址 | 取件 |

表 5-1C　数据来源：招标文件 3.2.3.11（1）接口要求（b1147、b1148）；状态集合与图 5-1 一致。

异常重试按批次粒度执行，这是"异常重试"一项的具体口径（b1148）。重试分三种触发方式：调用方显式调用重试接口；平台按配置自动重试；人工在平台界面上对失败批次重试。三种方式的重试都记录在任务日志中，含触发方式、重试次数、重试前后的失败原因。

自动重试只对暂态故障生效，重试次数与间隔见表 5-1D。间隔采用指数退避并叠加随机抖动，抖动范围为该次间隔的正负 20%——不加抖动时，同一时刻失败的多个批次会在同一时刻一起重试，把一次对端限流放大成一轮冲击。确定性失败（参数不合法、输入数据缺失、业务约束违反、权限不足）不自动重试，直接报错并给出失败原因与定位信息，避免反复重试掩盖问题。

表 5-1D　自动重试的适用故障、次数与间隔

| 故障类型 | 判定依据 | 自动重试 | 首次间隔 | 退避方式与上限 | 用尽后的处置 |
|---|---|---|---|---|---|
| 网络超时、连接中断 | 传输层错误或请求超时 | 3 次 | 2 秒 | 翻倍退避，单次上限 30 秒 | 该批次标记失败，任务转已挂起（部分失败） |
| 对端限流 | 收到限流错误码 | 3 次 | 按响应头给出的建议等待秒数 | 建议值翻倍退避，单次上限 60 秒 | 同上；本次限流不计入执行失败统计 |
| 依赖服务暂时不可用 | 依赖方返回服务不可用类错误码 | 3 次 | 5 秒 | 翻倍退避，单次上限 60 秒 | 同上；模型通道不可用的降级为规则通道，产出标记"降级完成" |
| 资源争用导致的写入冲突 | 版本冲突类错误码 | 5 次 | 1 秒 | 翻倍退避，单次上限 10 秒 | 同上 |
| 参数不合法、输入缺失、业务约束违反、权限不足 | 参数类、输入类、策略类错误码 | 不自动重试 | —— | —— | 立即返回错误与定位信息 |

表 5-1D　数据来源：招标文件 3.2.3.11（1）（b1148）；次数与间隔为本方案设定的工程值，可按工具与部署环境配置。

#### 5.1.4 错误码体系

错误返回按分类编码，不只给文字描述。错误码为五位整数，首位表示类别，后四位表示具体情形，类别与典型取值见表 5-1E。同一情形在所有工具上使用同一个码，码值一经发布不再改变含义；新增情形追加新码，不复用旧码。

表 5-1E　错误码类别、典型取值与调用方的应对

| 类别 | 码段 | 典型情形与码值 | 返回内容 | 是否自动重试 | 调用方应对 |
|---|---|---|---|---|---|
| 参数类 | 1xxxx | 入参缺失 10001；取值越界 10002；版本不存在 10003；幂等键缺失 10004；分页游标失效 10005 | 错误码、可读描述、出错参数名、合法取值范围 | 否 | 改参数后重新提交，不重试 |
| 鉴权类 | 2xxxx | 令牌无效或过期 20001；工具范围无权 20002；数据域无权 20003；操作权限不足 20004；缺第二角色批准 20005 | 错误码、所缺的权限项、申请途径 | 否 | 刷新令牌或按最小必要原则申请授权 |
| 输入类 | 3xxxx | 数据不可读 30001；格式不符 30002；前置条件未满足 30003（如数据集未完成去重即请求切分）；血缘不全 30004；被保护集合不可读 30005 | 错误码、涉及的数据集版本与样本标识、缺失项 | 否 | 补齐前置条件后重新提交 |
| 执行类 | 4xxxx | 算子异常 40001；依赖服务不可用 40002；超时 40003；写入冲突 40004；批次部分失败 40005 | 错误码、任务与批次标识、失败批次清单、已重试次数 | 是，按表 5-1D | 等自动重试，或按批次显式重试 |
| 限流类 | 5xxxx | 调用方配额超限 50001；工具并发超限 50002；单次导出量超限 50003 | 错误码、建议等待秒数、当前配额与窗口 | 是，按表 5-1D | 按建议等待后重试；长期超限的申请配额调整 |
| 策略类 | 6xxxx | 质量检查节点未过 60001；业务约束违反 60002；安全策略拒绝 60003；均衡上限超限 60004；出域拦截 60005 | 错误码、违反的具体策略条目、该策略的版本号、建议动作 | 否 | 按建议动作处置；策略配置有疑的走约束存疑清单 |

表 5-1E　数据来源：招标文件 3.2.3.11（1）（b1147、b1148）；码段划分与取值为本方案设计，最终码表随接口文档交付。

策略类错误须附具体违反了哪一条策略及该策略的版本号，使调用方能判断是数据问题还是策略配置问题。执行类与限流类错误须附已重试次数，使调用方不重复发起已在自动重试中的请求。所有错误返回都带 request_id，可据此在接口审计日志中取到完整的调用上下文。

#### 5.1.5 回调与批量导出

状态回调在任务受理、参数校验完成、执行开始、每完成百分之十进度、质量检查节点判定、任务结束与结果发布七个时点触发。回调携带任务标识、状态、阶段、指标摘要与失败摘要，调用方返回接收确认；未确认的回调按退避策略重投，重投上限之后转为待拉取状态并在任务查询接口中可见。回调带递增序号与去重标识，允许调用方按序号去重与补齐——网络环境下重复投递与乱序到达都会发生，接口设计上先承认它。

批量导出按异步作业处理：提交导出请求返回作业标识，作业完成后回调通知并给出取件地址与有效期。导出件随附一份导出清单，含筛选条件、样本量、结果集指纹、导出时间、脱敏级别与审批记录。清单与导出件一并留存，使半年后仍能回答"这份文件是什么时候按什么条件导出的"。导出件的有效期默认七日，到期清理；需长期保留的进平台的资料库而非留在临时取件区。

含未审核样本的导出与含敏感字段的导出都需要审批，审批记录随导出清单留存（审批记角色不记姓名）。这两类导出的文件名与清单首行显式标注其性质，防止被下游误当作可用数据。

### 5.2 数据格式要求

输出结果须支持 JSON、JSON Lines、Markdown、CSV、Parquet 等格式，并可按平台数据集标准转换入库（b1149、b1150）。五种格式各有其用，不是同一份内容的五种包装。选错格式会让下游多做一道转换，或者在大数据量下根本打不开。

表 5-2　五种输出格式的用途与约定（b1149、b1150）

| 格式 | 用途 | 结构约定 | 适用规模 |
|---|---|---|---|
| JSON | 单个任务的汇总结果、指标汇总、评测报告的机读部分、能力描述 | 顶层对象含 meta（任务、版本、指纹、时间）与 data 两段；meta 结构在所有工具间一致 | 单文件不超过数十兆 |
| JSON Lines | 样本级记录（样本、重复组、污染命中、评测结果、血缘记录） | 一行一条记录，首行可选为表头注释行；字段名用下划线命名法 | 大规模首选，支持流式读写与分片 |
| Markdown | 给人读的报告（质量治理报告、评测报告、归因报告、测试报告） | 固定目录结构（如表 2-9）；表格用标准 Markdown 表格；图以内联可缩放矢量图形嵌入 | 报告类 |
| CSV | 附表、清单、供导入看板与表格工具的数据 | 统一 UTF-8 带字节顺序标记、逗号分隔、双引号转义、首行表头；日期用 ISO 8601 | 中等规模，便于业务口直接查看 |
| Parquet | 数据集本体、大规模样本集、供分析与训练侧读取 | 按数据集标准的字段模式存储；分区键按数据域与批次 | 大规模首选，列式压缩 |

同一份内容以多种格式输出时，内容一致性由统一的序列化层保证：各格式从同一份内部表示生成，不各写一遍导出逻辑。多格式导出件附同一个结果集指纹，便于核对两份文件是否同源。格式之间的对应关系在接口文档中逐字段给出，不靠下游推断。

按平台数据集标准转换入库这一项（b1150）需要说明三件事。其一是字段映射：工具的输出字段到数据集标准字段的映射关系由映射配置定义并版本化，映射配置与数据集标准同步更新，标准变更时映射配置须同步评审。其二是入库校验：入库前按数据集标准做一次校验（字段完整性、类型、取值域、必填项、主键唯一性），校验不过的记录不入库，入库失败清单返回给调用方。

其三是入库凭据：入库成功后登记入库批次、入库条数、内容指纹与标准版本号，作为数据集版本的组成部分写入血缘。数据集标准本身由数据治理体系给出（见 T4B），我方承诺按其执行并在标准变更时同步，标准变更时同步评审映射配置。

字符与单位的规范化在格式层统一处理，不留给各工具：文本统一为 UTF-8 不带字节顺序标记（CSV 例外，带标记以便业务口用表格软件打开不乱码）；换行统一为 LF；数值不使用千分位分隔符；日期时间统一为带时区偏移的 ISO 8601；物理量单位按单位字典的标准写法（如毫米写 mm 不写 MM 或毫米混用），单位与数值分列存储，不合并为字符串。这些约定看着琐碎，但矿装数据涉及大量尺寸、温度、功率、硬度数值，单位写法不统一在下游合并时会直接算错。

### 5.3 血缘要求

每条样本须关联原始数据、处理链路、工具版本、模型版本、提示词版本、规则版本、质检结果与审核状态（b1151、b1152）。八项字段的定义与填写口径见表 5-3。字段由公共层在每个环节追加写入，不由各工具自填（见 1.4 节），这是血缘完整性能够达到指标的前提。

表 5-3　八项血缘字段的定义与填写口径（b1151、b1152）

| 字段 | 含义 | 填写口径 | 缺失时的处置 |
|---|---|---|---|
| 原始数据标识 | 该样本最终溯源到的源对象 | 源系统标识＋业务主键（图号加版次／施工号加零件号／工单号加工序号／炉次号／焊缝加焊道／设备编码）；合成样本填合成标记＋模板与批次标识 | 不可发布；退回补录 |
| 处理链路 | 从源对象到当前样本经过的处理批次序列 | 有序的处理批次标识列表，每项含算子名、输入指纹、输出指纹、时间 | 链路断点标注断点位置；断点样本不进发布版本 |
| 工具版本 | 各环节所用工具的版本 | 工具标识＋语义化版本号；同一环节多工具的按序列记录 | 不可发布 |
| 模型版本 | 各环节调用的模型标识与版本 | 网关登记的模型标识＋版本＋调用时点；未调用模型的环节填无 | 若曾调用而未记录，该批次标记血缘不可信并重跑 |
| 提示词版本 | 调用模型时所用提示词模板的版本 | 模板标识＋版本号＋参数指纹；提示词正文存于模板库，血缘只存引用 | 同上 |
| 规则版本 | 所用规则表、约束清单、字典、映射配置的版本 | 逐类规则资产的标识与版本号 | 不可发布 |
| 质检结果 | 该样本在各质检点的结论 | 质检点标识＋结论（通过／不通过／待复核）＋指标值＋判定阈值版本 | 未质检样本不进发布版本 |
| 审核状态 | 人工审核的状态与轮次 | 状态＋轮次＋审核角色＋时间＋意见摘要（记角色不记姓名） | 需审核而未审核的不进发布版本 |

八项之外另记三项辅助信息，便于审计：是否涉及外部模型调用及其出域范围（见 5.5 节）、是否为合成样本及其模板来源、脱敏处理记录（脱敏规则版本与被脱敏字段清单）。这三项虽非招标文件明列，但数据安全审计与第三方质量测评都会问到，先记下来比事后补容易。

血缘的粒度按 4.4.1 节的分层口径执行：指令微调样本、偏好对比组与基准题目逐条记录；预训练语料记录到文档与批次级，保留文档标识使其可回溯到源对象。分层的理由是 615 亿 Token 规模下逐 Token 序列记录血缘在存储与查询上都不可行，而文档级血缘已足以回答审计关心的三个问题：这份语料来自哪份文件、经过哪些处理、用了哪一版清洗规则。分层口径写入数据集标准，验收按此核对。

血缘的存储与查询承载在奔牛数据智能平台的血缘服务上，对外提供三类查询：按样本查链路（正向展开）、按批次查影响（反向展开）、按时点查历史状态。查询接口与 4.4.2 的五类审计查询共用同一套实现。血缘记录只追加不修改，更正通过追加更正记录并标注被更正项实现，原记录保留。血缘本身若可被改写，审计就失去意义。

血缘完整性的指标值、测量方法与不达标处置见 4.4.2 节。

### 5.4 质量要求

工具须输出质量指标与问题样本清单，支持按批次、来源、任务类型与数据集版本生成质量报告（b1153、b1154）。质量指标分两层：各工具的专有指标（如去重率、校验通过率、评测指标）与 25 个工具共同上报的通用指标。通用指标使项目组可以在不了解各工具内部的情况下判断整条流水线的健康状况，清单见表 5-4。

表 5-4　各工具共同上报的通用质量指标（b1153、b1154）

| 指标 | 定义 | 分母口径 | 用途 |
|---|---|---|---|
| 处理完成率 | 成功处理的样本数占提交样本数 | 本任务提交样本数 | 判断任务是否跑完 |
| 质量检查节点通过率 | 通过质量检查节点的批次数占总批次数 | 本任务批次数 | 判断阈值设置是否合理 |
| 问题样本率 | 产出问题样本清单的样本数占处理样本数 | 成功处理样本数 | 判断本批输入质量 |
| 人工介入率 | 需人工复核或裁定的样本数占处理样本数 | 成功处理样本数 | 判断人工成本与自动化水平 |
| 人机一致率 | 人工复核结论与自动结论一致的比例 | 被复核样本数 | 判断自动判定是否可信 |
| 血缘挂接率 | 八项血缘字段齐备的样本数占处理样本数 | 成功处理样本数 | 发布前的硬门槛 |
| 重跑率 | 因失败或质量检查节点未过而重跑的批次数占总批次数 | 本任务批次数 | 判断流程稳定性 |
| 外部调用占比 | 涉及外部模型调用的样本数占处理样本数 | 成功处理样本数 | 安全审计与成本核算 |

凡设有自动采纳门限的工具，其批次质量报告还须同时给出四项：本批生效的门限值、错误率上限设定值、所用校准集版本，以及本批自动采纳、人工复核、人工标注三档的实际占比。门限因监测信号触发而挂起的批次，须在报告中标注挂起原因与恢复条件——挂起期间该批全部进复核队列，质量数据照常上报，不以「门限挂起」为由跳过本批的质量统计。门限与上限的口径见工具链总述第 4.9 节。

质量报告按四个维度生成，四个维度可交叉：按批次出的报告用于日常盯进度；按来源出的报告用于判断某个取数系统的数据质量，这份报告是向源系统侧提改进要求的依据；按任务类型出的报告用于横向比较各类加工任务的质量水平；按数据集版本出的报告即 2.3.5 节的质量治理报告，是发布与验收的依据。四类报告共用同一份指标底料，不各算一套。

问题样本清单的字段在各工具间统一：样本标识、所属批次、问题类型、问题描述、严重程度、建议动作、责任环节、关联的质量指标项、当前状态。统一字段的用途是让清单可以跨工具合并——一条样本可能在去重环节无问题而在校验环节有问题，合并后才看得出这条样本的全貌。合并后的清单进质量治理报告第 3 章，并作为修订工单的生成输入（见 4.3.4 节）。

指标的定义口径与 S3 数据集质量评测方案保持一致，同一指标名在两处不给不同定义；S3 的指标体系面向数据集成品的评测，本节的通用指标面向加工过程的监控，两者是不同对象上的指标，不互相替代。工具产出的过程指标为 S3 的评测提供佐证材料，第三方机构出具盖章报告时所需的过程记录由本节的指标与报告提供（第三方测评的组织见 S3）。

通用指标里有一类要单独讲清算法，就是带「率」字的那几项——抽检通过率、人机一致率、校验通过率。这些率值报出来是一个数，而它背后是一次抽样，抽样就带不确定性。抽三百条复核得到百分之九十六，真实水平可能在百分之九十三到九十八之间；报表上只写九十六，读报表的人无从判断这个数有多稳。扩大抽检量当然能把范围收窄，但人工投入是线性往上走的，而批次是一直在产出的。

本项目对此的处置是把两种信息合起来用，而不是在「多抽」与「将就」之间二选一。工具对一个批次的全部样本都有自动判定，这份判定覆盖面大但带系统偏差；人工对其中一小部分有复核，这份结论可信但覆盖面小。做法是先用全量自动判定得出一个初始估计，再用人工复核样本上「自动判定与人工判定的差值」对初始估计做偏差纠正。纠正之后得到的是一个无偏的点估计，同时能给出置信区间；在同等人工投入下这个区间比纯抽检窄，换个说法，要达到同样的区间宽度，所需的人工复核量比纯抽检少。

这个做法有两条前提必须守住，守不住则算出来的区间看着窄却是错的。第一条，人工复核的样本必须**随机抽取**——不能专挑难的，也不能专挑自动判定得分低的。一旦抽样带了倾向，差值纠正项本身就有偏，而这种偏差在报表上看不出来。确实需要按来源或难度分层抽取时，用分层口径计算，分层比例一并留档。第二条，全量自动判定与人工复核必须用同一张评分表、同一套判定口径，否则两者的差值没有意义，纠正就成了把一种口径的偏差搬到另一种口径上。

因此本节的率值类指标一律按「点估计（置信区间）」两段式报告，质量报告的相应列同时登记人工复核样本量与自动判定样本量两个数，使读报告的人能自己判断这个区间是怎么来的。人工复核量不足以给出有效区间时，退回纯人工抽检口径，并在报告中注明本批次的口径变更——不在区间算不出来的时候硬给一个区间。率值类指标只给单点数值而未附区间的，验收时按区间下限解释。按全量计算得出的指标（血缘挂接率、校验通过率、处理完成率）按全量实测值报出，不作抽样折算；两种口径在质量报告中分列，不混计。这一套口径与 S3 质量评测方案的报告模板共用，S3 的指标表相应增设区间列，方法不在两处重复论证，见工具链总述第 4.9 节。

### 5.5 安全要求

工具须内置敏感信息识别、脱敏、授权校验、访问控制与审计日志能力，涉及外部模型调用时须记录调用范围与数据出域情况（b1155、b1156）。五项能力同样实现在公共层，各工具不自行实现。安全能力分散实现等于留下若干个口子。本节给出工具侧的安全设计；全项目的安全体系（国密、等保、信创比例等）见 T10，本节不重复。

#### 5.5.1 敏感信息识别与脱敏

本项目的敏感信息有四类，各类的识别方式与脱敏方式不同，见表 5-5。四类当中第二类与第三类是矿装制造场景特有的，通用的敏感信息识别规则不覆盖，须按甲方确认的清单定制。

表 5-5　四类敏感信息的识别与脱敏口径（b1155）

| 类别 | 具体内容 | 识别方式 | 脱敏方式 | 适用环节 |
|---|---|---|---|---|
| 个人信息 | 姓名、身份证号、手机号、工号、人脸图像 | 正则规则＋命名实体识别＋图像人脸检测 | 替换为角色标识（如"工艺员A"）；人脸区域打码 | 全环节；进入数据集前必做 |
| 商业敏感 | 客户名称与矿井名称、合同金额、报价、供应商名称、成本与定额金额 | 字段级标记＋词表匹配 | 按甲方确认的脱敏级别替换为代号或区间值 | 对外导出、涉外模型调用前必做 |
| 技术秘密 | 核心工艺参数窗口、专有配方、未公开的设计方法、关键尺寸链 | 字段级标记（由工艺与设计口标定） | 不出域；涉外调用时以占位替换或整条排除 | 涉外模型调用前必做 |
| 安全生产信息 | 矿井地质条件、作业面参数中涉及安全的内容 | 字段级标记 | 按甲方确认口径处理 | 对外导出前必做 |

脱敏规则版本化并随样本血缘记录（见 5.3 节的辅助信息）。脱敏有一处工程上的要点：脱敏须可核验而不可逆。可核验的意思是脱敏后能确认哪些字段被处理过、按哪一版规则处理，这由血缘记录保证；不可逆的意思是脱敏后的数据无法还原出原值，因此不采用可逆加密做脱敏，代号映射表与数据分离存储且不随数据集导出。

脱敏的效果需要测量而非假定。本方案的做法是对脱敏后的样本做一次回扫：用同一套识别规则扫描脱敏产出，若仍有命中则说明脱敏漏项，该批次退回重做。回扫命中率是一项通用质量指标的扩展项，按批次全量统计。指标值为对外导出件与涉外调用件回扫零命中，适用条件为回扫所用识别规则集与脱敏所用为同一版本；不达标的处置是该批次退回重做，重做前不得用于对外导出或涉外调用，仅限内网处理。

#### 5.5.2 授权校验、访问控制与审计日志

授权校验在三个层次执行：调用方身份与其可访问的工具范围、调用方对输入数据集与输出结果的数据权限、特定操作的操作权限（如导出含敏感字段的结果、使用保留评测集、执行版本回滚）。三层校验都在公共层完成，工具算子收到的输入已是经权限过滤的数据。

访问控制按角色与数据域两个维度组合。角色维度区分加工、标注、质检、评测、运营、审计与管理各类角色；数据域维度区分供需计划、产品工艺设计、制造过程、质量四个数据域及其下级业务域。两个维度交叉形成授权矩阵，矩阵由甲方确认后配置。另设三条横向规则：最小必要原则（默认不授予，按需申请并限期）、职责分离（质检角色不得修改被检样本，评测角色不得访问训练侧数据的写权限）、敏感操作双人（导出敏感字段、使用保留评测集、版本回滚须经第二角色批准）。

审计日志记录六类事件：数据访问（谁在何时访问了哪些数据域的哪些对象）、任务操作（创建、重试、挂起、放行）、配置变更（规则表、阈值、协议、映射配置的变更前后值）、导出（条件、格式、脱敏级别、审批）、权限变更（授予与回收）、外部调用（见下一小节）。日志只追加不可改，按甲方确认的期限留存，留存期不短于项目质保期。日志中记录角色与账号标识，不在投标文件与对外材料中出现个人姓名。

#### 5.5.3 外部模型调用的范围与出域记录

涉及外部模型调用时须记录调用范围与数据出域情况（b1156）。该条约束外部模型调用范围与出域记录，防止技术秘密流出。处置分三层。

第一层是分级准入。数据按出域许可分三级：可出域（已脱敏的通用文本、公开标准条文、无敏感标记的结构化记录）、受限出域（经脱敏且经审批的业务数据，单次调用有量级上限）、不可出域（技术秘密类字段、未脱敏的个人信息与商业敏感信息、安全生产信息）。分级由字段级标记决定，标记由甲方相关业务口标定。不可出域的数据在网关层拦截，拦截是强制的而非提示性的，调用方无法通过参数绕过。

第二层是就地处理优先。凡能在内网完成的处理一律在内网完成：图纸解析、文件格式转换、规则类质检、去重与指纹计算、分布统计、Schema 校验、切分与泄漏检测均不涉外。需要模型能力的环节优先使用部署在内网的模型；确需调用外部模型的环节（如对公开语料的改写、通用语义向量化），调用内容限于可出域级数据。模型采用当期能力评测领先的通用大模型，经统一网关接入，可替换、可评测、可随代升级；网关是唯一出口，不允许工具直连外部服务。

第三层是逐次记录。每一次外部调用记录九项：调用时间、调用方角色、工具与批次标识、模型标识与版本、提示词模板版本、出域字段清单、出域数据量、脱敏规则版本、返回内容摘要指纹。记录进审计日志并关联到样本血缘，使"这条样本的哪部分内容出过域"可查。按批次与按数据域的出域汇总报表定期出具，供甲方核查。

### 图 5-2　外部模型调用的出域控制与记录

<svg viewBox="0 0 820 360" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="o5" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker>
  <marker id="o5r" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#7f1d1d"/></marker></defs>

  <rect x="14" y="20" width="430" height="250" rx="8" fill="#f8fafc" stroke="#334155" stroke-dasharray="6 4"/>
  <text x="229" y="42" text-anchor="middle" font-size="12">内网侧（甲方网络边界内）</text>

  <rect x="34" y="58" width="128" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="98" y="78" text-anchor="middle" font-size="12">工具算子</text>
  <text x="98" y="95" text-anchor="middle" font-size="11">提出模型调用请求</text>

  <rect x="34" y="124" width="128" height="60" rx="5" fill="#ffffff" stroke="#334155"/>
  <text x="98" y="145" text-anchor="middle" font-size="12">字段级出域标记</text>
  <text x="98" y="162" text-anchor="middle" font-size="11">可出域／受限／不可</text>
  <text x="98" y="178" text-anchor="middle" font-size="11">由业务口标定</text>

  <rect x="34" y="204" width="128" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="98" y="224" text-anchor="middle" font-size="12">内网模型</text>
  <text x="98" y="241" text-anchor="middle" font-size="11">优先使用</text>

  <rect x="200" y="100" width="130" height="110" rx="6" fill="#eef2f7" stroke="#334155"/>
  <text x="265" y="124" text-anchor="middle" font-size="12">统一网关</text>
  <text x="265" y="144" text-anchor="middle" font-size="11">唯一出口</text>
  <text x="265" y="162" text-anchor="middle" font-size="11">脱敏执行＋回扫</text>
  <text x="265" y="180" text-anchor="middle" font-size="11">授权校验</text>
  <text x="265" y="198" text-anchor="middle" font-size="11">量级与频次限制</text>

  <rect x="348" y="100" width="82" height="110" rx="6" fill="#ffffff" stroke="#334155"/>
  
  <text x="389" y="160" text-anchor="middle" font-size="12">记录</text>
  <text x="389" y="180" text-anchor="middle" font-size="11">九项</text>

  <rect x="500" y="100" width="290" height="46" rx="6" fill="#f1f5f9" stroke="#334155"/>
  <text x="645" y="121" text-anchor="middle" font-size="12">外部通用大模型（经网关接入）</text>
  <text x="645" y="138" text-anchor="middle" font-size="11">可替换、可评测、可随代升级</text>

  <path fill="none" d="M98 104 V124" stroke="#334155" stroke-width="1.2" marker-end="url(#o5)"/>
  <path fill="none" d="M162 154 H200" stroke="#334155" stroke-width="1.2" marker-end="url(#o5)"/>
  <text x="181" y="146" text-anchor="middle" font-size="10">请求</text>
  <path fill="none" d="M98 184 V204" stroke="#334155" stroke-width="1.2" marker-end="url(#o5)"/>
  <text x="146" y="198" text-anchor="middle" font-size="10">可就地处理的走内网</text>
  <path fill="none" d="M330 123 H500" stroke="#334155" stroke-width="1.3" marker-end="url(#o5)"/>
  <text x="389.0" y="115" text-anchor="middle" font-size="10">仅可出域级数据</text>
  <path fill="none" d="M500 136 H348" stroke="#334155" stroke-width="1.1" stroke-dasharray="3 2" marker-end="url(#o5)"/>

  <path fill="none" d="M230 210 V240 H200 V210" stroke="#7f1d1d" stroke-width="1.3" marker-end="url(#o5r)"/>
  

  <rect x="500" y="186" width="290" height="84" rx="6" fill="#ffffff" stroke="#334155"/>
  <text x="645" y="208" text-anchor="middle" font-size="12">审计日志＋样本血缘</text>
  <text x="645" y="228" text-anchor="middle" font-size="11">调用时间｜角色｜工具与批次｜模型版本</text>
  <text x="645" y="246" text-anchor="middle" font-size="11">提示词版本｜出域字段｜数据量</text>
  <text x="645" y="263" text-anchor="middle" font-size="11">脱敏规则版本｜返回摘要指纹</text>
  <path fill="none" d="M389 210 V240 H500 V228" stroke="#334155" stroke-width="1.2" marker-end="url(#o5)"/>

  <text x="410" y="300" text-anchor="middle" font-size="12">按批次与按数据域出具出域汇总报表，供甲方核查；报表留存期不短于质保期</text>
  <text x="410" y="326" text-anchor="middle" font-size="11">图中不涉及具体模型型号与供应商；模型以能力评测结果择优选用</text>

  <rect x="373.0" y="125.9" width="31.0" height="18.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="389" y="140" text-anchor="middle" font-size="12">出域</text>

  <rect x="180.6" y="222.0" width="239.0" height="19.0" fill="#f8fafc" stroke="none" data-halo="1"/><text x="300" y="236" text-anchor="middle" font-size="11" fill="#7f1d1d">不可出域字段在网关层强制拦截，无参数可绕过</text>
</svg>

图 5-2　外部模型调用的出域控制与记录。数据来源：招标文件 3.2.3.11（5）安全要求（b1155、b1156）。

### 5.6 验收要求

每个工具链须提供演示样例、输入输出样例、配置说明、接口说明与测试报告（b1157、b1158）。五件套按工具链逐个提供，9 类 25 个工具共 25 套；本组 7 个工具链的五件套由本任务承担，其余由对应任务承担（见 T2A、T2B）。五件套的内容口径见表 5-6，口径统一的用途是使验收可以按同一张表逐项核对，不必对每个工具重新商定验收内容。

对设有自动采纳门限的工具，测试报告还须包含一次完整的门限校准记录：校准集的构成与版本、判错规则、门限搜索过程、算出的门限值，以及用同一校准集独立复算的核对结果。写入这一项的目的是让招标方或第三方测评机构能在不依赖我方工具的前提下复算出同一个门限——门限是自动采纳部分质量的全部依据，它必须可被别人算一遍。

表 5-6　验收五件套的内容口径（b1157、b1158）

| 交付件 | 内容要求 | 形式 | 验收方式 |
|---|---|---|---|
| 演示样例 | 用真实业务数据的脱敏子集跑通该工具的主流程，含正常路径与至少一条异常路径（质量检查节点未过或校验失败） | 可重复执行的演示脚本＋数据子集＋执行录屏或执行日志 | 在甲方现场或指定环境重跑，结果与随附记录一致 |
| 输入输出样例 | 覆盖该工具全部输入项与全部输出字段的实例，含边界取值与异常取值 | 样例文件（JSON／JSON Lines／CSV）＋逐字段说明 | 逐字段核对说明与样例一致；边界取值可被工具正确处理 |
| 配置说明 | 全部可配项的名称、含义、类型、取值范围、默认值、变更影响、相互依赖关系 | 配置手册＋配置模板文件 | 按手册改一项配置并重跑，行为与说明一致 |
| 接口说明 | 六类调用的方法、路径、入参、返回、错误码、幂等性、回调时点与载荷；能力描述接口的返回结构 | 接口文档＋可执行的调用示例 | 按文档调用全部六类接口成功；错误码可触发并与文档一致 |
| 测试报告 | 功能测试（逐条功能要求对应测试用例与结果）、指标测试（质量检查节点指标的实测值与测量方法）、性能测试（处理规模与耗时）、异常测试（重试、降级、回滚路径）、安全测试（脱敏回扫、越权拦截、出域拦截） | 测试报告＋测试用例集＋原始测试记录 | 抽取用例现场复测，结果与报告一致 |

测试报告中的功能测试一项有一条硬要求：测试用例与功能要求逐条对应，每一条要求至少对应一个用例，用例编号中标注其对应的功能要求条目。这样做使验收时可以按条目反查有无对应测试，而不是只看一份笼统的通过率。本组七个工具链的功能要求共 28 条（3.2.3.8 节 9 条、3.2.3.9 节 10 条、3.2.3.10 节 9 条），加上本节通用要求 6 条，合计 34 条测试要求项。

表 5-6 给的是五件套的通用口径。落到本组七个工具链上，每一件的具体内容见表 5-7：表中每格给出该工具该件交付物的实际内容与其设计所在位置，设计内容已在本节各工具链中写定，交付的是按该设计产出的材料。

表 5-7　本组七个工具链五件套的具体内容

| 工具链 | 演示样例 | 输入输出样例 | 配置说明 | 接口说明 | 测试报告 |
|---|---|---|---|---|---|
| 数据去重与相似度过滤 | 真实图纸与工艺卡脱敏子集跑通表 2-5A 八步，含同族变体保留与高风险污染阻断两条路径 | 表 2-5 全字段实例，四类处置结论各若干条；污染报告三个风险等级各若干条 | 表 6-1 十六项配置项，含四套索引的重建触发条件 | 八类调用、表 5-1A 公共字段、表 5-1E 相关错误码 | 回灌测试三档命中率、误杀率与漏检率（含置信区间）、抽样复核一致率 |
| 数据分布分析与均衡 | 构造数据集跑通表 2-9A 七步，含上限约束拦截与覆盖不足登记两条路径 | 八维分布表、两张交叉热力图数据表、六类问题判定清单、按表 2-9 八章齐备的质量治理报告 | 表 6-2 十四项配置项，含各任务类型的最小可用量 | 同上 | 构造数据集统计一致性、六类问题判定逐条实测、上限约束拦截实测 |
| 模板化数据生成 | 三套模板跑通表 3-4A 七步，含校验失败退回与约束存疑挂起两条路径 | 三套模板、参数字典子集、规则与禁止组合清单、生成样本与表 3-4 十一项日志字段实例 | 表 6-3 配置项，含采样分布与组合覆盖强度 | 同上 | 结构类与业务约束通过率、同种子重跑一致性、组合覆盖率 |
| 数据集切分与基准构建 | 含已知泄漏的构造数据集跑通表 3-8A 八步，含泄漏拦截与冻结拒改两条路径 | 三层切分结果与指纹、五类泄漏检测清单、冻结基准集与表 3-7 八项冻结要素、表 3-8 台账实例 | 表 6-4 配置项，含回滚触发条件与锚题集管理 | 同上 | 五类泄漏构造例逐类检出、指纹独立复算核对、重复运行偏差 |
| 多协议模型评测引擎 | 两套协议在冻结集上跑通表 4-4A 八步，含公平性不一致拒绝与重复性超限标记两条路径 | 协议文件、判分规则、指标汇总、样本级结果、版本对比、人工复核状态 | 表 6-5 配置项，含裁判配置数与抽样复核比例 | 同上 | 重复性偏差、人机一致率（含置信区间）、未获取输出比例、显著性表述核对 |
| 数据贡献度归因与错题溯源 | 注入已知错误样本后跑通表 4-6A 七步，含二层证据只派核查的权限拦截路径 | 能力雷达图数据表、错题分类表（含归因层级列）、表 4-5A 六类成因各一例、表 4-6 全字段工单实例 | 表 6-6 配置项，含聚类类别数上限与留出对比启用条件 | 同上 | 注入错误的归因命中情况、成因判定次序核对、工单不自动关闭的实测 |
| 数据集–模型版本血缘追溯 | 自一条错样本跑通表 4-8A 六步，含改写血缘被拒与回滚影响范围输出两条路径 | 表 4-7 十一类节点九类边实例、五类审计查询各一份返回、影响范围分析三项判断实例 | 表 6-7 配置项，含分层粒度与留存期 | 同上 | 血缘挂接率全量实测、五类查询按预置返回核对、只追加特性验证 |

表 5-7　数据来源：招标文件 3.2.3.11（6）验收要求（b1157、b1158）；各格内容对应本节各工具链的实施设计与第 6 节的样例、配置、用例要点。

五件套的交付时点与项目实施计划挂接：配置说明与接口说明随工具开发完成交付，用于甲方侧的集成准备；演示样例与输入输出样例随工具部署完成交付，用于功能确认；测试报告随该工具的单项验收交付。全部 25 个工具的五件套在整体验收前汇总成册并编制索引。实施计划与验收节点见项目管理措施（S1）。

有一类验收材料需要第三方出具，在此说明接口关系：数据集质量测评的盖章报告须由具备资质的第三方机构出具（见 S3），本节的测试报告不替代该报告。两者的关系是本节提供过程证据（协议、冻结集、运行记录、指标与原始测试记录），第三方据此与自行抽测结论出具评测报告。为使第三方可复核，本方案承诺评测过程的可复现性：协议版本化、基准集冻结、随机种子固定、运行记录留存，第三方按同一协议与同一冻结集重跑应得到一致结果（一致性口径见 3.3.4 节）。

## 6、七个工具链的输入输出样例、配置与测试用例要点

完整的样例文件、配置手册与测试用例集随工具交付，其结构与关键内容如下。

样例一律使用脱敏后的真实业务对象形态：图号、物料编码、工单号等标识按甲方确认的脱敏口径替换为代号，数值与结构保持真实，使样例既可公开又能反映实际数据的样子。

### 6.1 数据去重与相似度过滤工具链

#### 6.1.1 输入输出样例要点

输入由三部分组成：待处理数据集的版本引用、被保护集合的版本引用清单、阈值与规则配置。样例覆盖四种典型情形：纯新增批次（无被保护集合，只做自身去重）、训练集对基准集的污染扫描、跨数据集的交叉去重、同族变体密集的备料图纸批次。第四种是最需要样例的一种，因为它检验关键字段差异检查是否按预期工作。

输出样例按表 2-5 的字段全覆盖给出，并针对四类处置结论各给若干实例：判为保留的、判为删除的、判为同族变体的、判为待复核的。同族变体的实例尤其要给全——两条图纸样本，文本相似度 0.94，板厚字段一个 16 毫米一个 20 毫米，结论为同族变体、双方保留、互相登记关联。这条实例本身就是工具行为的说明书。

污染命中报告的样例给三个风险等级各若干条。高风险的实例须展示命中片段原文与位置，使审阅者能自行判断该判定是否合理。中风险的实例须展示人工裁定前后的状态变化，说明裁定结论如何回写规则库。

#### 6.1.2 配置清单

表 6-1　去重与相似度过滤工具链的配置项（b1157）

| 配置项 | 类型 | 取值范围 | 默认值 | 变更影响 |
|---|---|---|---|---|
| 文本归一化规则集版本 | 引用 | 规则库中的版本号 | 当前版本 | 变更须整批重算指纹并重跑一级 |
| 参与比对的结构化字段集 | 列表 | 字段名，取自数据集标准 | 按数据域预置 | 变更影响一级重复组划分 |
| 近重分片单元 | 枚举 | 中文字窗长度 3—7／英文词窗 2—4 | 中文 5／英文 3 | 变更须重建 MinHash 签名 |
| MinHash 签名数 | 整数 | 64—256 | 128 | 增大提升精度与开销 |
| LSH 分段与每段签名数 | 整数对 | 段数×每段数＝签名数 | 32×4 | 影响候选对召回与计算量 |
| 近重判定阈值 | 小数 | 0.60—0.95，按数据集类型分设 | 见表 2-3 | 直接影响删除量 |
| 人工复核带上下界 | 小数对 | 下界＜判定阈值 | 见表 2-3 | 影响人工工作量 |
| SimHash 汉明距离阈值 | 整数 | 1—6 | 3 | 影响字面近似的召回 |
| 向量化模型引用 | 引用 | 网关登记的模型标识与版本 | 当期择优 | 变更须重建索引并做回归比对 |
| 语义重复阈值与复核带 | 小数对 | 0.80—0.98 | 0.92／0.85—0.92 | 影响语义级删除量 |
| 语义簇保留条数 | 整数 | 1—10 | 3 | 影响问法多样性保留程度 |
| 关键字段差异检查开关与字段集 | 布尔＋列表 | 按场景预置 | 开启 | 关闭会导致同族变体被误删 |
| n 元组长度 | 整数组 | 中文 8—20 字／英文 5—12 词 | 中文 13／英文 8 | 影响污染扫描灵敏度 |
| 污染风险等级判定参数 | 结构 | 片段长度与命中次数阈值 | 见表 2-4 | 影响阻断范围 |
| 被保护集合清单 | 列表 | 数据集版本引用 | 按任务指定 | 漏列即漏扫 |
| 删除样本隔离保留期 | 整数 | 7—180 日 | 一个版本周期 | 影响可追回窗口 |

#### 6.1.3 测试用例要点

功能测试按五条功能要求逐条设计用例，每条要求对应正例、反例与边界例三类用例。精确重复一项的边界例是构造仅差一个不可见字符的两条样本，归一化规则生效时应判重复、不生效时应判不同，用以验证归一化确实在起作用。近重复一项的边界例是构造 Jaccard 相似度恰在阈值上下各 0.01 的样本对。语义相似一项的用例须含表达完全不同而语义相同的真实业务问法对（如同一制度条款的两种问法），以及字面高度相似而语义相反的样本对（如"允许借用"与"不允许借用"），后者用以验证工具不会只看字面。

污染扫描一项的用例采用回灌方式：从基准集中取若干条样本，经改写后注入训练集，统计工具的识别情况。改写分三档——原文照抄、换同义词、改写句式但保留关键信息，三档的识别情况反映工具在不同隐蔽程度下的能力，测试报告逐档给出而不只给一个总数。

异常测试覆盖四条路径：输入数据集未完成前置处理时的报错、向量化服务不可用时的降级（降级为仅执行一级与二级，产出标记降级完成）、单批次失败后的重试、质量检查节点未过后的阈值回退重跑。安全测试覆盖越权访问被保护集合的拦截与导出含敏感字段结果时的审批校验。

### 6.2 数据分布分析与均衡工具链

#### 6.2.1 输入输出样例要点

输入样例覆盖三种典型任务：单版本分布统计、两版本分布比对（含 PSI 计算）、按配比目标的偏差分析与均衡方案生成。第三种的输入须含配比目标配置，输出须含均衡方案——方案逐类别给出当前量、目标量、建议方法、建议数量与上限校验结果，这份方案是与模板化生成工具对接的补齐需求单（见 2.3.4 节）。

输出样例含八个维度的分布表、两张交叉热力图的数据表与图表文件、六类分布问题的判定结果清单、以及一份完整的质量治理报告样例。质量治理报告样例按表 2-9 的八章齐备，其中第 8 章"待补与存疑"须有实际内容而非空章——样例中的该章列出若干条覆盖不足类别与未裁定项，展示这一章的填写方式。

#### 6.2.2 配置清单

表 6-2　分布分析与均衡工具链的配置项（b1157）

| 配置项 | 类型 | 取值范围 | 默认值 | 变更影响 |
|---|---|---|---|---|
| 统计维度启用项 | 列表 | 八个维度任选 | 全部启用 | 关闭维度即不出该维度统计 |
| 各维度的分档规则 | 结构 | 长度分档边界、难度合成权重、时间分档粒度、质量等级判定 | 按数据域预置 | 变更影响历史可比性，须登记 |
| 交叉热力图组合 | 列表 | 任意两维度组合 | 类别×来源、类别×时间 | 增加组合增开销 |
| 长尾判定占比阈值 | 小数 | 0.1%—5% | 1% | 影响长尾类别数量 |
| 各任务类型的最小可用量 | 结构 | 按任务类型给整数 | 分类 200／生成 50／诊断 30 | 影响长尾判定与盲区判定 |
| 来源偏置阈值 | 小数 | 50%—90% | 70% | 影响偏置告警量 |
| 长度偏置判定参数 | 结构 | 偏度与分位数比阈值 | 1σ／3 倍 | 影响长度偏置告警 |
| 异常峰值密度倍数 | 整数 | 3—20 | 10 | 影响峰值告警量 |
| PSI 分档阈值 | 小数对 | 关注／显著两档 | 0.1／0.25 | 影响漂移阻断范围 |
| 基准批次指定 | 引用 | 批次标识 | 首批次 | 变更改变漂移判定基准 |
| 各均衡方法的上限 | 结构 | 见表 2-8 | 见表 2-8 | 放宽上限增过拟合风险 |
| 合成样本占比上限 | 小数 | 5%—40% | 类别内 30%／整体 10% | 超限将使数据集真实性下降 |
| 配比目标配置 | 引用 | 数据集规模规划版本 | 当前版本 | 变更影响偏差分析结论 |
| 报告模板版本 | 引用 | 模板库版本 | 当前版本 | 变更影响报告目录 |

#### 6.2.3 测试用例要点

分布统计一项的用例采用构造数据集的方式：按已知分布构造样本集，工具的统计结果应与构造参数一致，偏差超过千分之一即判不通过。这种用例的价值在于统计类功能的正确性无法靠眼看，只能靠已知答案反推。

六类分布问题的识别各设用例：构造一个占比 0.8% 且绝对数 120 条的类别（应判长尾）、构造一个占比 0.8% 但绝对数 1500 条的类别（不应判长尾）、构造单一来源占比 75% 的类别（应判来源偏置）、构造 PSI 为 0.3 的批次（应判显著漂移并阻断）、构造一个密度为邻域 12 倍的取值点（应报异常峰值且不自动削峰）、构造增强后 PSI 为 0.28 的数据集（应阻断至参数修正）。每条用例的预期结果写明，测试报告逐条给实测结果。

均衡处理一项的用例重点验证上限约束生效：请求对一个 20 条样本的类别做 10 倍过采样，工具应拒绝并返回上限约束错误（策略类错误），而不是执行后再告警。另设一例验证"不做均衡"的路径：对标记为现场罕发的类别请求生成补齐，工具应返回覆盖不足登记而非合成样本。

### 6.3 模板化数据生成工具链

#### 6.3.1 输入输出样例要点

输入样例给出三套完整模板：备料工艺卡模板（含枚举、数值、派生、序列、条件五类槽位）、热处理检验记录模板（含时序参数窗口约束）、安全规程问答模板（按规程条目逐条生成）。三套模板覆盖表 3-2 的全部七种槽位类型。配套给出参数字典样例（工序字典、材料牌号表、设备型谱的脱敏子集）、业务约束规则样例（含至少五条可读规则与一份禁止组合清单）与采样配置样例（含分布贴近批与稀有强化批两种配置）。

输出样例给出合成样本实例、批次台账实例、模板版本记录实例与生成日志实例。生成日志按表 3-4 字段全覆盖，含校验通过与校验失败两类实例——失败实例须展示六类校验中具体哪一项不过、不过的原因与退回去向。另给一份"约束存疑清单"实例：工具判某参数组违反约束，而该约束表达疑有误，清单记录该分歧并进入工艺口裁定流程。

#### 6.3.2 配置清单

表 6-3　模板化数据生成工具链的配置项（b1157）

| 配置项 | 类型 | 取值范围 | 默认值 | 变更影响 |
|---|---|---|---|---|
| 模板引用与版本 | 引用 | 模板库中的标识与版本 | 按任务指定 | 版本变更改变产出结构 |
| 参数字典引用与版本 | 引用 | 字典库中的标识与版本 | 当前版本 | 变更可致枚举槽位取值失效 |
| 业务约束规则集版本 | 引用 | 规则库版本 | 当前版本 | 变更影响合法性判定 |
| 禁止组合清单版本 | 引用 | 清单版本 | 当前版本 | 漏列将放过不合实际的组合 |
| 各参数的采样分布 | 结构 | 均匀／按真实频次／按指定权重 | 按真实频次 | 影响合成样本分布形状 |
| 批次类型 | 枚举 | 分布贴近批／稀有强化批 | 按任务指定 | 影响占比计量归属 |
| 组合覆盖目标 | 枚举 | 两两覆盖／三三覆盖（限关键参数对） | 两两覆盖 | 提升覆盖增生成量 |
| 生成数量 | 整数 | 按任务指定 | —— | 受占比上限约束 |
| 随机种子 | 整数 | 任意 | 任务创建时生成并记录 | 同种子同配置可复现 |
| Schema 定义引用 | 引用 | 数据集标准中的模式版本 | 当前版本 | 变更影响校验结果 |
| 单位字典与量纲表版本 | 引用 | 字典版本 | 当前版本 | 影响单位规范检查 |
| 格式正则规则库版本 | 引用 | 规则库版本 | 当前版本 | 影响格式规范检查 |
| 渲染单批规模 | 整数 | 1000—100000 | 10000 | 影响并行度与重试粒度 |
| 审核抽检比例 | 小数 | 5%—100% | 按批次抽 200 条 | 影响人工成本与放行信心 |
| 导出筛选默认值 | 结构 | 任务／模板／版本／批次／审核状态 | 仅导出已审核 | 放宽将使未审核样本外流 |

#### 6.3.3 测试用例要点

模板化生成一项的用例按槽位类型逐类设计：枚举槽位取字典外值应报错；数值槽位取区间外值应报错；派生槽位的计算结果须与独立复算一致（如压弯件展开长按中性层公式手工复算比对）；序列槽位生成的工序序列须满足先后约束，构造一条违反约束的序列应被规则引擎拦下；条件槽位须覆盖全部分支，构造一个落空分支的配置应在参数校验阶段报错而非生成阶段报错。

Schema 校验一项的用例按六类检查各设正反例，重点是单位规范与业务约束两类。单位规范的用例构造"板厚 20 米"这类量级明显不合理但类型与范围都通过的样本，检验量级区间检查是否生效。业务约束的用例构造一组工艺口确认为不合法的参数组合，工具应拦下并指出违反的具体规则编号与版本。

可复现性测试单设一项：同配置同种子运行两次，两次产出的样本内容指纹应完全一致；改变种子后产出应不同但分布特征一致。这项测试是生成日志中记录种子的意义所在。

异常测试覆盖模板缺陷导致的批次中止（构造一个引用不存在字典项的模板，工具应立即中止该批次并保留失败原因，而非产出一批统一错误的样本）、校验不过的退回路径、抽检不过的模板回滚路径。

### 6.4 数据集切分与基准构建工具链

#### 6.4.1 输入输出样例要点

输入样例覆盖三种切分任务：备料图纸—工艺卡数据集的三层切分（按零件族与来源硬隔离、按签发年份时序切分、训练侧按工序类别分层）、制度条款问答数据集的文档级切分、跨场景迁移评测的按业务场景切分。三种各给完整的策略配置与预期产出结构。

输出样例给出三个集合的样本清单与指纹、五类泄漏检测的检测记录、切分与发布台账实例（按表 3-8 字段全覆盖）。另给一份基准集冻结记录实例，按表 3-7 的八项冻结要素全覆盖，含版本号、内容指纹、题型与判分规则的对应、能力维度映射、使用范围声明。标准化评测运行的输出样例给四件产出各一份：指标汇总、样本级结果、版本对比、人工复核状态。

#### 6.4.2 配置清单

表 6-4　切分与基准构建工具链的配置项（b1157）

| 配置项 | 类型 | 取值范围 | 默认值 | 变更影响 |
|---|---|---|---|---|
| 切分策略组合与顺序 | 列表 | 六种策略任意组合 | 文档级＋来源隔离→时序→分层 | 顺序不同结果不同，须登记 |
| 切分比例 | 结构 | 三集合占比 | 8∶1∶1 | 变更须在台账中说明理由 |
| 分层维度 | 列表 | 不超过三个维度 | 按场景预置 | 维度过多致层内样本不足 |
| 层内最小样本数 | 整数 | 10—100 | 30 | 低于此值的层合并 |
| 时间轴字段 | 枚举 | 签发年份／完工时间／开炉时间／报警时间 | 按数据域预置 | 变更改变时序切分结果 |
| 时序切分点 | 日期或比例 | —— | 按比例取近期 10% | 影响测试集的时间覆盖 |
| 来源隔离粒度 | 枚举 | 取数系统／车间／产线 | 取数系统 | 粒度越粗隔离越严 |
| 零件族关系引用 | 引用 | 去重工具的同族登记版本 | 当前版本 | 缺失将导致借用件跨集合 |
| 五类泄漏检测开关 | 布尔组 | 各类可单独开关 | 全部开启 | 关闭任一类即留泄漏口 |
| 近似问答泄漏阈值 | 小数 | 与语义重复阈值同源 | 0.92 | 过松致漏检，过严致误切 |
| 基准集冻结开关 | 布尔 | —— | 发布即冻结 | 关闭将破坏可比性 |
| 随机种子 | 整数 | 任意 | 任务创建时生成并记录 | 同种子可复现同切分 |
| 评测协议引用 | 引用 | 协议版本 | 按任务指定 | 变更影响评测结果可比性 |
| 保留评测集使用审批开关 | 布尔 | —— | 开启 | 关闭将使保留集被误用 |
| 回滚触发条件 | 结构 | 三类触发条件 | 见 3.3.5 节 | 放宽将使问题版本继续在用 |

#### 6.4.3 测试用例要点

切分一项的用例重点在隔离是否真的生效。设计方式是构造已知关联关系的数据集：一组样本来自同一文档、一组来自同一零件族、一组属同一工单，切分后检查这些组是否各自落在单一集合内，有一组被拆开即判不通过。时序切分的用例构造时间跨度明确的数据集，检查测试集的时间范围是否确实晚于训练集。

泄漏检测一项的用例按五类各设正例：人为在训练集与测试集中各放一条同源文档样本、一对近似问答、一对同工单记录、一对同族图纸、一条与基准集同题的样本，工具应逐类检出并给出泄漏类型。另设一例反例：两条字面相似但来自不同文档、不同零件、语义不同的样本，不应被判泄漏。

基准集冻结一项的用例验证不可修改：对已冻结的基准集发起修改请求，工具应拒绝并提示须发新版本；修改后发新版本，旧版本应仍可按版本号读取且指纹不变。另设一例验证使用前指纹校验：人为篡改一条基准样本，下次评测运行应在指纹校验阶段报错并拒绝运行。

标准化评测运行一项的用例验证可重复性：同协议、同模型、同基准集、同种子跑两次，主指标偏差应不超过 0.5 个百分点；改变解码参数后偏差应超限并被标记为不可比。回滚一项的用例验证影响范围分析的完整性：构造一条数据集版本到模型检查点到评测报告的依赖链，回滚该数据集版本，工具应列出全部下游对象并给出阻断、作废与重做三项判断。

### 6.5 多协议模型评测引擎工具链

#### 6.5.1 输入输出样例要点

输入样例给出两套完整的评测协议：一套面向板材备料能力（图纸要素识读、工序序列编排、展开与定额计算、工艺借用判定四个维度），一套面向通用场景能力（依据可溯答复、权限边界遵守、工具调用正确性三个维度）。两套协议按表 4-2 与 4.2.1 的七项要素齐备，含人工复核规则与指标口径。配套给出判分规则样例，覆盖表 4-3 的六种判分方式。

输出样例给出一次完整运行的四件产出，并给出一份多对象横向对比的排行榜实例与一份能力雷达图的数据表实例。样本级结果的样例须含五类情形各若干条：判对的、判错的、落入分界带转人工的、违反硬约束判零分的、未获取输出的。第四类与第五类是最容易被忽略而在验收时被追问的两类，样例中必须有。

#### 6.5.2 配置清单

表 6-5　多协议模型评测引擎的配置项（b1157）

| 配置项 | 类型 | 取值范围 | 默认值 | 变更影响 |
|---|---|---|---|---|
| 评测协议引用与版本 | 引用 | 协议库版本 | 按任务指定 | 协议即口径，变更须重跑以保可比 |
| 基准集引用与版本 | 引用 | 已冻结版本 | 按协议指定 | 仅可引用已冻结版本 |
| 被测对象清单 | 列表 | 网关登记的对象标识与版本 | 按任务指定 | 对象增减改变排行榜构成 |
| 各对象的并发上限与速率配额 | 结构 | 按对象给整数 | 按网关登记值 | 过高触发对端限流 |
| 解码参数 | 结构 | 温度、最大长度、停止词等 | 协议中固定 | 同批对比中须一致，否则不可比 |
| 上下文长度上限 | 整数 | 按对象能力 | 协议中固定 | 同批对比中须一致 |
| 工具可用性配置 | 结构 | 工具调用题的可用工具清单 | 协议中固定 | 同批对比中须一致 |
| 单题重试次数 | 整数 | 0—5 | 2 | 影响未获取输出比例 |
| 未获取输出比例上限 | 小数 | 1%—5% | 2% | 超限该次运行标记无效 |
| 判分方式映射 | 结构 | 题型到主判分与校准方式的映射 | 协议中固定 | 变更即改判分口径 |
| 裁判提示词版本 | 引用 | 模板库版本 | 当前版本 | 变更须重跑受影响历史评测 |
| 裁判结果抽样复核比例 | 小数 | 10%—100% | 10% | 低于 10% 不足以校准 |
| 人机一致率下限 | 小数 | 80%—95% | 85% | 低于此值该通道停用 |
| 置信区间计算参数 | 结构 | 重采样次数与置信水平 | 1000 次／95% | 影响显著性判断 |
| 随机种子 | 整数 | 任意 | 协议中固定并记录 | 同种子可复现 |

#### 6.5.3 测试用例要点

协议可重复性一项的用例是本工具链的核心测试：固定协议、对象、基准集与种子，连续运行三次，三次主指标的极差应不超过 0.5 个百分点。另设一例验证协议版本化生效：改动协议中的一项判分权重并发新版本，按新旧两版分别运行，结果应不同且运行记录中协议版本正确区分。

公平性约束一项的用例构造两个对象使用不同解码参数的运行请求，工具应在编排阶段检出不一致并拒绝作为横向对比，或允许运行但在输出中标记不可比。这项用例检验的是工具会不会悄悄给出一份不公平的排行榜。

判分融合一项的用例按六种判分方式各设用例，重点三条：规则约束的否决性（构造一条答案内容基本正确但违反工序先后约束的回答，应判零分而非部分分）；裁判通道的停用机制（人为构造人机一致率低于 85% 的情形，该题型应自动转为人工全部判分）；人工复核的覆盖与留痕（复核改分后，原自动分值、复核分值、复核角色与理由均应在样本级结果中可见）。

多模态一项按表 4-4 的六类任务各设用例，位置类答案的用例须含重叠度恰为 0.5 与 0.3 的边界例。失败处理一项的用例构造对端超时情形，检验超时题目是否被标记为未获取输出且不计入得分分母——若被当作答错，该用例判不通过。

### 6.6 数据贡献度归因与错题溯源工具链

#### 6.6.1 输入输出样例要点

输入样例给出一份完整的失败样本清单（含不少于三类错误表现）、对应的训练样本血缘查询结果、数据子集标签表与一份留出对比的评测结果对。输出样例给出六种呈现各一份：能力雷达图数据表、排行榜、版本对比（含显著性判断，且须含一例"未见显著差异"的结论）、样本级结果、失败样本清单、统计显著性分析明细。

归因报告样例须含完整的错题分类表：不超过二十类，每类给错题数量、占比、典型例题、嫌疑原因、**所用归因层级**（一层血缘回溯／二层相似检索／三层留出对比／轻量仲裁）与建议动作。层级一列是必填项，它决定该类错题能派什么动作——层级为二层的只能派核查、不能派剔除（见 4.3.2），报告样例里不标层级，这条权限规则在执行时就落不了地。表中须有一类归因到知识覆盖盲区的实例，以展示工具如何区分"数据错了"与"数据没有"。修订工单样例按表 4-6 字段全覆盖，含三个优先级各一例，以及一例状态为"已转需求"的工单——该例对应的是现场尚无记录须从零补录的数据项，用以展示该出口的实际用法。

#### 6.6.2 配置清单

表 6-6　归因与错题溯源工具链的配置项（b1157）

| 配置项 | 类型 | 取值范围 | 默认值 | 变更影响 |
|---|---|---|---|---|
| 溯源路径启用项 | 布尔组 | 强路径（血缘回溯）／弱路径（相似检索） | 均启用 | 仅弱路径时结论证据强度下降 |
| 知识点标签体系引用 | 引用 | 标签体系版本 | 当前版本 | 强路径的覆盖范围取决于此 |
| 相似检索返回条数 | 整数 | 5—100 | 20 | 影响嫌疑样本集大小 |
| 聚类维度启用项 | 布尔组 | 四个维度 | 全部启用 | 维度减少致归类变粗 |
| 聚类类别数上限 | 整数 | 10—50 | 20 | 超限按数量合并尾部类别 |
| 贡献度留出对比的子集选择 | 列表 | 占比最大来源／新接入来源／合成样本子集／指定子集 | 前三项 | 增加子集增训练轮次成本 |
| 置信区间与检验方法 | 结构 | 重采样次数／配对检验方法 | 1000 次／配对检验 | 影响显著性结论 |
| 显著性水平 | 小数 | 0.01—0.10 | 0.05 | 影响"未见显著差异"的判定 |
| 盲区判定依据 | 引用 | 各任务类型的最小可用量（同表 6-2） | 同表 6-2 | 影响第六类原因的判定 |
| 工单优先级映射规则 | 结构 | 影响范围到优先级的映射 | 见表 4-6 | 影响整改期限安排 |
| 整改期限 | 整数组 | 按优先级给工作日数 | 5／10／随下版 | 须与项目计划一致 |
| 工单验证方式映射 | 结构 | 问题类型到验证动作的映射 | 见表 4-6 | 影响工单关闭条件 |
| 责任组映射 | 结构 | 问题类型到环节的映射（记组别） | 按环节预置 | 影响工单流向 |

#### 6.6.3 测试用例要点

错题溯源一项的用例采用注入方式：在训练集中人为植入一批内容有误的样本（如把某道工序的先后关系写反），训练后在基准集上评测，检验工具能否把相应错题归因到这批样本。这是对归因能力最直接的检验，测试报告给出归因命中的情况与证据路径分布。

聚类分析一项的用例检验两件事：类别数是否受上限约束（构造能产生五十类的错题集，工具应合并到二十类以内并说明合并规则）；四维联合是否生效（构造两组错题，错误表现相同但所涉业务对象与嫌疑来源不同，应聚为两类而非一类）。

六类原因判别一项的用例按表 4-5 各设一例，重点是第六类与前五类的区分：构造一个知识点在训练集中样本量为零的错题组，工具应判为知识覆盖盲区并出补齐需求单，而不是判为训练样本内容有误并要求返工。

贡献度估计一项的用例验证留出对比的正确性：构造一个明显影响某能力维度的子集，留出后该维度得分应明显下降，工具给出的贡献估计方向应与之一致。显著性一项的用例构造两版差异在置信区间内的评测结果，报告中应表述为"未见显著差异"——若表述为"有所提升"，该用例判不通过。

工单一项的用例检验两条纪律：整改后未经验证即请求关闭，工具应拒绝；需要新增采集的工单请求关闭，工具应引导至"已转需求"状态并要求登记依赖方与预计解决时点。

### 6.7 数据集–模型版本血缘追溯工具链

#### 6.7.1 输入输出样例要点

输入样例给出一条完整的依赖链：若干源对象到样本、样本到处理批次、批次到数据集版本、版本到切分结果、切分结果到训练任务、训练任务到模型检查点、检查点到评测运行、评测运行到修订工单、发布记录到数据集版本与基准集版本。这条链覆盖表 4-7 的全部十一类节点与九类边，是血缘图谱的完整样例。

输出样例给出五类审计查询各一份结果（按表 4-8），并给出一份影响范围分析报告实例，含阻断、作废与重做三项判断与一份按依赖顺序排列的重跑序列。另给一份血缘完整性校验报告实例，含逐样本八项字段的齐备情况统计与未挂接样本清单。图谱的可视化样例给出两种视图：以某条样本为中心的正向展开视图，以某个数据集版本为中心的反向影响视图。

#### 6.7.2 配置清单

表 6-7　血缘追溯工具链的配置项（b1157）

| 配置项 | 类型 | 取值范围 | 默认值 | 变更影响 |
|---|---|---|---|---|
| 血缘粒度分层口径 | 结构 | 各数据集类型的记录粒度 | 微调／偏好／基准逐条，预训练到文档与批次 | 变更影响存储量与审计深度 |
| 八项血缘字段必填性 | 布尔组 | 各字段可单独设必填 | 全部必填 | 放宽将降低挂接率考核意义 |
| 辅助三项记录开关 | 布尔组 | 出域记录／合成标记／脱敏记录 | 全部开启 | 关闭将影响安全审计 |
| 血缘挂接率门限 | 小数 | 90%—100% | 98%（首期基线） | 低于门限阻断发布 |
| 图谱查询深度上限 | 整数 | 3—20 跳 | 10 | 过深查询开销大 |
| 历史时点查询保留期 | 整数 | 按月 | 不短于质保期 | 影响可回溯窗口 |
| 审计查询预置项 | 列表 | 五类用途 | 全部预置 | 缺项将迫使使用者自拼查询 |
| 影响范围判断规则 | 结构 | 阻断／作废／重做三项的判定规则 | 见 4.4.2 节 | 变更须审批 |
| 回滚审批开关 | 布尔 | —— | 受影响对象含已发布项时强制 | 关闭将使回滚失控 |
| 血缘记录修改策略 | 枚举 | 只追加 | 只追加 | 不可改为可修改 |

#### 6.7.3 测试用例要点

血缘完整性一项的用例检验八项字段的必填校验：构造一条缺失提示词版本的样本（但其处理链路中确有模型调用），发布前校验应检出并阻断。另设一例检验分层口径：对预训练语料请求样本级血缘，工具应按文档级返回并说明分层口径，而不是报错或返回空。

图谱查询一项的用例按五类审计查询各设一例，重点是模型发布一类：构造一个依赖链中含未裁定污染项的检查点，查询应返回发布阻断项而不是只返回数据集版本清单。影响范围分析一项的用例构造一条含已发布对象的依赖链，回滚请求应触发审批要求并给出完整的作废清单。

只追加特性一项的用例检验血缘记录不可改写：发起修改请求应被拒绝；发起更正请求应以追加更正记录的方式完成，原记录仍可查，且更正关系可见。这项用例是血缘可信的技术保证。

性能一项的用例在首期数据量级上测量三类查询的响应时间（按样本查链路、按批次查影响、按时点查历史状态），实测值进测试报告，性能承诺口径见非功能性章节（T11）。

### 6.8 五项关键约束的可执行验证用例

下列五项约束决定本组工具产出的数据集能否被当作验收证据：来源家族隔离、评测集防污染、版本冻结、定向返工、重新发布。五项都写成可执行用例——给出输入怎么构造、按什么步骤跑、通过判据是什么、不通过怎么处置，使验收方可以自行复跑而不必依赖我方的结论。用例随测试用例集交付，构造数据脚本一并提供。

表 6-8　五项关键约束的可执行验证用例

| 约束 | 输入构造 | 执行步骤 | 通过判据 | 不通过时的处置 |
|---|---|---|---|---|
| 来源家族隔离 | 构造 600 条图纸—工艺卡样本，其中 120 条人工指定为 30 个零件族（每族 4 条，族内板厚或压弯角度有差异）；另构造 80 条同工单多工序记录、60 条同文档切出的问答 | ①对该数据集执行去重，取同族变体登记结果；②执行三层切分；③对 train／valid／test 两两交叉复查归集键 | 30 个零件族、同工单组、同文档组各自的全部样本落在同一集合，无一族跨集合；族内 4 条均被判为同族变体而非重复 | 任一族跨集合即判不通过：核查归集单元构建是否取到族标识，补登记后重切并重测 |
| 来源家族隔离（反向用例） | 同上数据集，但人工清空零件族登记字段 | 对该数据集直接请求切分 | 工具拒收任务，返回输入类错误 30003（前置条件未满足），指明缺失项为零件族登记 | 工具若仍执行切分即判不通过——前置检查形同虚设时，隔离在真实数据上同样会失效 |
| 评测集防污染 | 自冻结基准集取 240 条题目，按原文照抄 80 条、同义替换 80 条、改写句式 80 条分三档改写后注入训练集；另注入 60 条仅含通用术语与型号编码的样本作为负例 | ①执行四级污染扫描；②按风险等级统计命中；③检查阻断行为 | 原文照抄与同义替换两档 160 条全部判为高风险并阻断；改写句式档命中不低于 68 条（85%）；60 条负例不被判为高风险 | 前两档有遗漏即判不通过，缩短 n 取值一档重建倒排后重测；负例被误判为高风险的，核查等级判定参数 |
| 版本冻结 | 取一个已冻结发布的基准集版本，准备三类操作请求：修改一条题目答案、删除一条题目、调整题目到能力维度的映射 | ①逐条提交三类修改请求；②按随集交付的指纹算法说明独立复算集合指纹与逐条样本指纹；③修改一条样本内容后请求发布 | 三类修改请求全部被拒绝并返回策略类错误；独立复算的指纹与发布记录中的指纹逐位一致；修改后的发布产生新版本号，旧版本仍可读且指纹不变 | 任一修改被接受即判不通过；指纹复算不一致的，核查指纹算法说明与实现是否同版本 |
| 定向返工 | 构造一批含已知标注口径错误的样本（指定某标注批次的 150 条，其热处理三级判定按旧判据标注），并构造 30 道考该判定的基准题目 | ①执行评测取错题；②执行归因，核对成因判定结论；③核对生成的修订工单；④按工单返工该批次后重跑评测与工单的验证方式 | 归因结论指向标注成因且定位到该标注批次；工单的责任组为标注环节、含验证方式；返工后重跑该维度得分变化为正且工单可关闭；返工前工单不可关闭 | 成因判到数据成因或来源成因即判不通过，核查判定次序是否按 4.3.3 节执行；工单未经验证即可关闭的，核查流程配置 |
| 定向返工（权限用例） | 取一条仅由二层相似检索得出的归因结论 | 据此结论提交一张"剔除样本"的修订工单 | 工单被拒绝，返回策略类错误；改派"核查"动作的工单可正常创建 | 剔除工单被接受即判不通过——二层证据派剔除会误删真实样本，而误删不可被发现 |
| 重新发布 | 取一个已发布数据集版本 v1，其下游已有一次切分、一次训练任务、一个模型检查点与两份评测报告；人工在 v1 中植入一条未裁定的高风险污染样本 | ①执行发布前校验；②执行回滚至上一版本；③取影响范围分析结果；④修订后发布 v2；⑤核对版本谱系与下游状态 | 发布前校验拦截该版本并指明未裁定污染；影响范围分析列全四类下游对象，并给出阻断、作废、重做三项判断与重跑序列；回滚后两份评测报告被标注"基于已回滚版本，仅供参考"；v2 发布后当前指针指向 v2，v1 仍可读、未被删除 | 下游对象有遗漏即判不通过，核查血缘边是否齐备；评测报告未被标注的，核查作废判断规则版本 |

表 6-8　数据来源：五项约束分别对应招标文件 3.2.3.9.2（1）（2）（3）（5）、3.2.3.8.1（4）、3.2.3.10.2（3）（b1112、b1114、b1116、b1120、b1084、b1139）；构造量与判据为本方案设定，随首批数据实测调整。

七条用例的共同设计是**都带一条反向用例或负例**。只验证"该拦的拦住了"不足以说明约束生效——一个把全部样本都判为高风险的扫描器同样能通过正向用例，却会让整条流水线停摆。正例与负例一并给出，约束的边界才是确定的。

用例的执行频次分两档：版本冻结与重新发布两项在每次数据集发布前执行；其余三项在工具单项验收时执行，并在服务期内每半年回归一次。每次执行的原始记录留存，留存期不短于项目质保期。

## 7、本组工具链的实施路径与建设节奏

本节说明本组 7 个工具链的建设顺序与节点安排。工具的建设不能与数据加工同步起跑，因为本组工具的输入是加工产出；但也不能等数据加工完成再建，否则质量问题要到最后才暴露。节奏的安排按一条原则：**哪一类问题最早会出现，承接它的工具就最早交付**。

### 7.1 建设顺序的依据

四类数据集的加工一旦开始，最早出现的问题是重复与污染。63 万张图纸配对的工艺卡样本进入候选池的第一天，重复就存在；而污染的后果最严重——基准集一旦被污染且未被发现，后续全部评测结论都不可用，返工代价是整条链路。所以去重与污染扫描排在第一批。

分布问题出现在有了一定存量之后。首批样本量不足时统计分布没有意义，所以分布分析与均衡排在第二批，但不能太晚——均衡处理要在大规模标注开始前给出补齐需求，否则标注资源会按错误的配比投下去。

切分与基准构建排在第二批的末尾，时点取在首轮训练之前。它的前置条件是数据集已完成去重与同族登记，所以必须在第一批工具稳定运行之后。基准集的建设周期较长（题目要专家出、要经污染核验），须与切分工具并行准备。

评测引擎、归因溯源与血缘追溯排在第三批，时点取在首个模型检查点产出之前。血缘追溯有一处例外：血缘的**写入**是公共层的能力，必须随第一批工具一同上线，否则早期批次的血缘补不回来；血缘的**查询与图谱**可以后建。这个区分很重要。把血缘整体推到第三批是常见的失误，结果是前半年的数据缺血缘且无法补回。

### 图 7-1　本组工具链的建设顺序与前置依赖

<svg viewBox="0 0 820 390" xmlns="http://www.w3.org/2000/svg"
     font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="13">
  <defs><marker id="i7" markerWidth="9" markerHeight="9" refX="8" refY="4.5" orient="auto">
    <path d="M0 0 L9 4.5 L0 9 z" fill="#334155"/></marker></defs>
  <line x1="150" y1="40" x2="150" y2="340" stroke="#cbd5e1"/>
  <line x1="330" y1="40" x2="330" y2="340" stroke="#cbd5e1"/>
  <line x1="510" y1="40" x2="510" y2="340" stroke="#cbd5e1"/>
  <line x1="690" y1="40" x2="690" y2="340" stroke="#cbd5e1"/>
  <text x="150" y="32" text-anchor="middle" font-size="12">加工起跑</text>
  <text x="330" y="32" text-anchor="middle" font-size="12">存量成形</text>
  <text x="510" y="32" text-anchor="middle" font-size="12">首轮训练前</text>
  <text x="690" y="32" text-anchor="middle" font-size="12">首个检查点后</text>

  <text x="10" y="70" font-size="12">公共层</text>
  <rect x="80" y="54" width="710" height="26" rx="4" fill="#eef2f7" stroke="#334155"/>
  <rect x="211.1" y="58.4" width="440.0" height="17.0" fill="#eef2f7" stroke="none" data-halo="1"/><text x="435" y="72" text-anchor="middle" font-size="12">接口·格式·血缘写入·质量上报·安全管控（随第一批工具一同上线，全程运行）</text>

  <text x="10" y="108" font-size="12">第一批</text>
  <rect x="100" y="92" width="280" height="26" rx="4" fill="#f1f5f9" stroke="#334155"/>
  <rect x="148.1" y="96.4" width="176.0" height="16.0" fill="#f1f5f9" stroke="none" data-halo="1"/><text x="240" y="110" text-anchor="middle" font-size="12">去重与相似度过滤（含污染扫描）</text>

  <text x="10" y="146" font-size="12">第二批</text>
  <rect x="250" y="130" width="230" height="26" rx="4" fill="#f1f5f9" stroke="#334155"/>
  <rect x="321.0" y="135.4" width="88.0" height="16.0" fill="#f1f5f9" stroke="none" data-halo="1"/><text x="365" y="148" text-anchor="middle" font-size="12">分布分析与均衡</text>
  <rect x="250" y="164" width="230" height="26" rx="4" fill="#f1f5f9" stroke="#334155"/>
  <rect x="321.0" y="168.4" width="88.0" height="17.0" fill="#f1f5f9" stroke="none" data-halo="1"/><text x="365" y="182" text-anchor="middle" font-size="12">模板化数据生成</text>
  <rect x="330" y="198" width="230" height="26" rx="4" fill="#f1f5f9" stroke="#334155"/>
  <text x="445" y="216" text-anchor="middle" font-size="12">切分与基准构建</text>
  <rect x="330" y="232" width="230" height="26" rx="4" fill="#ffffff" stroke="#334155" stroke-dasharray="4 3"/>
  

  <text x="10" y="284" font-size="12">第三批</text>
  <rect x="510" y="266" width="270" height="26" rx="4" fill="#f1f5f9" stroke="#334155"/>
  <text x="645" y="284" text-anchor="middle" font-size="12">多协议评测引擎</text>
  <rect x="600" y="300" width="180" height="26" rx="4" fill="#f1f5f9" stroke="#334155"/>
  <rect x="616.0" y="304.4" width="147.0" height="17.0" fill="#f1f5f9" stroke="none" data-halo="1"/><text x="690" y="318" text-anchor="middle" font-size="12">归因溯源·血缘查询与图谱</text>

  <path fill="none" d="M240 118 V130 H250" stroke="#334155" stroke-width="1.2" marker-end="url(#i7)"/>
  <rect x="253.0" y="114.6" width="94.0" height="15.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="300" y="126" text-anchor="middle" font-size="10">同族登记为切分前置</text>
  <path fill="none" d="M365 156 V164" stroke="#334155" stroke-width="1.2" marker-end="url(#i7)"/>
  <text x="430" y="162" text-anchor="middle" font-size="10">补齐需求单</text>
  <path fill="none" d="M480 143 H500 V210 H560" stroke="#334155" stroke-width="1.2" stroke-dasharray="3 2"/>
  <path fill="none" d="M560 211 H510 V266" stroke="#334155" stroke-width="1.2" marker-end="url(#i7)"/>
  <text x="560" y="258" text-anchor="middle" font-size="10">冻结基准集</text>
  <path fill="none" d="M645 292 V300 H600" stroke="#334155" stroke-width="1.2" marker-end="url(#i7)"/>
  <rect x="668.0" y="286.6" width="64.0" height="15.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="700" y="298" text-anchor="middle" font-size="10">失败样本清单</text>

  <text x="435" y="360" text-anchor="middle" font-size="11">横轴为相对节点而非日期；绝对日期按项目总计划排布（见 S1）</text>
  <text x="435" y="378" text-anchor="middle" font-size="11">虚线框为准备性工作，不是工具交付项</text>

  <rect x="333.1" y="234.9" width="216.0" height="20.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="445" y="250" text-anchor="middle" font-size="12">基准集题目征集与污染核验（并行准备）</text>
</svg>

图 7-1　本组工具链的建设顺序与前置依赖。数据来源：本节各工具链的前置条件；项目总体节点见项目管理措施（S1）。

### 7.2 每一批的交付内容与可用判据

表 7-1　三批交付的内容与可用判据

| 批次 | 交付工具 | 交付内容 | 判为可用的依据 | 对下游的解锁 |
|---|---|---|---|---|
| 公共层 | 接口、格式、血缘写入、质量上报、安全管控 | 六类调用接口、五种格式序列化、八项血缘字段写入、通用指标上报、四类敏感信息识别与脱敏、授权与审计 | 六类接口按文档可调通；血缘八项字段写入完整；脱敏回扫无命中；越权与出域拦截生效 | 第一批工具可部署 |
| 第一批 | 去重与相似度过滤 | 四级级联流水线、重复组清单、污染命中报告、同族变体登记 | 回灌测试的污染识别达基线；抽样复核一致率达基线；同族变体识别经工艺口确认 | 数据集可做切分；候选池可入库 |
| 第二批 | 分布分析与均衡、模板化生成、切分与基准构建 | 八维分布统计与两张交叉图、六类问题判定、五种均衡方法与上限约束、三套模板与校验器、三层切分与五类泄漏检测、基准集冻结管理 | 构造数据集的统计结果与构造参数一致；上限约束可拦；泄漏构造例逐类检出；基准集冻结后不可改 | 标注资源可按配比投放；首轮训练可启动；评测可开始 |
| 第三批 | 多协议评测引擎、归因溯源、血缘查询与图谱 | 两套评测协议、六种判分方式、六类多模态任务、四维聚类、修订工单、血缘图谱与五类审计查询 | 同协议重复运行偏差达基线；注入错误样本可被归因命中；五类审计查询按预置返回 | 数据集价值可被验证；验收证据链完整 |

每一批的交付都按验收五件套提交（见 5.6 节），不以"工具已上线"作为交付完成的标志；判为可用的依据按表中各项逐条核对。

### 7.3 服务期内的持续工作

工具交付后的主线工作是参数校准。下列五处参数随数据积累调整，否则判定会逐步失准：

凡由标定得出的门限（判重阈值、复核带、误杀率与漏检率上限、抽检合格率、裁判一致率）按季度校准一次：用累积的人工复核结论反推门限应取的值，校准前后各跑一批样本做比对，新门限与比对结果一并登记；门限变更须重跑受影响的历史批次，或在该批次的数据卡上标注按旧门限处理。校准只改门限不改指标定义；指标定义的变更须经评审并重算历史值，以保跨期可比。按定义确定的判据（指纹一致、泄漏零命中、分布统计偏差）不参与校准。

去重的阈值是其中最需要持续校准的一项。首期阈值按行业常用取值设定，运行一段时间后，用复核判定与自动判定的差异分布反推阈值应往哪边移，据此在上述季度节奏内调整。

分布的最小可用量需要随场景验证结果校准。首期按任务类型给默认值，场景验证开始后，能看出某类任务实际需要多少样本才达到可用水平，据此调整该任务类型的最小可用量，长尾判定与盲区判定随之变化。

模板的约束表需要随工艺口裁定持续修正。"约束存疑清单"每出一条，裁定后回写一次规则表。这个过程实际上是在把散见于经验的规则（如中性层扣除量按板厚、折弯角度与模具的对应关系）逐步成文，是本工具链的一项附带产出，对甲方的价值不低于工具本身。

评测协议需要随能力维度的理解深化调整。首期维度按表 4-2 设定，评测几轮之后会发现某些维度区分度不足（所有对象都接近满分或都很低），这类维度要么细分要么替换，调整须发新版协议并说明可比性边界。

基准集需要补题与换题。被污染的题目作废补题，区分度不足的题目换题，新增能力维度要新增题目。基准集的版本演进是常态，所以冻结管理与版本谱系是必需而非额外。服务期内按蓝图设计确认的频次组织集中补题与复核；本方案承诺在服务期内每半年组织一次基准集复核与补题，具体次数与时点随蓝图设计确认。

这一频次针对的是基准集自身，与《数据集质量评测方案》按 `b2136` 承诺的服务期内不少于四次数据集集中复测是两件事：前者维护的是度量尺，后者核验的是被度量的数据集，两者的次数与时点各自独立计列，不互相折抵。

### 7.4 与数据加工环节的协作接口

本组工具与加工环节之间有五条固定接口，接口形式写明可避免实施时反复协商：

**候选样本提交**——加工环节按批次向候选池提交样本，提交时附批次标识、来源标识、质检结论与血缘记录。缺血缘的批次不接收，这条是硬约束（见 5.3 节）。

**补齐需求单**——分布分析工具向加工与标注环节发出，含类别、目标数量、必须覆盖的参数组合、禁止组合、建议获取方式（真实采集／标注补充／模板生成）。需求单按优先级排序，加工环节据此安排资源。

**修订工单**——归因工具向各环节发出，流转与关闭规则见 4.3.4 节。工单的承接环节在工单中指明组别，不指个人。

**阈值与规则变更通知**——本组工具的阈值、规则表、Schema、协议发生版本变更时，向受影响环节发出通知，说明变更内容、生效时点与是否需要重跑历史批次。

**质量检查节点结果回告**——批次未过质量检查节点时，向提交该批次的环节回告具体未过项、指标实测值与门限值、以及回退动作（阈值回退重跑或退回修订）。回告须具体到指标项，不只回"未通过"。

五条接口都通过平台承载，有记录可查，不走线下沟通。这样安排的理由是数据加工涉及多个环节与较长周期，线下约定在人员轮换或时间推移后会失效，而平台上的记录不会。

## 8、质量、验收与协作接口的统一口径

同一概念在不同环节出现时按本节口径理解，不另立定义。

### 8.1 生产质检、工具评测与正式评测的职责与流程

数据质量在三个环节分别判定，判定对象、责任岗位、执行时点与产出各不相同，不可互换。

**生产质检**由数据加工流水线承担，判定对象是单条样本的加工合格性——这条样本标注对不对、字段全不全、格式符不符。质检点设在采集预处理与标注合成之后、入候选集之前，由加工班组自检、质检岗复核，产出是逐样本的质检结论，结论随样本写入血缘记录的质检结果字段（字段见表 5-3）。质检不通过的样本退回返工，返工后重新质检，仍不通过的不入候选集。

**工具评测**由本组工具承担，判定对象是数据集这个集合——集合里有没有重复、有没有污染、分布形状对不对、血缘齐不齐。它以生产质检的结论作为输入（质量等级维度的分档依据），不重复做单样本的合格性判断。执行时点是候选数据集入库之后、版本发布之前，由数据质量岗执行，产出是质量治理报告、问题样本清单与数据修订工单。未过质量检查节点的版本不予发布；工单按责任环节分派回加工侧，关闭后方可重新提请发布。

**正式评测**由具资质的第三方机构承担，判定对象是数据集成品，依《高质量数据集质量评测规范》（TC609-5-2025-04）的指标体系逐项评测，覆盖完整性、规范性、一致性、真实性、多样性等维度，产出是盖章的评测报告。执行时点是数据集版本发布之后、阶段验收之前；前两个环节的过程记录——质检结论、质量治理报告、血缘链路、评测运行记录——作为该次评测的佐证材料一并提交。

三个环节逐级向上：样本级合格性、集合级质量、成品级评测，后一级以前一级的记录为输入与佐证，不替代前一级。表 5-4 的通用质量指标属过程指标，第三方评测的指标体系属成品指标，两者不互相替代；指标名相同的，定义以第三方评测所依规范为准。污染相关的口径（内容干净性、泄漏检查）在三个环节使用同一套风险等级划分（见表 2-4），这是三个环节必须一致的一项。

### 8.2 三类验收的对象与依据

"验收"在本项目中指三件不同的事，对象与依据各不相同：

**工具的单项验收**（5.6 节）验的是工具本身——五件套齐备、功能逐条对应测试用例、指标达基线。验收对象是工具，依据是招标文件 3.2.3.11（6）。

**数据集的发布验收**（2.3.5 节、4.4.2 节）验的是某一版数据集可否发布——质量检查节点全过、血缘挂接率达门限、无未裁定的高风险污染、无未关闭的高优工单。验收对象是数据集版本，依据是质量治理报告与血缘完整性校验。

**项目的整体验收**（见 S1、S3）验的是全部交付物——数据集规模与质量、工具链 25 个、运营平台功能模块、治理文档、场景验证结论。验收对象是项目，依据是招标文件的交付清单与评测报告。

三类验收的证据链是串联的：工具验收合格的工具产出数据集，数据集发布验收合格的版本进入整体验收的交付清单，整体验收所需的质量证据由前两类的记录与第三方评测报告共同构成。

### 8.3 与工具链一、二的衔接

工具链一（数据构建类，见 T2A）与工具链二（对齐与标注类，见 T2B）的产出是本组工具的输入，衔接点有四处需明确：

**思维链样本的去重**（T2A 产出）——思维链样本的字面相似度天然偏高（推理步骤的句式相近），直接套用通用近重阈值会误删。本组工具对思维链样本的处理是只比对问题与结论，不比对推理过程文本；关键字段差异检查的字段集设为问题、结论与关键推理节点。这条配置在 T2A 的产出规范中同步说明。

**长上下文样本的切分隔离**（T2A 产出）——长上下文样本来自同一份长文档的不同片段，必须整份文档归一个集合，否则测试集里的片段与训练集里的片段来自同一文档，等于泄漏。这属表 3-6 的同源文档类，由文档标识归集。

**多模态对齐结果的消费**（T2B 产出）——本组工具的语义相似比对在同模态内进行，跨模态的关联取自 T2B 的对齐结果；对齐关系缺失的样本，跨模态重复不做判定并在报告中标注未检。

**增强样本的分布影响**（T2B 产出）——增强前后的分布比对由本组分布分析工具执行（2.3.2 节），PSI 超限时回看增强参数。增强工具与本组工具之间的接口是增强批次标识，使比对能定位到具体批次。

四处衔接的共同点是：本组工具不改变上游的产出规范，而是按上游的数据特性调整自身配置。配置差异记入各数据集类型的配置档，不靠实施时临场判断。

### 8.4 与运营平台、训推平台的边界

运营平台（见 T3）承载本组工具的任务提交界面、质量看板、血缘图谱可视化与审计查询入口。本组工具提供接口与数据，界面与交互由平台实现。与本组相关的平台功能模块为质量管理、血缘管理与评测管理三个，其模块清单见 T3。

训练推理技术服务（见 T13）提供被测对象的推理接口与留出对比所需的训练轮次。本组工具调用推理接口执行评测，不参与训练与调参。两者的接口是统一网关的调用形式与检查点登记表。本组工具对训练侧的唯一要求是训练任务须登记其使用的数据集版本，否则血缘链路在训练任务这一节点断开。这条要求写入血缘节点定义（表 4-7 的训练任务节点属性）。

### 8.5 数字口径的一致性

本节涉及的规模数字一律取统一口径：预训练数据集 615 亿 Token、指令微调 89 万条、强化学习偏好 6.6 万组、基准测试 0.95 万条；备料工序 28 道；历史图纸约 63 万张；工具链 9 类 25 个。涉及配比的取数据集规模规划（见 T1C）。

本节提出的工程门限（去重准确率、校验通过率、评测偏差、血缘挂接率等）均为首期目标值，随蓝图设计与首批数据实测结果按 7.3 节的门限校准机制重新确认。

## 9、风险点与应对

本节列出实施中的具体风险及应对、回退动作。

表 9-1　本组工具链的风险点与应对

| 风险点 | 为什么会发生 | 后果 | 应对动作 | 不奏效时的回退 |
|---|---|---|---|---|
| 零件族关系登记不全，借用件跨集合 | 图号与命名规则不统一，借用关系存在于人的经验中而非系统字段 | 测试集指标虚高，场景验证时落空 | 同族关系由去重工具的关键字段差异检查生成候选，经工艺口确认入库；切分前校验族关系覆盖率 | 覆盖率不足时按图号前缀粗粒度归集，宁可过度隔离；数据卡标注族关系覆盖率 |
| 基准集题目被污染且未及时发现 | 历史资料集中，训练与评测同源；题目改写后字面不同 | 全部基于该基准集的评测结论作废 | 题目入集前经污染扫描核验；每轮评测后对异常高分维度回查污染 | 发现即作废该题并补题，重跑受影响评测；保留评测集始终不参与训练作为兜底 |
| 标注口径与判据口径分别演进 | 标注规范与现场判据（如热处理三级判定、焊接缺陷类别）由不同部门维护 | 样本与模型失配，错题归因指向标注批次但返工后问题仍在 | 标注依据统一引用各场景判据字典版本；判据变更触发标注规范同步评审与受影响批次标记 | 口径不一致时暂停该类标注，先裁定口径；已标批次标记按旧口径并在数据卡说明 |
| 从零补录的四类数据长期缺失 | 选型投运评价、热处理装载登记、焊接层间温度、维修事实当前无记录，须在业务流程中增设填报入口 | 相关能力维度无样本，评测无从验证 | 修订工单的"已转需求"出口登记依赖方与预计时点；数据卡如实标注覆盖不足；相关评测维度暂不纳入验收口径 | 以构造样本与回放窗口部分替代，构造样本全部打标并不进评测集；验收口径按当期可覆盖范围约定 |
| 阈值设置偏松或偏紧长期未校准 | 首期阈值按行业常用值设定，与本项目数据特性未必匹配 | 偏松致重复与污染漏过，偏紧致有效样本被误删 | 按季度用人工复核反馈反推阈值；校准前后跑比对批次并登记 | 偏紧优于偏松：不确定时阈值取保守侧，复核带扩宽，人工判定量上升 |
| 向量化模型更换导致语义判定不一致 | 模型随代升级，新旧向量空间不可比 | 换模型前后对同一批数据给出不同去重与泄漏结论，且无人察觉 | 更换时整体重建索引并对上一版结论做抽样回归比对，差异超 2 个百分点则该批判定作废重跑 | 回退到上一版模型继续运行，待回归比对通过后再切换 |
| 裁判模型判分不可靠 | 裁判本身是模型，可能把错的判成对 | 评测结论失真，归因方向错 | 抽样不低于 10% 人工复核，一致率低于 85% 该题型全部转人工判分；裁判不评测同源数据 | 该题型改用精确匹配或行业指标判分，牺牲覆盖面保可靠性 |
| 多模态题目受采集条件限制 | 视频与传感器类采集仅覆盖部分车间与设备，工艺过程图像需单独布点 | 相关能力维度题量不足，评测无代表性 | 首期题量按已具备采集条件的试点范围确定，数据卡标注当期覆盖范围 | 该维度不纳入当期验收口径，随采集扩展补充题目并补测 |
| 血缘在早期批次缺失且无法补回 | 血缘写入若不随第一批工具同时上线，早期加工的样本无记录 | 血缘挂接率达不到门限，审计链路断在起点 | 血缘写入层随公共层与第一批工具一同上线，先于任何加工批次 | 早期批次按文档级补录可补的部分，补不齐的从发布版本剔除并记入待补清单 |
| 外部模型调用导致敏感信息出域 | 调用方可能绕过脱敏直接提交原始内容 | 技术秘密与商业敏感信息流出 | 统一网关为唯一出口，不可出域字段在网关层强制拦截；脱敏后回扫；逐次记录九项 | 拦截误判时走审批放行并记录；网关不可用时相关环节降级为内网处理 |
| 质量检查节点过严导致流水线长期挂起 | 首期门限按目标值设定，实际数据达不到 | 批次堆积，加工进度受阻 | 门限分首期基线与服务期目标两档，首期按基线执行；挂起批次给阈值回退一档的重跑路径 | 两次重跑仍未过的转人工复核放行，放行记录与未达项登记在数据卡 |
| 工单积压无法关闭 | 需要新增采集或源系统开通接口的工单，依赖外部配合 | 未关闭工单累积，发布被持续阻断 | "已转需求"为正式状态，登记依赖方与预计时点，不计入阻断项 | 高优工单超期未解决的，由项目组评审是否调整该版本的验收范围 |

关于零件族关系（第一条），这是本组工具在本项目上最具体的技术风险。借用率七八成意味着族关系的影响面极大，而族关系的识别又没有现成字段可用。本方案的处理是把它当作一项需要人机协同逐步建立的数据资产，而不是一个算法问题：工具生成候选族关系，工艺口确认，确认结果入库成为后续切分与去重的依据。这个过程本身给甲方留下一份可复用的零件族台账，价值超出本项目范围。

关于从零补录的四类数据（第四条），其根本解决途径在业务流程侧：于流程中增设填报入口，由系统预填、经手人确认，属流程建设范畴。本组工具在数据加工侧承担的是把缺口显式记录、随进度更新覆盖度，并在验收口径中如实约定当期可覆盖的范围。缺口在数据卡与验收口径中逐项登记，覆盖度一律以真实样本计量。

## 10、交付清单与验收口径汇总

本节汇总本任务的全部交付物与对应的验收口径。

### 10.1 交付物清单

表 10-1　本任务交付物清单

| 序 | 交付物 | 内容 | 交付时点 | 验收方式 |
|---|---|---|---|---|
| 1 | 公共层（接口、格式、血缘写入、质量上报、安全管控） | 六类调用接口、五种格式序列化、八项血缘字段写入、八项通用指标上报、四类敏感信息识别与脱敏、三层授权与六类审计日志 | 先于第一批工具 | 接口按文档可调通；血缘字段写入完整；脱敏回扫无命中；越权与出域拦截生效 |
| 2 | 数据去重与相似度过滤工具链 | 四级级联流水线、重复组清单、污染命中报告、同族变体登记 | 第一批 | 五件套＋回灌测试＋抽样复核一致率 |
| 3 | 数据分布分析与均衡工具链 | 八维统计与两张交叉图、六类问题判定、五种均衡方法、质量治理报告 | 第二批 | 五件套＋构造数据集统计一致性＋上限约束可拦 |
| 4 | 模板化数据生成工具链 | 模板引擎、七类槽位、规则与禁止组合清单、六类 Schema 校验、生成日志 | 第二批 | 五件套＋可复现性测试＋校验通过率 |
| 5 | 数据集切分与基准构建工具链 | 三层切分、五类泄漏检测、基准集冻结管理、标准化评测运行、版本化发布与回滚 | 第二批 | 五件套＋隔离构造例全检出＋冻结不可改＋重复运行偏差 |
| 6 | 多协议模型评测引擎工具链 | 评测协议、六种判分融合、多对象调度、六类多模态评测 | 第三批 | 五件套＋重复运行偏差＋公平性约束生效 |
| 7 | 数据贡献度归因与错题溯源工具链 | 六种结果呈现、四维聚类、六类原因判别、贡献度留出对比、修订工单 | 第三批 | 五件套＋注入错误可被归因＋显著性表述合规 |
| 8 | 数据集–模型版本血缘追溯工具链 | 血缘图谱十一类节点九类边、五类审计查询、影响范围分析三项判断 | 第三批 | 五件套＋五类查询按预置返回＋只追加特性 |
| 9 | 配套文档：评测协议模板、判分规则库、质量治理报告模板、修订工单模板、数据集标准映射配置 | 模板与配置文件，带版本号 | 随对应工具 | 按模板出一份实例并经评审 |
| 10 | 服务期校准记录 | 阈值校准、最小可用量调整、约束表修正、协议版本演进、基准集补题记录 | 服务期内按季度与半年节奏 | 校准前后比对记录齐备 |

工具链本身的开发与部署形态、与运营平台的集成方式见 T3；所需算力与环境见 T13 与非功能性章节 T11；本节只汇总本任务范围内的交付物与验收口径。

### 10.2 验收口径的核对顺序与判定

各工具链的指标值、适用条件、测量方法与不达标处置，写在该工具链自己的实施设计中：精确重复识别见 2.2.2 节，近重复判定见 2.2.3 节，语义相似过滤见 2.2.4 节，高风险污染拦截见 2.2.5 节，误杀率与漏检率见 2.2.9 节，分布统计一致性见 2.3.1 节，覆盖度与长尾不足见 2.3.3 节，生成校验通过率见 3.2.4 节，跨集合泄漏见 3.3.2 节，基准集冻结一致性与组题区分度见 3.3.3 节，评测重复性见 3.3.4 节，裁判通道人机一致率见 4.2.3 节，血缘挂接率见 4.4.2 节，脱敏回扫见 5.5.1 节，率值类指标的报出口径见 5.4 节。

验收按指标值、适用条件、测量方法、不达标处置四项逐行核对，核对顺序固定为：先核适用条件是否成立，再核测量方法是否按规定执行，最后核实测值是否达到指标值。

适用条件不成立时不进入数值比对。例如零件族登记未完成而仍执行了切分，泄漏检测的零命中结论不作数；向量模型已换代而索引未重建，语义相似过滤的准确率不作数。这类情形按"条件未满足"记录，并按对应的不达标处置执行，不按通过记。

测量方法按规定执行，指复核样本随机抽取、复核与自动判定用同一张评分表、抽样量达到规定条数、置信区间与两个样本量一并登记。缺其中任一项的，该次测量结果不作为验收依据，重测后再核。

实测值达到或超过指标值的判通过。未达的，核对不达标处置是否已执行并留有记录：处置已执行、未达项已在数据卡与质量治理报告"待补与存疑"章登记的，该项判为有条件通过并列入下一季度的门限校准计划；处置未执行的判不通过。

招标文件、数据集标准与甲方判据字典已给定值的指标，工具门限直接取该值与该前提，按原值整额核对，不另设宽限区间，也不另立换算口径，不走上述有条件通过的路径。招标文件 3.2.3.8 至 3.2.3.11 各条为能力要求，未给出定量门限；本组各工具链所列数值均为依矿装数据特性设定的工程门限，其取值依据与标定方法随指标一并写在该工具链的实施设计中，首批数据到位后按同一标定方法重算一遍并报招标方确认，标定记录随质量治理报告留档。

### 10.3 不列入本任务范围的事项

为避免交付边界含糊，以下事项不在本任务范围，按责任边界指向对应段落：人工标注的实施（标注规范与工具在 T2B，标注实施由加工环节承接）；模型训练、调参与算力调度（T13）；运营平台的界面与交互实现（T3）；第三方盖章质量测评报告的出具（S3）；智能场景的建设（不在本包范围）；数据资源的采集接入与源系统接口开通（T12）。
