## 专项智能工具链（二）：多模态数据对齐、智能标注、数据生成与增强

本章回应招标文件第五章 3.2.3.5 多模态数据对齐类工具链、3.2.3.6 智能标注类工具链、3.2.3.7 数据生成与增强类工具链三节，共 3 类 10 个工具（b0989、b1007、b1040）。

工具链的总体交付清单与 9 类 25 个工具的统一视图见「专项智能工具链总述」一节（任务 T2），数据构建类 3 类 8 个工具见「工具链一」一节（任务 T2A），质量与验证类 3 类 7 个工具以及 3.2.3.11 通用接口、追溯与验收要求见「工具链三」一节（任务 T2C）。本章所述工具产出的标注集、对齐样本与合成样本，由「数据加工生产」一节（任务 T1A、T1B）的生产流程消费，两处不重复论述加工环节本身。

### 一、工具链定位与交付内容

#### 1.1 三类工具在数据加工主线上的位置

矿山装备制造领域的数据与互联网语料的差别，不在体量而在形态。甲方的事实散落在三种互不相通的载体里：一是图纸与工艺卡片一类的工程文档，约六十三万张历史图纸且每张历史上都配有一份已审核签发的工艺卡片，天然成对但配对关系只存在于文件目录与人的记忆中；二是设备过程中产生的时序信号与报警日志，采样密度到秒级，但与具体工件、炉次、焊道没有稳定的主键关系；三是人写下来的自然语言记录，包括工单、检验结论、不合格品票与改造方案，表述自由、口径不一。要把这三类载体变成可以喂给行业大模型的训练与评测样本，必须先解决「对不上」的问题，再解决「没标签」的问题，最后解决「样本不够、长尾缺失」的问题。本章三类工具按该顺序排布。

多模态数据对齐类工具链解决「对不上」：把图纸里的几何与符号抽成结构化字段，把视频关键帧挂到设备运行事件与工艺阶段的时间轴上，把时序片段切到报警与维修工单的时间窗里（b0990）。智能标注类工具链解决「没标签」：用大模型做预标注、用主动学习把人力投到最该投的样本上、用领域本体约束标签之间的逻辑关系、用多方交叉校验把一致性做成可测量的指标（b1008）。数据生成与增强类工具链解决「不够与不均」：按任务类型与难度层次扩充指令样本，按本体与历史工单分布构造故障场景，在保持语义与事实不变的前提下为同一条内容生成多种表达（b1041）。

三类工具共用同一套对象标识、版本与血缘字段，以及同一套置信度分级与人工介入口径；十个工具的产出才能拼成一份可验收的数据集，而不是十堆互不认账的中间文件。

#### 图 1-1　三类十个工具在数据加工主线上的位置与数据流向

<svg viewBox="0 0 820 430" xmlns="http://www.w3.org/2000/svg" font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="12.5">
  <defs>
    <marker id="t2b-a1" 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="8" y="8" width="804" height="414" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <text x="20" y="30" font-size="13" font-weight="bold">源侧事实（已由采集接入环节落到原始区）</text>
  <rect x="20" y="40" width="168" height="48" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="104" y="60" text-anchor="middle">工程文档</text>
  <text x="104" y="78" text-anchor="middle">图纸·工艺卡·标准</text>
  <rect x="200" y="40" width="168" height="48" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="284" y="60" text-anchor="middle">过程与运维信号</text>
  <text x="284" y="78" text-anchor="middle">时序·报警·视频</text>
  <rect x="380" y="40" width="168" height="48" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="464" y="60" text-anchor="middle">业务文本</text>
  <text x="464" y="78" text-anchor="middle">工单·检验·票据</text>
  <rect x="560" y="40" width="240" height="48" rx="5" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="680" y="60" text-anchor="middle">知识侧输入</text>
  <text x="680" y="78" text-anchor="middle">领域本体·术语词典·标注规范</text>

  <path fill="none" d="M104 88 V124" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a1)"/>
  <path fill="none" d="M284 88 V124" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a1)"/>
  <path fill="none" d="M464 88 V196" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a1)"/>
  <text x="474" y="118" font-size="11">原文片段</text>

  <rect x="20" y="124" width="528" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="284" y="146" text-anchor="middle" font-weight="bold">3.2.3.5　多模态数据对齐类（3 个工具）</text>
  <text x="284" y="166" text-anchor="middle">图纸结构化抽取｜视频－文本对齐｜时序－运维事件对齐</text>

  <path fill="none" d="M284 180 V196" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a1)"/>
  <text x="294" y="192" font-size="11">对齐样本（带对象主键与置信度）</text>

  <rect x="20" y="196" width="528" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="284" y="218" text-anchor="middle" font-weight="bold">3.2.3.6　智能标注类（4 个工具）</text>
  <text x="284" y="238" text-anchor="middle">大模型预标注｜主动学习｜本体驱动规则标注｜一致性校验</text>
  <path fill="none" d="M680 88 V218 H548" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-a1)"/>
  <text x="556" y="212" font-size="11">本体约束</text>

  <path fill="none" d="M284 252 V274" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a1)"/>
  <text x="294" y="268" font-size="11">已标注样本＋一致性指标</text>

  <rect x="20" y="274" width="528" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="284" y="296" text-anchor="middle" font-weight="bold">3.2.3.7　数据生成与增强类（3 个工具）</text>
  <text x="284" y="316" text-anchor="middle">指令数据生成｜工单与故障场景模拟｜文本重写与多样化</text>

  <path fill="none" d="M548 302 H640" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a1)"/>
  <text x="556" y="296" font-size="11">合成与增强样本</text>
  <rect x="640" y="274" width="160" height="56" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="720" y="298" text-anchor="middle">质量与验证类工具链</text>
  <text x="720" y="316" text-anchor="middle">（3.2.3.8–3.2.3.11）</text>

  <path fill="none" d="M720 274 V196 H548" stroke="#334155" stroke-width="1.2" stroke-dasharray="3 3" marker-end="url(#t2b-a1)"/>
  <rect x="598.0" y="177.5" width="103.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="600" y="190" font-size="11">质检回退与重标工单</text>

  <rect x="20" y="352" width="780" height="52" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="34" y="372" font-weight="bold">责任边界：</text>
  <text x="112" y="372">本章交付工具链、标注规范与接口口径；人工标注与复核在数据加工生产环节按本章规范执行；</text>
  <text x="34" y="392">智能场景的建设不在本包范围，本包向场景验证交付样本与评测结论。</text>
</svg>

图 1-1　三类十个工具在数据加工主线上的位置与数据流向。数据来源：招标文件第五章 3.2.3.5（b0989）、3.2.3.6（b1007）、3.2.3.7（b1040）节工具划分，以及 3.2.6.3 节加工环节划分。

#### 1.2 本章的回应方式

每一个工具按同一套体例展开六段：一是这一条要解决的现场问题，二是功能设计，三是输入输出接口，四是处理流程，五是输出样例，六是质量口径、验收方式与达不到时的回退路径。功能设计可按招标条款拆成多小节，但「输入输出接口」须单独成节（业务向接口表），字段级任务创建契约与调用样例统一落在第八节，两处口径一致、不互相替代。体例统一便于横向比对，并可直接转作需求书逐条应答矩阵（任务 T9）底稿。

招标文件中属于本章的 85 个单元，全部在正文中有对应段落，句末标注单元编号；第八节另附单元编号与节号的对应索引表，便于溯源核对。

#### 1.3 对「先进」的理解与取舍

本章技术选择遵守三条约束，后文取舍均据此执行。

第一条，凡是能用确定性程序算出来的，不交给模型。图纸压弯件的展开长按中性层公式计算，时序特征按既定算法计算，本体约束按逻辑规则判定——这些环节的正确性可以复算、可以审计，用模型反而引入不确定性。模型用在理解与组织上：读懂多视图的投影关系、把一段时序的异常形态写成人能看懂的诊断说明、把一条工单扩展成多轮排障对话。

第二条，凡是输出要被人采信的，必须带证据与置信度。本章所有工具的输出都包含证据字段：图纸抽取给出图元句柄与所在图层，视频对齐给出帧时间戳与事件编号，预标注给出证据片段与模型版本（b1015）。没有证据的标签在复核时无法判断对错，在训练时也无法定位脏数据的来源。

第三条，凡是指标，必须同时给出基线、验收口径与达不到时的回退。本章给出的每项指标都附三样东西：首期基线取值、验收抽样方式、低于门限时的处置动作。写入投标文件的指标即验收应答条款；同步给出回退路径，便于建设期内指标达不到时仍有可执行处置。

### 二、十个工具的统一工程约定

本章十个工具作为奔牛数据智能平台的功能模块交付与运行，共用平台的身份认证、权限控制、任务调度、版本管理与日志审计能力，不各自另建一套运行支撑。本节约定的内容在三类工具中一体适用，后文不再逐工具重复。涉及 3.2.3.11 通用接口、追溯与验收要求的完整条款在「工具链三」一节（任务 T2C）统一回应，本节只写与对齐、标注、生成三类工具直接相关的最小必要约定。

#### 2.1 对象标识与时间基准

三类工具的产出要能彼此拼接，前提是指向同一个业务对象时用同一个标识。甲方当前的困难恰在此处：施工号、产品号、图号、零件号、物料编码、工单号、炉次号、焊缝与焊道编号、设备编码与故障记录之间没有稳定的主键关系，跨系统追一件事仍需人工对账。因此本章所有工具在读写数据时一律通过统一对象标识服务换取内部主键，不直接使用源系统的业务编码做关联键。

统一对象标识服务由数据治理体系建设（任务 T4A、T4B）交付，本章作为使用方提出三项接口要求：一是提供「源系统编码到内部主键」的双向查询；二是在映射缺失时返回明确的未命中状态而不是空值，由调用方记录为待补映射并进入人工对账队列；三是映射关系本身带版本，历史样本回放时按当时版本解析。

时间基准统一到协调世界时存储、按 ISO 8601 格式带时区偏移量表达，展示层转为北京时间。设备侧采集的时间戳普遍存在设备时钟漂移，视频－文本对齐与时序－事件对齐两个工具都要处理这一问题，具体办法见第三节。

#### 2.2 统一的血缘与版本字段

本章十个工具的每一条输出记录，都携带表 2-1 所列的公共字段。字段名在三类工具间保持一致，使得一条样本从原始文件到对齐、到标注、到增强的全过程可以用同一组键串起来。

表 2-1　十个工具公共携带的血缘与版本字段

| 字段 | 含义 | 取值说明 |
|---|---|---|
| `record_id` | 本条记录的唯一标识 | 由工具生成，全局唯一且不复用 |
| `object_key` | 所指向的业务对象内部主键 | 来自统一对象标识服务；未命中时置为待补并记录源编码 |
| `source_ref` | 原始来源引用 | 文件指纹＋页/帧/行偏移，或测点编号＋时间区间 |
| `tool_id` / `tool_version` | 产出本条记录的工具与版本 | 语义化版本号，与工具发布记录对应 |
| `config_version` | 本次运行所用配置版本 | 配置以文件形式入库并纳入版本管理 |
| `model_ref` / `prompt_version` | 调用的模型标识与提示词版本 | 模型标识为统一网关侧的登记名与版本号，不写品牌 |
| `confidence` | 本条记录的置信度 | 取值 0–1，分级口径见 2.3 |
| `evidence` | 证据字段 | 图元句柄、原文片段、帧编号、时间区间等 |
| `review_state` | 复核状态 | 未复核／机器通过／人工通过／驳回／专家裁决 |
| `computed_facts` | 本条输出所依据的计算结果 | 测点编号、时间区间、计算式名称、输入值与输出值；凡输出文本含数值者必填 |
| `batch_id` | 所属批次 | 批次为调度与追溯的最小单位 |
| `created_at` / `updated_at` | 生成与更新时刻 | 协调世界时，ISO 8601 |

字段说明：`model_ref` 记录的是统一网关为每个接入模型分配的登记名与版本号，便于在模型随代升级后回溯某批样本是在哪一代能力下生成的；投标文件与交付文档中不绑定具体模型品牌与型号，模型可替换、可评测、可随代升级。

#### 2.3 置信度分级与人工介入口径

三类工具都要回答同一个问题：什么样的输出可以直接入库，什么样的必须由人看过。统一按表 2-2 的三档处置，各工具只调阈值不改分档逻辑。

表 2-2　置信度分级与对应处置

| 档位 | 判定条件 | 处置 | 人工投入 |
|---|---|---|---|
| 高置信 | 置信度不低于高阈值且通过结构校验与约束校验 | 直接入候选集，按比例抽检 | 抽检比例首期取 5%，连续三批抽检通过率不低于门限后可降至 3% |
| 中置信 | 置信度介于两档阈值之间，或校验出可修复的轻微问题 | 进入人工复核队列，工具给出修改建议 | 逐条复核，复核时只需确认或修改，不必从零标注 |
| 低置信 | 置信度低于低阈值，或校验出结构性冲突 | 进入人工标注队列，工具输出仅作参考 | 按原始标注工时计 |

阈值的初值由各工具在试点批次上标定：取一批已由人工确认的样本作为标定集，画出置信度与实际正确率的对应曲线，把高阈值定在实际正确率达到目标水平的位置，低阈值定在工具输出已无参考价值的位置。标定集随建设推进扩充，阈值每季度复标一次，复标记录入库。这个办法的好处是阈值有来处、可复核；代价是首期需要一批人工确认样本，这部分工作量已计入试点阶段。

高阈值的确定还要再严一道。画曲线取点这一步仍带主观性，而高置信档是自动入库的那一档，它的错误率需要有上界而不只是有个经验值。因此本章各工具的高阈值一律按工具链总述第 4.9 节的门限校准口径确定：在校准集上搜索门限，使门限以上样本的标签错误率不超过设定上限这一结论在给定置信水平下成立，门限随校准集扩充自动重算。校准按业务域与任务类型分别进行——图纸要素抽取与工单实体抽取的置信度含义不同，不共用门限。各工具的输出记录相应登记校准集版本、错误率上限与门限值三项，方法与依据不在本章重复，见总述第 4.9 节。

公共字段表里的计算结果字段同样有一道机械校验：凡输出文本中含数值的记录，校验器逐一比对文本中的数字与该字段登记的计算结果，不一致即判不通过并退回重新生成。这道校验不作语义判断，因此可以全量运行。其口径与适用边界见总述第 4.10 节。

#### 2.4 配置即代码与回放能力

十个工具的所有可调项——提示词模板、输出 Schema、本体版本、采样策略参数、改写比例、相似度阈值——一律以配置文件形式入库并纳入版本管理，运行时按版本号加载，不在界面上做不留痕的临时修改。配合 2.2 的血缘字段，任何一批样本都可以在原配置版本下重新跑一遍，比对两次结果的差异。这项能力在三种情形下是必需的：甲方对某批样本的质量提出疑问时用于复现；模型随代升级后用于评估新旧差异；验收阶段用于抽样复算。

#### 2.5 与关联章节的边界

表 2-3　本章与关联章节的职责边界

| 事项 | 本章（T2B） | 关联章节 |
|---|---|---|
| 工具的设计、接口、流程、样例 | 本章交付 | —— |
| 标注规范、标签体系、一致性判定口径 | 本章交付规范文本与工具实现 | 数据加工生产二（T1B）按本规范组织标注作业 |
| 人工标注与复核的产能组织、排班、计件 | 不在本章 | 数据加工生产二（T1B） |
| 统一接口风格、血缘追溯平台、验收总口径 | 本章遵循 | 工具链三（T2C）3.2.3.11 |
| 数据集质检抽样与判定 | 本章提供可质检的输出字段 | 数据加工生产二（T1B）、数据集质量评测方案（S3） |
| 模型训练与推理 | 本章产出训练与评测样本 | 行业大模型训练推理技术服务（T13） |
| 思维链、长上下文与 RAG、多轮对话数据构建 | 不在本章 | 工具链一（T2A） |
| 智能场景建设 | 不在本包范围 | 本包交付场景验证所需样本与评测结论 |

### 三、多模态数据对齐类工具链（3.2.3.5）

#### 3.1 这一类工具要解决的现场问题

本类工具回应招标文件 3.2.3.5 节（b0989）。该节要求提供面向图纸、工艺图、图像、视频关键帧、文本、传感器时序和运维事件的数据对齐能力，用于建立不同模态之间的语义、时间、空间和业务关联关系，形成可用于多模态模型训练、评测和场景验证的数据样本，覆盖图纸结构化、关键帧与事件对齐、时序事件对齐、特征抽取和诊断说明生成等环节（b0990）。

这一条要解决的现场问题是具体的。甲方的数据条件可以概括为「量不少、关联少、口径散」：生产业务数据留存完整，十年前生产了哪个矿的哪些产品都可追溯；设备过程参数已在采集并长期保存；历史图纸约六十三万张且每张历史上都配有一份已审核签发的工艺卡片。但是图纸与工艺卡片的配对关系存在于文件目录与人的记忆中；焊接参数流与工件、焊道没有对应；热处理炉次与工件、材料批次、检测结果之间没有稳定关联；故障记录与数据段没有配对；纸质检测报告数量可观但尚未数字化。

现场缺口在关联而非体量。本类工具不重复采集，而将既有数据按业务对象、时间轴与空间位置挂接，并记录依据与置信度，供训练使用及错样回溯。

#### 3.2 四类关联关系与承载工具

招标文件要求建立语义、时间、空间和业务四类关联关系（b0990）。四类关系的含义与承载方式见表 3-1。

表 3-1　四类关联关系的含义、矿山装备制造场景下的具体对象与承载工具

| 关联类型 | 含义 | 本项目中的具体对象 | 主要承载工具 |
|---|---|---|---|
| 语义关联 | 不同模态描述同一事物时的概念对应 | 图纸上的粗糙度符号与工艺卡片上的加工方法；视频画面中的作业动作与工单文字描述；时序曲线形态与诊断结论用语 | 图纸结构化抽取（3.2.3.5.1）、视频－文本对齐（3.2.3.5.2）、时序－事件对齐（3.2.3.5.3） |
| 时间关联 | 不同模态在同一时间轴上的位置对应 | 视频帧时间戳与设备运行事件、工艺阶段；传感器采样时刻与报警、停机、维修工单的发生时刻；热处理炉次的开完工记录与实际温度曲线 | 视频－文本对齐、时序－事件对齐 |
| 空间关联 | 不同模态在同一物理位置上的对应 | 图纸视图上的作用表面与实物焊道、加工面；相机视场与焊接部位；振动测点在轴上的角位置基准 | 图纸结构化抽取、视频－文本对齐 |
| 业务关联 | 不同模态记录归属同一业务对象 | 施工号—产品号—图号—零件号—工单号—炉次—焊道—测点—故障记录之间的归属链 | 三个工具均通过统一对象标识服务挂接（见 2.1） |

四类关系当中，业务关联是其余三类的前提。如果一段时序数据说不清属于哪个工件，那么它与报警时刻对得再准也没有训练价值。因此三个工具的处理流程中，第一步都是取业务对象主键，取不到的样本进入待补映射队列而不是硬挂一个猜测值。

#### 3.3 设备图纸与工艺图结构化抽取工具链（3.2.3.5.1）

本节回应招标文件 3.2.3.5.1 节（b0991）及其第（1）项要求：须支持从设备和工艺图纸中抽取结构化的数据信息（b0992）。

##### 3.3.1 现场问题

甲方的板材备料工艺编制困难集中在重复劳动。工艺人员要读懂多视图的投影关系，读出材料牌号、板厚、外形轮廓、孔与方孔、坡口与倒角、压弯线与粗糙度符号，据此在备料分厂固定且封闭的工序集合中挑选并排序——该集合现掌握的口径为二十八道，以工艺部门确认的正式工序字典为准——再逐字段填写卡片、关联设备与工装样板、按中性层公式换算压弯件展开长。

当前编制方式下工时大量消耗在录入而非工艺判断上：编制一张图纸的工艺卡需完成数百次点击与录入，一套四百张量级的项目仅工艺编审即需两天以上，而其中七八成图纸本有可借用的既有工艺，仍需逐张打开核对。出错代价不对称——材料定额中的下料尺寸写错，钢板割下来就是废料。

图纸抽取的首要验收点是：抽出的尺寸与定额能否被工艺人员直接采信。无置信度分级、无证据回指时，即便识别率高，工艺人员也无法判断哪些数字须复核，该工具在本场景不可用。

##### 3.3.2 功能设计

工具按五个功能单元组织，见表 3-2。

表 3-2　图纸与工艺图结构化抽取工具的功能单元

| 功能单元 | 做什么 | 关键技术取舍 |
|---|---|---|
| 原生图元解析 | 直接读取原生 CAD 图纸文件（DWG、DXF 等）的图元、图层、线型、块引用、尺寸标注与标题栏，保留每个图元的句柄 | 读原生文件而非截图识别。原生文件中尺寸标注的测量值是确定的数值，不需要识别；截图路线会把确定的数值变成识别结果，这是本项目不采用它的原因 |
| 版面与表格还原 | 解析标题栏、明细栏、技术要求文本块与图框信息，还原为字段值 | 标题栏与明细栏位置在企业内部有固定模板，按模板匹配优先、通用表格还原兜底 |
| 符号与标注语义解析 | 解析粗糙度、坡口、倒角、形位公差、尺寸公差、焊接符号、热处理要求等符号表达的加工要求，并确定其作用的表面范围 | 符号本身按国家标准的表示法规则解析，依据 GB/T 131—2006《产品几何技术规范（GPS） 技术产品文件中表面结构的表示法》与 GB/T 1800.1—2020《产品几何技术规范（GPS） 线性尺寸公差 ISO 代号体系 第 1 部分》；作用范围的判定需结合视图投影关系，由模型辅助给出候选、规则校验收敛 |
| 多视图投影关系重建 | 识别主视图、俯视图、左视图与剖视、局部放大视图之间的投影对应，把同一几何要素在不同视图上的表达归并为一个要素 | 先按视图框与投影线索做几何对齐，再用标注一致性校验归并结果。本项无法完全自动化时，输出候选对应关系供人工确认 |
| 几何要素与工艺特征提取 | 提取外形轮廓、板厚、孔（含方孔）位置与尺寸、压弯线、切割长度、面积，并计算压弯件展开长与材料定额 | 展开长按中性层公式确定性计算，中性层系数按板厚、折弯角度与模具的对应关系取自工装台账；台账缺失处输出为待补并给出经验区间，不静默取默认值 |

扫描件与纸质图纸的处理另按一条路线：先做版面分析与光学字符识别，再进入符号语义解析；此路线的输出一律不进高置信档，默认进入人工复核队列。这是因为扫描件上的尺寸数值来自识别而非原始数据，置信度在工程语境下不足以直接采信。两条路线的选择由输入文件类型自动判定，处理结果在 `source_ref` 字段中标明来源路线。

##### 3.3.3 输入输出接口

表 3-3　图纸结构化抽取工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 图纸文件获取 | 按图号或项目从产品全生命周期管理系统按已授权范围只读读取图纸文件、物料清单与工艺文件；解析在内网就地进行，文件不出内网 | 工具侧发起只读调用；原生图纸不支持整批导出时按图号或项目批量拉取 |
| 输入 | 工序字典与规则 | 备料分厂工序集合（现掌握口径二十八道）、加工方法分档规则、中性层系数台账、工装压模与样板台账 | 从知识本体与规则库读取，带版本号 |
| 输入 | 历史成对样本 | 历史图纸与其已审核签发的工艺卡片配对样本，用于抽取结果的回归比对 | 从数据集原始区读取，按批次 |
| 输出 | 结构化图纸记录 | 标题栏字段、明细栏行、几何要素表、符号与加工要求表、视图对应关系、材料定额与展开长 | 以 JSON 文档写入对齐区，附表 2-1 公共字段 |
| 输出 | 要素级证据索引 | 每个字段回指到图元句柄、图层名、视图编号与坐标范围 | 与结构化记录同库存储，供复核时定位 |
| 输出 | 待补与冲突清单 | 未命中对象主键、台账缺失、视图对应存疑、符号无法解析的条目 | 以工单形式推入人工处理队列 |

##### 3.3.4 处理流程

#### 图 3-1　图纸与工艺图结构化抽取流程与责任边界

<svg viewBox="0 0 820 470" xmlns="http://www.w3.org/2000/svg" font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="12.5">
  <defs>
    <marker id="t2b-a2" 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="8" y="8" width="804" height="454" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="24" y="26" width="150" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="99" y="45" text-anchor="middle">图纸文件</text>
  <text x="99" y="63" text-anchor="middle">原生 CAD／扫描件</text>

  <path fill="none" d="M174 49 H228" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <text x="178" y="42" font-size="11">文件＋图号</text>

  <rect x="228" y="26" width="140" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="298" y="45" text-anchor="middle">类型判定与</text>
  <text x="298" y="63" text-anchor="middle">对象主键获取</text>

  <path fill="none" d="M368 49 H430" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <text x="372" y="42" font-size="11">object_key</text>

  <rect x="430" y="18" width="170" height="30" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="515" y="38" text-anchor="middle">路线 A：原生图元解析</text>
  <rect x="430" y="54" width="170" height="30" rx="4" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="515" y="66.2" text-anchor="middle"><tspan x="515">路线 B：版面分析＋字符识</tspan><tspan x="515" dy="15.6">别</tspan></text>

  <path fill="none" d="M600 33 H664 V112" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <path fill="none" d="M600 69 H664" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3"/>

  <rect x="24" y="112" width="780" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="414" y="131" text-anchor="middle" font-weight="bold">符号与标注语义解析（粗糙度·坡口·倒角·公差·焊接符号）＋作用表面范围判定</text>
  <text x="414" y="149" text-anchor="middle" font-size="11">依据 GB/T 131—2006 表示法规则；模型给候选，规则做收敛</text>

  <path fill="none" d="M414 158 V186" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <text x="424" y="178" font-size="11">带句柄的要素集</text>

  <rect x="24" y="186" width="376" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="212" y="205" text-anchor="middle">多视图投影关系重建</text>
  <text x="212" y="223" text-anchor="middle" font-size="11">同一要素跨视图归并，存疑输出候选</text>

  <rect x="428" y="186" width="376" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="616" y="205" text-anchor="middle">几何要素与工艺特征提取</text>
  <text x="616" y="223" text-anchor="middle" font-size="11">展开长按中性层公式确定性计算</text>

  <path fill="none" d="M212 232 V262" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <path fill="none" d="M616 232 V262" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>

  <rect x="24" y="262" width="780" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="414" y="281" text-anchor="middle" font-weight="bold">结构校验与置信度分档（高／中／低，口径见表 2-2）</text>
  <text x="414" y="299" text-anchor="middle" font-size="11">校验项：必填字段完整性·尺寸闭合性·板厚与材料牌号可枚举性·定额合理区间</text>

  <path fill="none" d="M180 308 V340" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <text x="188" y="330" font-size="11">高置信</text>
  <path fill="none" d="M414 308 V340" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <text x="422" y="330" font-size="11">中置信</text>
  <path fill="none" d="M648 308 V340" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a2)"/>
  <text x="656" y="330" font-size="11">低置信／冲突</text>

  <rect x="24" y="340" width="300" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="174" y="359" text-anchor="middle">入对齐区候选集</text>
  <text x="174" y="377" text-anchor="middle" font-size="11">按比例抽检（首期 5%）</text>

  <rect x="336" y="340" width="156" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="414" y="359" text-anchor="middle">人工复核队列</text>
  <text x="414" y="377" text-anchor="middle" font-size="11">确认或修改</text>

  <rect x="504" y="340" width="300" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="654" y="359" text-anchor="middle">人工处理／待补台账工单</text>
  <text x="654" y="377" text-anchor="middle" font-size="11">不静默取默认值</text>

  <path fill="none" d="M414 384 V408 H228" stroke="#334155" stroke-width="1.2" stroke-dasharray="3 3" marker-end="url(#t2b-a2)"/>
  <path fill="none" d="M654 384 V408" stroke="#334155" stroke-width="1.2" stroke-dasharray="3 3"/>
  <rect x="238.0" y="391.5" width="213.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="240" y="404" font-size="11">修改归因回流：沉淀为企业规则与评测样本</text>

  <rect x="24" y="418" width="780" height="34" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="38" y="440" font-weight="bold">责任边界：</text>
  <text x="116" y="440">工具输出到可审状态并交出推理依据；工艺卡片的审核签发仍由甲方工艺岗位完成。</text>
</svg>

图 3-1　图纸与工艺图结构化抽取流程与责任边界。数据来源：招标文件第五章 3.2.3.5.1 节（b0991、b0992）；工序口径与中性层计算方式依甲方工艺部门现行做法。

##### 3.3.5 输出样例

下例为一张压弯件图纸的抽取结果片段，字段名与表 2-1、表 3-3 一致。为便于阅读省略了部分重复的要素行。

```json
{
  "record_id": "DWG-EXT-2027031200781",
  "object_key": {"part": "PK-0000000931", "drawing": "DW-0000045127", "project": "PJ-00002218"},
  "source_ref": {"route": "A-native", "file_digest": "sha256:9f1c…a4", "layout": "主视图+俯视图+局部放大A"},
  "title_block": {
    "part_name": "过渡槽帮板",
    "material": "Q355B",
    "thickness_mm": 16,
    "drawing_rev": "C",
    "designer_role": "设计岗位",
    "approve_state": "已签发"
  },
  "geometry": {
    "outline_perimeter_mm": 4318.6,
    "outline_area_mm2": 862140.0,
    "holes": [
      {"type": "round", "d_mm": 22.0, "count": 8, "evidence": {"handle": "2F3A", "layer": "ARC-HOLE", "view": "V1"}},
      {"type": "square", "a_mm": 40.0, "count": 2, "evidence": {"handle": "2F55", "layer": "ARC-HOLE", "view": "V1"}}
    ],
    "bends": [
      {"line_id": "B1", "angle_deg": 90.0, "radius_mm": 20.0,
       "neutral_factor": 0.41, "neutral_factor_source": "工装台账 v2027.02 / 板厚16-角度90-模具 M-18",
       "evidence": {"handle": "31C7", "layer": "ARC-BEND", "view": "V2"}}
    ],
    "developed_length_mm": {"value": 1486.3, "method": "中性层公式", "recomputable": true}
  },
  "process_requirements": [
    {"type": "roughness", "value": "Ra 12.5", "applies_to": {"surface_id": "S3", "view": "V1", "bbox": [412, 180, 760, 214]},
     "spec_ref": "GB/T 131—2006", "confidence": 0.94, "evidence": {"handle": "3A02", "layer": "ARC-SYM"}},
    {"type": "bevel", "value": "单边V形 30°±2°, 钝边 2mm", "applies_to": {"surface_id": "S7", "view": "V3"},
     "confidence": 0.71, "evidence": {"handle": "3A4D", "layer": "ARC-SYM"}}
  ],
  "view_mapping": [
    {"element_id": "S3", "views": ["V1", "V2"], "method": "投影线索+标注一致性", "confidence": 0.88},
    {"element_id": "S7", "views": ["V1", "V3"], "method": "候选待确认", "confidence": 0.52, "review_state": "未复核"}
  ],
  "material_quota": {"net_area_mm2": 862140.0, "nesting_pending": true,
                     "note": "套料利用率需在下料排版后回填"},
  "confidence": 0.86,
  "review_state": "机器通过",
  "tool_id": "dwg-extract", "tool_version": "1.4.0", "config_version": "cfg-2027Q1-03",
  "model_ref": "gw-vlm/v3", "prompt_version": "p-sym-0112",
  "batch_id": "B-20270312-DWG-017",
  "pending": [
    {"item": "坡口作用表面跨视图对应存疑", "element_id": "S7", "action": "转人工确认"}
  ]
}
```

样例中有两处值得说明。一是 `developed_length_mm` 带 `recomputable: true` 标记，表示该值由公式与台账参数确定性算出，验收时可独立复算；中性层系数的来源写明了台账版本与匹配条目，台账缺失时此处会改为待补而不是取默认系数。二是 `view_mapping` 中 S7 的置信度为 0.52，低于阈值，整条记录因此在 `pending` 中列出并转人工确认，而不是把存疑的坡口要求当作已确认结果写入工艺卡片字段。

##### 3.3.6 质量口径、验收与回退

表 3-4　图纸结构化抽取工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 标题栏与明细栏字段抽取正确率 | 原生图纸路线不低于 95%，扫描件路线不低于 85% | 按图号分层随机抽样不少于 300 张，与人工核对结果比对；每个字段单独计分 | 对未达标的字段类型关闭自动填写，改为输出候选值供人工选择 |
| 几何要素（轮廓、孔、压弯线）抽取正确率 | 原生图纸路线不低于 95% | 同上，按要素计数，位置偏差超过图纸公差带的计为错 | 对特定图层或块引用样式做专项适配后重跑该批 |
| 符号与加工要求解析正确率 | 不低于 88%，并逐步接近人工复核水平 | 抽样 300 张，按符号条目计分；作用表面范围判定错误单独统计 | 低于基线的符号类型从自动解析转为候选推荐，仍保留证据回指 |
| 压弯件展开长计算一致性 | 与工艺人员按同一公式、同一系数手算结果逐步接近一致 | 抽取 100 件压弯件独立复算，偏差超过 1mm 计为不一致 | 定位为系数台账缺项或角度解析错误，分别走台账补录与几何重算 |
| 可借用历史工艺的召回情况 | 在历史成对样本上，相似工艺候选的前五位命中率不低于 80% | 用历史图纸与其已签发工艺卡片做回归比对 | 检索键从工艺特征退回到图号与材料牌号组合，召回范围放宽、由人工筛选 |

需要说明的是，上表所有基线是在甲方提供的试点批次图纸上标定的目标值，首期试点规模与图纸构成在实施方案中明确。工具上线后按季度复测并公布实测值，实测值低于基线时按回退列的动作处置，不以调整统计口径的方式达标。

此外有两项前置条件写在这里，因为它们直接决定本工具能达到的上限：备料分厂的工序字典与加工方法分档规则目前未成文，中性层扣除量按板厚、折弯角度与模具的对应关系散见于经验，图号与命名规则在历史图纸上不统一。这三项的梳理与成文纳入数据治理体系建设（任务 T4A、T4B）的标准制定范围，本工具在它们成文之前按已掌握的口径运行并把缺项显式记录为待补，不以推测值填充。

#### 3.4 视频－文本对齐工具链（3.2.3.5.2）

本节回应招标文件 3.2.3.5.2 节（b0993）及其三项要求。

##### 3.4.1 现场问题

甲方的厂区视频监控当前仅用于安防，点位、角度与清晰度不满足观察焊接部位一类工艺过程的要求。工艺过程所需的图像采集须按各场景的数据要求单独提出并另行布点。这意味着视频－文本对齐工具面对的是两类输入：既有安防视频中可用的作业过程片段，以及本项目新布点采集的工艺过程视频。两类输入的画质、帧率与视场差别很大，工具必须在同一套接口下处理，并在输出中标明来源，使下游训练时可以按来源分层。

更重要的问题是对齐依据。一段焊接视频本身不包含「这是第几道焊道、处在哪个工艺阶段」的信息，这些信息在制造执行系统的工序流转记录与物联网平台的设备报警记录里。把两者挂起来，靠的是时间戳；而设备时钟漂移、报工时点相对实际作业有滞后，这两件事是甲方现场的既有状况。因此本工具的设计重点有两个：一是对齐，二是把对齐的不确定性如实记录并可检出。

##### 3.4.2 功能设计之一：关键帧抽取与帧级文本说明

工具支持三种关键帧抽取方式，并在抽取后结合画面光学字符识别与视觉描述形成帧级文本说明（b0994、b0995）。三种方式的适用情形见表 3-5。

表 3-5　三种关键帧抽取方式的触发条件与适用情形

| 抽取方式 | 触发条件 | 适用情形 | 产出密度 |
|---|---|---|---|
| 事件触发 | 由设备报警、工序开完工、炉次开炉、焊接起弧与收弧、停机等事件的时间戳触发，按事件前后各取可配置时长的窗口抽帧 | 构造「事件—画面」成对样本，用于诊断类与质量类数据集 | 每事件 3 至 30 帧，按事件类型配置 |
| 关键帧检测 | 按画面变化度、场景切换、运动量与清晰度评分自动选帧，并做相似帧去重 | 长时段连续录像的压缩采样，用于生成画面描述与工艺阶段识别样本 | 按配置的每分钟上限控制 |
| 人工标记 | 由工艺人员、质检人员在复核界面上标记时点，或从既有的交检拍照记录中取时点 | 稀缺但高价值的样本，如典型缺陷出现时刻、工装异常时刻 | 由标记数量决定 |

帧级文本说明由三部分合成：画面中可见的文字（设备面板读数、工位牌、工件标识、字幕叠加的时间与参数）由光学字符识别取得；画面内容的自然语言描述由多模态模型生成，描述模板按场景约束，要求写明可见的对象、位置关系与可观察到的状态，不写推断性结论；可直接从画面读取的量化信息（如面板显示的电流值、温度值）单独成字段，与描述文本分离存放。

把量化信息与描述文本分开存放，是因为两者的可信度不同，下游用法也不同：面板读数经核对后可以作为标签使用，描述文本更适合作为模型的理解材料。混在一段文字里，下游就无法分别处理。

##### 3.4.3 功能设计之二：时间戳对齐与输出字段

工具支持视频关键帧与设备运行事件、工艺阶段进行时间戳对齐，输出帧时间戳、视觉描述、事件标签、工艺阶段和置信度（b0996、b0997）。输出字段的定义见表 3-6。

表 3-6　视频－文本对齐记录的输出字段

| 字段 | 定义 | 取值与说明 |
|---|---|---|
| `frame_ts` | 帧时间戳 | 协调世界时，ISO 8601 带时区偏移；原始设备时间与校准后时间分别保留 |
| `clock_offset_ms` | 本路视频相对统一时间基准的时钟偏移 | 由时钟校准步骤估得，附估计方法与残差 |
| `visual_desc` | 视觉描述 | 自然语言，描述可见对象、位置关系与可观察状态 |
| `ocr_text` | 画面文字识别结果 | 原样保留，附逐条置信度与在画面中的坐标框 |
| `panel_readings` | 从画面读取的量化信息 | 键值对，附单位与识别置信度 |
| `event_tags` | 事件标签 | 来自设备报警、工序流转、炉次记录等事实源的事件编号与类型，可多值 |
| `process_stage` | 工艺阶段 | 取自工序字典的阶段编码，附判定依据（来自工序流转记录／由画面推断／人工标注） |
| `object_key` | 业务对象主键 | 工件、焊道、炉次、设备等，来自统一对象标识服务 |
| `align_confidence` | 对齐置信度 | 由时间距离、时钟偏移残差、事实源记录的时点可靠性三项合成 |
| `align_method` | 对齐方法 | 事件时点直接匹配／最近邻时间窗匹配／人工确认 |
| `source_profile` | 采集来源画像 | 安防既有点位／本项目新布点；分辨率、帧率、视场说明 |

`align_confidence` 的合成方式写明在配置里：时间距离越近得分越高；时钟偏移残差越大扣分越多；事实源记录的时点可靠性按事实源分档取系数——炉次开完工记录与设备报警记录的时点较可靠，制造执行系统的报工时点因存在滞后而取较低系数。这样做的结果是，同样一帧画面挂到报警事件上的置信度会高于挂到报工记录上，下游可以据此筛选样本。

##### 3.4.4 功能设计之三：对齐校验

工具支持关键帧与事件标签的对齐校验，识别时间漂移、描述缺失和画面不匹配（b0998、b0999）。三类问题的检出方法见表 3-7。

表 3-7　对齐校验的三类问题与检出方法

| 问题类型 | 表现 | 检出方法 | 处置 |
|---|---|---|---|
| 时间漂移 | 视频时间轴与事实源时间轴整体或分段错位，表现为画面内容系统性地早于或晚于事件 | 一是用画面内可见的时钟或叠加时间戳与统一基准比对；二是选取一批有明确视觉特征的事件（起弧、开炉、工件进场）做互相关估计，求整段偏移与分段偏移；三是监测偏移估计值的时间趋势，线性漂移单独标记 | 偏移小于阈值时自动校正并记入 `clock_offset_ms`；超出阈值或存在非线性漂移时该段视频降级为低置信，转人工确认采集侧时钟配置 |
| 描述缺失 | `visual_desc`、`ocr_text` 或 `panel_readings` 为空或内容无效（如全为模糊、遮挡、黑屏） | 画面质量评分（清晰度、曝光、遮挡比例）低于门限；描述文本长度或信息量低于门限；识别结果置信度整体偏低 | 该帧标记为无效帧，不进入训练样本；连续无效帧比例超过门限时对该路视频出采集质量工单 |
| 画面不匹配 | 画面内容与所挂事件标签在语义上对不上，如挂着「焊接起弧」的帧里没有弧光与焊枪 | 一是用事件类型对应的画面特征检查表做规则校验（事件类型—应当可见的对象清单）；二是用多模态模型对「画面与事件标签是否相符」打分；三是把同一事件类型的帧聚类，离群帧单独检出 | 不相符的记录不自动删除，改为降级并写入 `pending`，由人工判断是对齐错误还是事件记录本身有误；后者回流到事实源数据质量问题清单 |

三类校验都不以「自动修正后直接入库」为默认动作。时间漂移在阈值内自动校正，其余两类一律降级转人工，原因是自动修正的错误在下游不可见，而降级转人工的代价是可计量的工时。

##### 3.4.5 输入输出接口

表 3-7A　视频－文本对齐工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 视频流／录像 | 安防既有点位与本项目新布点；点位加时段或文件引用 | 按授权只读拉取；输出以 `source_profile` 标明来源分层 |
| 输入 | 事实源事件 | 设备报警、工序开完工、炉次、起弧／收弧等时点 | 物联网／制造执行／产线控制只读；时间用协调世界时 |
| 输入 | 工艺阶段与对象主键 | 工序字典阶段编码、统一对象标识服务 | 带版本读取（对应第八节 `stage_table_version`） |
| 输入 | 时钟与抽帧配置 | 视频侧与业务侧时钟来源、三种抽帧策略（表 3-5）、对齐容差 | 任务参数传入；缺 `clock_source` 须拒收，不自行猜基准 |
| 输出 | 帧级对齐记录 | 表 3-6 全字段（含校准偏移、对齐置信度、校验结果） | 写入对齐区，附表 2-1 公共字段 |
| 输出 | 关键帧与校准统计 | 关键帧清单、`clock_calibration`、按来源分层可用率 | 与对齐批同交；不同点位可用率分列，不合并成一个总数 |
| 输出 | 分流队列 | 人工确认队列、采集质量工单、事实源数据质量问题清单 | 工单／队列推送 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.2（表 8-4、表 8-5）。

##### 3.4.6 处理流程

#### 图 3-2　视频－文本对齐流程：三路抽帧、时钟校准与对齐校验

<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="12.5">
  <defs>
    <marker id="t2b-a3" 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="8" y="8" width="804" height="404" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="24" y="24" width="160" height="40" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="104" y="40" text-anchor="middle">视频流／录像</text>
  <text x="104" y="57" text-anchor="middle" font-size="11">安防既有＋新布点</text>

  <rect x="24" y="76" width="160" height="40" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="104" y="92" text-anchor="middle">事实源事件</text>
  <text x="104" y="109" text-anchor="middle" font-size="11">报警·工序流转·炉次</text>

  <path fill="none" d="M184 44 H244" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>
  <path fill="none" d="M184 96 H212 V62 H244" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>
  <text x="188" y="38" font-size="11">帧序列</text>
  <rect x="186.0" y="78.5" width="48.0" height="15.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="188" y="90" font-size="11">事件时点</text>

  <rect x="244" y="24" width="150" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="319" y="44" text-anchor="middle">时钟校准</text>
  <text x="319" y="62" text-anchor="middle" font-size="11">画面时钟比对＋</text>
  <text x="319" y="76" text-anchor="middle" font-size="11">特征事件互相关</text>

  <path fill="none" d="M394 52 H452" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>
  <text x="398" y="46" font-size="11">offset_ms</text>

  <rect x="452" y="18" width="160" height="26" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="532" y="36" text-anchor="middle">① 事件触发抽帧</text>
  <rect x="452" y="50" width="160" height="26" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="532" y="68" text-anchor="middle">② 关键帧检测抽帧</text>
  <rect x="452" y="82" width="160" height="26" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="532" y="100" text-anchor="middle">③ 人工标记取帧</text>

  <path fill="none" d="M612 31 H660 V140" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>
  <path fill="none" d="M612 63 H660" stroke="#334155" stroke-width="1.3"/>
  <path fill="none" d="M612 95 H660" stroke="#334155" stroke-width="1.3"/>

  <rect x="24" y="140" width="780" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="414" y="159" text-anchor="middle" font-weight="bold">帧级文本说明合成：画面文字识别｜视觉描述生成｜面板量化读数单独成字段</text>
  <text x="414" y="177" text-anchor="middle" font-size="11">量化读数与描述文本分开存放——两者可信度不同，下游用法不同</text>

  <path fill="none" d="M414 184 V212" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>

  <rect x="24" y="212" width="780" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="414" y="231" text-anchor="middle" font-weight="bold">时间戳对齐：帧 → 事件标签 ＋ 工艺阶段 ＋ 对象主键</text>
  <text x="414" y="249" text-anchor="middle" font-size="11">align_confidence ＝ f（时间距离，时钟残差，事实源时点可靠性系数）</text>

  <path fill="none" d="M414 256 V284" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>

  <rect x="24" y="284" width="780" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="414" y="303" text-anchor="middle" font-weight="bold">对齐校验：时间漂移｜描述缺失｜画面不匹配</text>
  <text x="414" y="321" text-anchor="middle" font-size="11">阈值内漂移自动校正；其余两类一律降级转人工，不自动删除</text>

  <path fill="none" d="M200 328 V356" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>
  <path fill="none" d="M470 328 V356" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>
  <path fill="none" d="M700 328 V356" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a3)"/>

  <rect x="24" y="356" width="352" height="40" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="200" y="381" text-anchor="middle">帧级对齐样本入对齐区</text>
  <rect x="388" y="356" width="164" height="40" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="470" y="381" text-anchor="middle">人工确认队列</text>
  <rect x="564" y="356" width="240" height="40" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="684" y="375" text-anchor="middle">采集质量工单／</text>
  <text x="684" y="391" text-anchor="middle">事实源数据质量问题清单</text>
</svg>

图 3-2　视频－文本对齐流程：三路抽帧、时钟校准与对齐校验。数据来源：招标文件第五章 3.2.3.5.2 节（b0993—b0999）；采集侧现状依甲方视频监控与物联网平台现行覆盖范围。

##### 3.4.7 输出样例

```json
{
  "record_id": "VID-ALN-2027041708812",
  "object_key": {"work_order": "WO-00417722", "weld_seam": "WS-0041-07", "equipment": "EQ-ROB-03"},
  "source_ref": {"stream": "CAM-WELD-03", "clip": "20270417T061200Z-0930s", "frame_no": 14238},
  "source_profile": {"origin": "本项目新布点", "resolution": "1920x1080", "fps": 25, "fov_note": "焊接部位斜上方 45°"},
  "frame_ts": {"device": "2027-04-17T14:17:03.560+08:00", "calibrated": "2027-04-17T14:17:01.280+08:00"},
  "clock_offset_ms": {"value": -2280, "method": "特征事件互相关（起弧 12 次）", "residual_ms": 140},
  "visual_desc": "焊接机器人焊枪位于槽帮板长焊缝中段上方，可见连续弧光与飞溅，工件由两组压紧工装固定，焊缝左侧已成形焊道表面呈鱼鳞纹；画面右下角工位牌可见。",
  "ocr_text": [
    {"text": "工位 W-07", "conf": 0.97, "bbox": [1642, 968, 1812, 1004]},
    {"text": "I=238A", "conf": 0.91, "bbox": [96, 72, 236, 108]}
  ],
  "panel_readings": {"current_A": {"value": 238, "conf": 0.91}, "voltage_V": {"value": 26.4, "conf": 0.88}},
  "event_tags": [
    {"event_id": "EVT-WLD-9931", "type": "焊接起弧", "ts": "2027-04-17T14:16:58+08:00", "source": "产线控制系统"},
    {"event_id": "EVT-MES-55120", "type": "工序开工报工", "ts": "2027-04-17T14:05:00+08:00", "source": "制造执行系统"}
  ],
  "process_stage": {"code": "WLD-MAIN-SEAM", "name": "结构件主焊缝焊接", "basis": "来自工序流转记录"},
  "align_method": "事件时点直接匹配",
  "align_confidence": 0.89,
  "align_detail": {"nearest_event_gap_s": 3.3, "source_reliability_factor": 0.95,
                   "note": "报工时点滞后 11.9 分钟，未用于对齐，仅作业务归属依据"},
  "checks": {"time_drift": "已校正", "desc_missing": "通过", "frame_mismatch": "通过（事件特征检查：弧光=有，焊枪=可见）"},
  "confidence": 0.89, "review_state": "机器通过",
  "tool_id": "video-text-align", "tool_version": "1.2.1", "config_version": "cfg-2027Q2-01",
  "model_ref": "gw-vlm/v3", "prompt_version": "p-frame-0241",
  "batch_id": "B-20270417-VID-004"
}
```

样例中 `align_detail` 记下了一件现场事实：制造执行系统的报工时点比实际起弧晚了近十二分钟，因此报工记录只用来确定这一帧属于哪个工单（业务关联），不用来做时间对齐（时间关联）。两类关联分开处理，是表 3-1 划分四类关联关系的实际用处。

##### 3.4.8 质量口径、验收与回退

表 3-8　视频－文本对齐工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 时钟偏移估计残差 | 中位数不超过 200ms | 选取有明确视觉特征的事件不少于 50 次，人工判读起始帧与估计值比对 | 残差超限的视频通道改为仅做业务关联，不输出帧级时间对齐样本 |
| 事件—帧对齐正确率 | 不低于 90% | 抽样 500 帧，由熟悉该工序的人员判断所挂事件标签是否相符 | 把对齐窗口放宽并全部降级为中置信，转人工确认 |
| 画面不匹配检出率 | 在人工构造的错配样本上不低于 85% | 注入已知错配样本 200 条，统计检出比例 | 增补事件类型的画面特征检查表条目；检查表无法覆盖的事件类型改为逐条人工核对 |
| 帧级描述可用率 | 不低于 90% 的帧产出有效描述 | 按描述长度、信息项覆盖与人工评分三项判定 | 对低可用率的采集点位出布点整改建议，附所需视场与清晰度要求 |
| 工艺阶段判定正确率 | 依据工序流转记录判定的不低于 95%，依据画面推断的不低于 75% | 分别抽样统计，两类分开计分 | 画面推断路径仅作候选，阶段字段以工序流转记录为准 |

本工具的能力上限受采集条件制约。安防既有点位的视场与清晰度不满足工艺过程观察要求，这一点在前文已述；本工具对这类输入输出的样本一律在 `source_profile` 中标明来源，并在数据卡中按来源分层统计可用率，不把两类来源混在一个指标里报告。工艺过程所需的新增布点清单由硬件选型（任务 T6）与场景验证（任务 T5）提出，本工具提出的接口要求是：每个点位须登记视场说明、分辨率、帧率与时钟同步方式。

#### 3.5 传感器时序－运维事件对齐工具链（3.2.3.5.3）

本节回应招标文件 3.2.3.5.3 节（b1000）及其三项要求。

##### 3.5.1 现场问题

甲方已建成远程运维平台，采集在役装备旋转部件的振动、温度、压力与冷却水流量等信号，并以阈值与多参数组合规则给出报警。平台具备从事后维修走向状态服务的基础，但面对一个典型难题：报警不少，故障标签很少，报警与真实故障之间缺少可核对的证据。井下装备连续运行、工况恶劣、维护窗口有限、传感器易损，加之刮板输送机被液压支架推移、被采煤机在机身上行走，三类设备运动相互耦合，在役监测信号中含有大量来自其他设备的耦合干扰。

从数据集建设的角度看，这个难题可以拆成三件事。一是把时序数据切成有业务含义的片段——报警前后、维修前后，而不是按固定长度盲切。二是把切出来的片段洗干净——重采样、补缺、去异常、归一化、校正基线漂移、同步多测点时间。三是给片段配上人能读懂的说明——统计与频域特征算出来还是数字，要让它成为训练样本，需要一段把这些数字翻译成工程语言的诊断文本。本工具的三项要求正好对应这三件事。

##### 3.5.2 功能设计之一：时间窗对齐与片段切分

工具支持传感器时序数据与告警、停机、维修工单、运维事件等进行时间窗对齐，能够按报警前后、维修前后或指定滑窗策略切分时序片段（b1001、b1002）。四种切分策略见表 3-9。

表 3-9　时序片段的四种切分策略

| 策略 | 切分规则 | 产出用途 | 参数项 |
|---|---|---|---|
| 报警前后窗 | 以报警时刻为锚点，向前取可配置时长作为前驱窗，向后取可配置时长作为后继窗；前驱窗再细分为远段与近段 | 构造「异常演化—报警」样本，用于早期征兆识别与报警有效性评估 | 前驱远段、前驱近段、后继窗时长；是否跨报警合并 |
| 维修前后窗 | 以维修工单的开工与完工时刻为边界，向前取维修前运行段，向后取维修后运行段 | 构造「故障—处置—恢复」样本，用于验证维修有效性并为故障标签提供依据 | 维修前后取样时长；是否剔除停机段 |
| 指定滑窗 | 按固定窗长与步长在连续运行段上滑动切分，可按工况分段后分别滑动 | 构造基线样本与正常态分布，用于偏离基线判据的标定 | 窗长、步长、重叠比例、按工况分段的分段依据 |
| 事件区间窗 | 以停机、换班、工况切换、三机联动状态变化等区间事件的起止时刻为边界切分 | 构造工况分段样本，用于分离耦合干扰 | 事件类型清单、区间最短时长 |

四种策略可以叠加使用，同一段时序可以同时属于多个片段。片段之间的包含与重叠关系在输出中显式记录，避免下游在划分训练集与评测集时把同一段原始数据的两个重叠片段分到两边造成泄漏。这一条在本项目尤其要紧：故障样本本就稀少，一旦泄漏，评测结果会系统性偏高，验收看到的指标无法反映上线表现。

对齐的难点在于时点可靠性差异。设备报警记录与停机记录由系统自动打点，时点较可靠；维修工单的时点由人填写，可能是事后补录；运维事件的描述则常常只说「某日处理」，没有具体时刻。工具按表 3-10 分档处理。

表 3-10　事实源时点可靠性分档与对齐处置

| 时点来源 | 可靠性 | 对齐处置 | 片段标记 |
|---|---|---|---|
| 设备报警、停机记录（系统自动打点） | 高 | 直接作为锚点 | `anchor_quality: high` |
| 服务工单的派工与到场时点 | 中 | 作为锚点，但前驱窗适当放宽 | `anchor_quality: medium` |
| 维修完工时点、备件出库时点 | 中 | 作为区间边界而非精确锚点 | `anchor_quality: medium` |
| 仅有日期无时刻的运维事件 | 低 | 不作锚点；取当日运行段整体作为候选区间，并列出同日报警供人工关联 | `anchor_quality: low`，默认进人工关联队列 |

##### 3.5.3 功能设计之二：时序预处理

工具支持时序数据重采样、缺失补齐、异常值处理、归一化、基线漂移校正和多测点时间同步（b1003、b1004）。六项处理的方法与可配置项见表 3-11。

表 3-11　时序预处理的六项处理

| 处理项 | 方法 | 配置项 | 不可用时的处置 |
|---|---|---|---|
| 重采样 | 按目标采样率做降采样或插值升采样；降采样时按通道性质选择取值方式（温度类取均值，振动类保留原始率或取包络，开关量取最后值） | 目标采样率、按通道的取值方式 | 原始采样率低于目标率且差距过大时不升采样，该通道标记为采样率不足 |
| 缺失补齐 | 短缺口按线性或前值填充，长缺口不填充而标记为空洞；填充处写入 `imputed` 标记与填充方法 | 短缺口判定阈值、填充方法、单片段允许的填充比例上限 | 填充比例超过上限的片段整体降级，不进入训练样本 |
| 异常值处理 | 分两类：量程越界与物理不可能值按规则剔除；统计离群值按稳健统计量（中位数绝对偏差）检出后标记而不直接删除 | 量程表、物理约束、离群判定倍数 | 量程表缺失的通道只做物理约束检查，并列为待补量程清单 |
| 归一化 | 按通道做标准化或按量程做极值归一化；归一化参数按设备型号与测点类型分组统计并固化为版本 | 归一化方式、分组维度、参数版本 | 分组内样本不足时不单独统计，沿用同类型测点的组参数并标明 |
| 基线漂移校正 | 对温度类与缓变量用低频趋势分离，对振动类用去均值与高通滤波；校正量作为独立字段保留，不覆盖原值 | 趋势估计窗长、滤波截止频率 | 漂移量超过设定上限时判为测点失效征兆，出测点可信度工单 |
| 多测点时间同步 | 以统一时间基准为准，按各通道的时钟偏移估计做对齐；偏移估计来自采集侧对时记录，缺失时用通道间互相关估计 | 对齐容差、互相关估计窗长 | 偏移无法估计且超出容差的通道不参与跨测点特征计算 |

六项处理有一条共同约定：原始值一律保留，处理结果以新字段写出，处理动作与参数记入血缘。这样做占用更多存储，换来的是任何一条特征值都能回溯到它是在哪一套预处理参数下算出来的。本项目的时序数据存在缺失与噪声，这是甲方已确认的数据质量状况；在这种输入条件下，不可回溯的预处理会让下游无法判断一个异常结论到底来自设备还是来自处理步骤。

##### 3.5.4 功能设计之三：特征抽取与诊断文本生成

工具支持对时序片段进行特征抽取，计算统计指标、趋势特征、峰值、频域特征和时频域特征，并生成对应诊断文本说明（b1005、b1006）。特征清单见表 3-12。

表 3-12　时序片段的五类特征

| 特征族 | 具体特征 | 适用通道 | 在本项目中的用处 |
|---|---|---|---|
| 统计指标 | 均值、中位数、标准差、变异系数、极差、均方根、偏度、峰度、分位数（P05/P50/P95/P99）、有效值 | 全部通道 | 构造同工况正常基线；偏离基线作为异常判据，替代固定阈值 |
| 趋势特征 | 线性斜率及其置信区间、分段斜率、单调段长度、变点位置与变点前后均值差、与前一周期同工况的差值 | 温度、压力、流量、振动有效值 | 识别缓慢劣化（轴承磨损、冷却能力下降）；为早期征兆样本提供标签依据 |
| 峰值特征 | 峰值、峰值因子、峰峰值、脉冲因子、裕度因子、超限次数与累计超限时长、峰值出现时刻相对锚点的位置 | 振动、电流、压力 | 识别冲击类异常（齿轮断齿、异物卡阻）；峰值相对报警时刻的位置用于判断报警及时性 |
| 频域特征 | 频谱主峰频率与幅值、各阶特征频率处的幅值与边频带、倍频比、谱重心、谱熵、频带能量占比 | 振动、电流 | 旋转部件故障的机理性判据；按设备转速与传动比计算特征频率 |
| 时频域特征 | 短时傅里叶变换与小波包的频带能量随时间分布、包络谱、瞬时频率、调制特征 | 振动 | 工况非稳态与变转速条件下的异常识别；三机联动耦合干扰的分离线索 |

频域与时频域特征的计算有一项前置条件：需要转速信息与轴上角位置基准，否则特征频率无法确定，边频带也无从判读。甲方当前的状况是部件级振动测点与轴上角位置基准缺失。本工具在基准缺失时的做法是：按额定转速与传动比计算理论特征频率并标记为「按额定值估算」，同时在频谱上搜索转频候选并输出其与额定值的偏差；两者差异超过门限时该片段的频域特征降级，不作为故障标签的依据。测点与基准的补齐需求由本工具向场景验证（任务 T5）与硬件选型（任务 T6）提出。

诊断文本说明的生成不是把特征值念一遍。生成规则分三层：第一层是事实层，按模板把关键特征值、与基线的偏离幅度、超限情况写成陈述句，这一层由程序生成，数值与结论可复算；第二层是形态层，描述曲线与频谱呈现的形态（持续上升、阶跃、周期性冲击、边频带出现），形态判定由规则与模型共同给出，附判定依据；第三层是关联层，列出同一时间窗内其他通道的同步变化与相关事件，不给出因果结论。诊断文本把三层按固定顺序拼成一段，并在末尾注明所依据的基线版本与特征配置版本。

分三层而不是直接让模型写一段，是因为这段文本的下游用途是作为训练样本与评测参考。如果事实层的数值由模型组织语言产生，数值出错就无法检出；分层之后，事实层可以逐项核对，形态层与关联层的描述即便有偏差也不会污染数值。

##### 3.5.5 输入输出接口

表 3-12A　传感器时序－运维事件对齐工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 测点时序 | 振动、温度、压力、流量等通道；测点编号集合与取数时间窗 | 远程运维平台／时序库只读；大批量结果按流式取回 |
| 输入 | 运维事件 | 报警日志、停机记录、维修工单、炉次记录 | 事实源只读；时点可靠性按表 3-10 分档 |
| 输入 | 切分与预处理配置 | 四种切分策略（表 3-9）、六项预处理（表 3-11）、特征族开关（表 3-12） | 任务参数；缺省按测点类型预置 |
| 输入 | 转速／角位置基准 | 测点对应的转速与轴上角位置（若有） | 缺失时频域特征降级标记，不静默按额定值充当金标准 |
| 输出 | 时序片段与特征 | 片段边界、重叠关系、五类特征、降级项清单 | 片段与特征分文件／流式输出 |
| 输出 | 事件关联与诊断文本 | `event_links`、三层诊断文本（事实／形态／关联） | 无结论性记录时不臆造关联层结论 |
| 输出 | 分流与回填 | 测点可信度工单、基准补齐需求、维修事实回填写回入口 | 工单推送；回填后按工单反查片段写标签 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.3（表 8-6、表 8-7）。

##### 3.5.6 处理流程

#### 图 3-3　传感器时序－运维事件对齐流程：切分、预处理、特征与诊断文本

<svg viewBox="0 0 820 450" xmlns="http://www.w3.org/2000/svg" font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="12.5">
  <defs>
    <marker id="t2b-a4" 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="8" y="8" width="804" height="434" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="24" y="24" width="150" height="38" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="99" y="48" text-anchor="middle">测点时序数据</text>
  <rect x="24" y="70" width="150" height="38" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="99" y="94" text-anchor="middle">报警与停机记录</text>
  <rect x="24" y="116" width="150" height="38" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="99" y="140" text-anchor="middle">服务工单与备件</text>

  <path fill="none" d="M174 43 H236 V84" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>
  <path fill="none" d="M174 89 H236" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>
  <path fill="none" d="M174 135 H236 V96" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>

  <rect x="236" y="62" width="170" height="54" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="321" y="82" text-anchor="middle">时点可靠性分档</text>
  <text x="321" y="100" text-anchor="middle" font-size="11">高／中／低（表 3-10）</text>
  <text x="321" y="113" text-anchor="middle" font-size="11">低档不作锚点</text>

  <path fill="none" d="M406 89 H470" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>
  <text x="410" y="83" font-size="11">锚点＋区间</text>

  <rect x="470" y="40" width="330" height="26" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="635" y="58" text-anchor="middle">① 报警前后窗（前驱远段／近段／后继）</text>
  <rect x="470" y="72" width="330" height="26" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="635" y="90" text-anchor="middle">② 维修前后窗　③ 指定滑窗　④ 事件区间窗</text>
  <rect x="470" y="104" width="330" height="26" rx="4" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="635" y="122" text-anchor="middle">片段重叠与包含关系显式记录（防集合泄漏）</text>

  <path fill="none" d="M635 130 V158" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>
  <text x="645" y="152" font-size="11">片段集</text>

  <rect x="24" y="158" width="776" height="48" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="412" y="177" text-anchor="middle" font-weight="bold">预处理六项：重采样｜缺失补齐｜异常值｜归一化｜基线漂移校正｜多测点同步</text>
  <text x="412" y="196" text-anchor="middle" font-size="11">原始值保留，处理结果写新字段，动作与参数记入血缘</text>

  <path fill="none" d="M412 206 V234" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>

  <rect x="24" y="234" width="776" height="48" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="412" y="253" text-anchor="middle" font-weight="bold">特征抽取五族：统计｜趋势｜峰值｜频域｜时频域</text>
  <text x="412" y="272" text-anchor="middle" font-size="11">频域需转速与角位置基准；基准缺失时按额定值估算并降级标记</text>

  <path fill="none" d="M412 282 V310" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>

  <rect x="24" y="310" width="776" height="62" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="412" y="329" text-anchor="middle" font-weight="bold">诊断文本三层生成</text>
  <text x="200" y="350" text-anchor="middle" font-size="11">事实层：程序生成</text>
  <text x="200" y="364" text-anchor="middle" font-size="11">数值可复算</text>
  <text x="412" y="350" text-anchor="middle" font-size="11">形态层：规则＋模型</text>
  <text x="412" y="364" text-anchor="middle" font-size="11">附判定依据</text>
  <text x="630" y="350" text-anchor="middle" font-size="11">关联层：同窗其他通道与事件</text>
  <text x="630" y="364" text-anchor="middle" font-size="11">不给因果结论</text>

  <path fill="none" d="M200 372 V400" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>
  <path fill="none" d="M630 372 V400" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a4)"/>

  <rect x="24" y="400" width="380" height="36" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="214" y="423" text-anchor="middle">时序—事件对齐样本（带特征与诊断文本）</text>
  <rect x="420" y="400" width="380" height="36" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="610" y="423" text-anchor="middle">测点可信度工单／基准补齐需求清单</text>
</svg>

图 3-3　传感器时序－运维事件对齐流程：切分、预处理、特征与诊断文本。数据来源：招标文件第五章 3.2.3.5.3 节（b1000—b1006）；测点与角位置基准现状依甲方远程运维平台现行条件。

##### 3.5.7 输出样例

```json
{
  "record_id": "TSS-ALN-2027052200311",
  "object_key": {"equipment": "EQ-AFC-K2207", "component": "CP-RED-01", "measure_point": "MP-RED-01-V-H",
                 "service_order": "SO-2027-01188"},
  "segment": {
    "strategy": "报警前后窗",
    "anchor": {"event_id": "ALM-2027-77214", "type": "减速器振动超限报警",
               "ts": "2027-05-20T03:42:11+08:00", "anchor_quality": "high"},
    "window": {"pre_far": "-72h ~ -8h", "pre_near": "-8h ~ 0h", "post": "0h ~ +24h"},
    "overlap_with": ["TSS-SEG-2027052200298（指定滑窗，重叠 6.2h）"]
  },
  "preprocess": {
    "resample": {"target_hz": 1, "channel_rule": "振动有效值取包络", "applied": true},
    "impute": {"gaps": 3, "imputed_ratio": 0.021, "method": "短缺口前值填充", "within_limit": true},
    "outlier": {"range_violation_removed": 2, "statistical_flagged": 14, "method": "中位数绝对偏差 5 倍"},
    "normalize": {"mode": "按设备型号分组标准化", "param_version": "nrm-K22-v3"},
    "detrend": {"channel": "temp_bearing", "method": "低频趋势分离", "removed_slope_c_per_day": 0.21},
    "sync": {"offset_ms": {"MP-RED-01-V-H": 0, "MP-RED-01-T": 340}, "tolerance_ms": 500, "within_tolerance": true}
  },
  "features": {
    "stat": {"rms_mm_s": 7.84, "p95_mm_s": 11.2, "kurtosis": 4.31, "cv": 0.28},
    "trend": {"slope_mm_s_per_day": 0.46, "slope_ci95": [0.31, 0.62], "changepoint_ts": "2027-05-18T21:10:00+08:00",
              "pre_post_mean_diff_mm_s": 2.37},
    "peak": {"peak_mm_s": 23.6, "crest_factor": 3.01, "over_limit_count": 41, "over_limit_minutes": 68,
             "peak_offset_to_anchor_h": -5.3},
    "freq": {"rotating_freq_hz": {"value": 24.6, "basis": "谱峰搜索", "rated_value": 24.9, "deviation_pct": 1.2},
             "bpfo_hz": 112.4, "bpfo_amp_ratio": 2.8, "sideband_present": true,
             "quality": "可用（转频偏差在门限内）"},
    "timefreq": {"band_energy_shift": "500–1500Hz 频带能量在报警前 6h 起上升 2.4 倍",
                 "envelope_peak_hz": 112.3}
  },
  "baseline_ref": {"version": "bl-K22-RED-2027Q1", "condition": "同工况：三机联动正常推移，负载 60–80%"},
  "diagnosis_text": {
    "fact": "该测点振动有效值 7.84mm/s，相对同工况基线（4.10mm/s）偏高 91%；P95 达 11.2mm/s；报警前 24 小时内超限 41 次、累计 68 分钟。轴承温度趋势已扣除 0.21℃/日的基线漂移。",
    "morphology": "振动有效值自 5 月 18 日 21 时起呈持续上升，变点前后均值差 2.37mm/s；频谱在滚动体外圈通过频率 112.4Hz 处出现主峰且幅值比达 2.8，伴有边频带；500–1500Hz 频带能量在报警前 6 小时起上升约 2.4 倍。形态判定依据：规则（特征频率幅值比超门限）＋模型（冲击类形态，置信度 0.83）。",
    "relation": "同时间窗内，减速器轴承温度上升 6.2℃，冷却水流量无明显变化；同日另有 2 条采煤机行走相关报警，工况分段显示其中 1 条与本测点时间窗重叠。",
    "basis": {"baseline_version": "bl-K22-RED-2027Q1", "feature_config": "cfg-ts-2027Q2-02"}
  },
  "label_candidates": [
    {"label": "减速器输出轴轴承外圈点蚀（候选）", "evidence_level": "二级：机理特征＋趋势一致",
     "source": "工具建议，待维修事实回填确认"}
  ],
  "confidence": 0.81, "review_state": "未复核",
  "tool_id": "ts-event-align", "tool_version": "1.3.2", "config_version": "cfg-ts-2027Q2-02",
  "batch_id": "B-20270522-TSS-009"
}
```

`label_candidates` 一项说明本工具与故障标签的关系：工具给出候选标签与证据等级，标签成立与否要等维修事实回填。甲方当前的维修事实没有结构化记录，历史数据也没有事件级标签，故障样本须靠回填与回溯配对形成。本工具因此配套一项回填接口：当服务工单的处置结果录入后，按工单上的设备、部件与时间区间反查已生成的片段，把处置结果作为标签写回片段并更新证据等级。回填接口的填报入口由数据加工生产环节（任务 T1B）在既有业务流程中增设，由系统预填、经手人确认。

##### 3.5.8 质量口径、验收与回退

表 3-13　传感器时序－运维事件对齐工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 片段切分正确率 | 锚点可靠性为高档的片段，边界偏差不超过一个采样周期 | 抽样 200 个片段核对锚点与边界 | 低档锚点片段全部转人工关联，不自动切分 |
| 预处理可回溯性 | 逐步接近全部处理动作可复现 | 随机抽取 50 个片段，按记录的参数版本重跑并比对结果 | 定位不可复现的处理项并固化其参数，暂停该处理项的自动执行 |
| 填充比例合规率 | 单片段填充比例不超过配置上限的片段占比不低于 95% | 批次统计 | 超限片段降级不入训练集，并对相应通道出采集连续性工单 |
| 频域特征可用率 | 有转速基准的测点不低于 90%；无基准按额定估算的，转频偏差在门限内的比例不低于 70% | 两类分开统计 | 偏差超门限的片段频域特征标记不可用，仅保留统计与趋势特征 |
| 诊断文本事实层准确率 | 数值与所引基线逐步接近完全一致 | 抽样 200 条逐项核算 | 事实层生成改为纯程序填充模板，不经模型组织语言 |
| 故障标签配对覆盖度 | 按季度统计已回填处置结果的片段占全部报警片段的比例，首期目标不低于 30%，随回填机制运行逐步提高 | 按批次统计并在数据卡中披露 | 覆盖度不足时，评测集中故障类样本按实际数量披露，不以合成样本补足评测集 |

「故障标签配对覆盖度」一行约定：故障样本稀少属客观条件。训练集可用合成与增强扩充；评测金标准集不用合成填充，各类实际样本数在数据卡如实披露。部分故障类型评测置信区间可能较宽，验收指标对应真实覆盖。相关口径与数据集质量评测方案（任务 S3）保持一致。

### 四、智能标注类工具链（3.2.3.6）

#### 4.1 这一类工具要解决的现场问题

本类工具回应招标文件 3.2.3.6 节（b1007）。该节要求提供面向文本、图像、图纸、工单和多模态样本的自动化与半自动化标注能力，用于降低人工标注成本、提高标注一致性、增强标注可复核性并形成稳定的数据标注生产流程，覆盖大模型预标注、主动学习、本体规则标注、一致性校验、复核裁决和标注质量报告等环节（b1008）。

标注决定指令微调、偏好与基准集可用性。四大数据集规模为：预训练 615 亿 Token、指令微调 89 万条、强化学习偏好 6.6 万组、基准测试 0.95 万条。指令微调与偏好数据需大量人工判断；基准集是验收与模型迭代的度量尺，标错即尺子偏移。纯人工无法承受本项目量级；全自动则一致性与可复核性不足，模型偏差会进入数据集并在训练中放大。

所以这一类工具的定位是人机协同：模型承担第一遍的量，人承担判断与裁决，工具负责把二者之间的交接做成可计量、可审计的流程。四个工具各管一段——预标注管量，主动学习管人力投向，本体规则管逻辑自洽，一致性校验管质量可测。

另有一条现场约束决定了标注规范的写法：各场景的标注依据必须统一到各场景的判据与分级口径上。热处理有三级判定，焊接有十一类缺陷与检出手段的对应，健康诊断有故障名录与四档证据分级。如果标注口径与判据口径分别演进，标出来的样本与业务上实际使用的判据就会失配，训练出的模型在现场不可用。本类工具因此把判据作为外部输入（领域本体与标注规范），不在工具内硬编码标签体系。

#### 4.2 输入输出全景与人机协同方式

招标文件列明了本类工具应能处理的输入与应当生成的产出（b1009）。全景对照见表 4-1。

表 4-1　智能标注类工具链的输入与产出对照

| 招标文件所列输入 | 本项目中的具体来源 | 招标文件所列产出 | 由哪个工具生成 |
|---|---|---|---|
| 未标注文本 | 工单描述、检验结论、不合格品票、改造方案、制度与标准文本 | 预标注结果 | 大模型预标注（3.2.3.6.1） |
| 未标注图像 | 交检拍照、新布点采集的工艺过程图像、关键帧 | 人工标注结果 | 四个工具共同支撑的标注工作台 |
| 未标注图纸 | 原生 CAD 图纸与扫描件 | 候选标签 | 本体驱动规则标注（3.2.3.6.3）、大模型预标注 |
| 未标注工单 | 服务工单、生产工单、派工与备件出库记录 | 约束校验结果 | 本体驱动规则标注 |
| 多模态样本 | 第三节产出的对齐样本（图纸结构化记录、帧级对齐记录、时序片段） | 一致性指标 | 一致性校验标注（3.2.3.6.4） |
| 领域本体 | 设备、部件、故障、工艺、材料、质量指标、安全规则七域本体 | 复核任务 | 一致性校验标注 |
| 术语词典 | 企业术语与别名表、行业标准术语 | 专家裁决记录 | 一致性校验标注 |
| 标注规范 | 本章交付的分任务标注规范文本 | 标注质量报告 | 一致性校验标注（报告模板见 4.7） |
| 未标注样本池 | 按业务域与数据集分库组织的待标注池 | —— | 主动学习标注（3.2.3.6.2）从池中采样 |

人机协同的方式按四档划分，见表 4-2。划分依据是任务的客观性程度与出错代价。

表 4-2　四档人机协同方式

| 档位 | 适用任务 | 机器做什么 | 人做什么 | 典型任务 |
|---|---|---|---|---|
| 机器主导、按比例抽检 | 客观性强、标签可枚举、出错代价低 | 批量预标注并自评置信度 | 按比例抽检，发现系统性错误时整批退回 | 文本语种与类型判别、工单字段抽取、术语识别 |
| 机器预标、人工逐条确认 | 客观性较强但存在边界模糊 | 给出标签与证据片段，标出可疑处 | 逐条确认或修改，只改不重做 | 实体抽取、关系抽取、需求分类、缺陷描述归类 |
| 人机交叉、多方比对 | 主观判断成分大、一致性要求高 | 参与一路标注，并计算一致性指标 | 两名及以上标注人员独立标注 | 偏好数据的优劣判断、答案质量评分、工艺可借用性判断 |
| 人工主导、机器辅助检索 | 需要工程经验，样本稀缺且价值高 | 检索相似历史样本、提供上下文与计算结果 | 独立做出判断并写明依据 | 基准测试集的金标准标注、故障标签确认、安全约束判定 |

四档的分配不是一次定死的。随着某类任务的一致率与抽检通过率稳定提高，可以从低档位上移到高档位，节省的人力转投到仍处低档位的任务上。档位调整以季度为周期，依据是该任务类型近三批的实测一致率与抽检通过率，调整记录入库。

#### 图 4-1　智能标注类四个工具的协同关系与人机交接点

<svg viewBox="0 0 820 440" xmlns="http://www.w3.org/2000/svg" font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="12.5">
  <defs>
    <marker id="t2b-a5" 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="8" y="8" width="804" height="424" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="24" y="24" width="150" height="56" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="99" y="44" text-anchor="middle">未标注样本池</text>
  <text x="99" y="62" text-anchor="middle" font-size="11">文本·图像·图纸</text>
  <text x="99" y="76" text-anchor="middle" font-size="11">工单·多模态样本</text>

  <rect x="24" y="96" width="150" height="56" rx="5" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="99" y="116" text-anchor="middle">知识侧输入</text>
  
  

  <path fill="none" d="M174 52 H246" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a5)"/>
  <text x="178" y="46" font-size="11">采样批次</text>
  <rect x="246" y="24" width="170" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="331" y="44" text-anchor="middle" font-weight="bold">3.2.3.6.2 主动学习</text>
  <text x="331" y="62" text-anchor="middle" font-size="11">按不确定性·分歧·长尾</text>
  <text x="331" y="76" text-anchor="middle" font-size="11">决定人力投向</text>

  <path fill="none" d="M416 52 H490" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a5)"/>
  <rect x="490" y="24" width="170" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="575" y="44" text-anchor="middle" font-weight="bold">3.2.3.6.1 大模型预标注</text>
  <text x="575" y="62" text-anchor="middle" font-size="11">标签·解释·证据片段</text>
  <text x="575" y="76" text-anchor="middle" font-size="11">置信度·模型与提示词版本</text>

  <path fill="none" d="M174 124 H246 V190" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-a5)"/>
  <rect x="246" y="190" width="170" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="331" y="210" text-anchor="middle" font-weight="bold">3.2.3.6.3 本体规则标注</text>
  <text x="331" y="228" text-anchor="middle" font-size="11">候选标签生成＋</text>
  <text x="331" y="242" text-anchor="middle" font-size="11">约束校验剔除冲突</text>

  <path fill="none" d="M575 80 V190 H416" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a5)"/>
  <text x="430" y="184" font-size="11">预标注结果送约束校验</text>

  <path fill="none" d="M331 246 V290" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a5)"/>
  <text x="341" y="272" font-size="11">通过约束的候选标签</text>

  <rect x="140" y="290" width="384" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="332" y="310" text-anchor="middle" font-weight="bold">3.2.3.6.4 一致性校验与复核裁决</text>
  <text x="332" y="328" text-anchor="middle" font-size="11">多人·多模型·人机交叉｜一致率与冲突率｜裁决留痕</text>
  <text x="332" y="342" text-anchor="middle" font-size="11">新术语发现 → 本体回流</text>

  <path fill="none" d="M140 318 H96 V124" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-a5)"/>
  <text x="40" y="200" font-size="11">本体</text>
  <text x="40" y="214" font-size="11">回流</text>

  <rect x="564" y="190" width="236" height="56" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="682" y="210" text-anchor="middle">人工标注与复核工作台</text>
  <text x="682" y="228" text-anchor="middle" font-size="11">按表 4-2 四档协同方式</text>
  <text x="682" y="242" text-anchor="middle" font-size="11">只确认或修改，不重做</text>
  <path fill="none" d="M524 318 H682 V246" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a5)"/>
  <text x="540" y="312" font-size="11">复核任务派发</text>

  <path fill="none" d="M682 190 V130 H660" stroke="#334155" stroke-width="1.2" stroke-dasharray="3 3" marker-end="url(#t2b-a5)"/>
  <rect x="552.0" y="84.0" width="118.0" height="19.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="556" y="98" font-size="11">标注结果回流增量训练</text>
  <rect x="490" y="104" width="170" height="40" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <rect x="513.6" y="126.5" width="122.9" height="19.0" fill="#f8fafc" stroke="none" data-halo="1"/><text x="575" y="140.5" text-anchor="middle" font-size="11">模型增量训练 → 再采样</text>
  <path fill="none" d="M490 124 H416 V80" stroke="#64748b" stroke-width="1.2" stroke-dasharray="3 3" marker-end="url(#t2b-a5)"/>

  <rect x="24" y="364" width="776" height="54" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="38" y="384" font-weight="bold">责任边界：</text>
  <text x="116" y="384">本章交付四个工具、标注规范与一致性判定口径；标注作业的产能组织与排班见数据加工生产二（T1B）；</text>
  <text x="38" y="404">标签体系与判据由领域本体承载并随业务更新，不在工具内硬编码；本体建设见数据治理体系（T4A／T4B）。</text>

  <rect x="45.5" y="120.0" width="107.0" height="19.0" fill="#f8fafc" stroke="none" data-halo="1"/><text x="99" y="134" text-anchor="middle" font-size="11">领域本体·术语词典</text>

  <rect x="73.0" y="134.0" width="52.0" height="19.0" fill="#f8fafc" stroke="none" data-halo="1"/><text x="99" y="148" text-anchor="middle" font-size="11">标注规范</text>
</svg>

图 4-1　智能标注类四个工具的协同关系与人机交接点。数据来源：招标文件第五章 3.2.3.6 节（b1007—b1039）工具划分与输入产出清单。

#### 4.3 大模型预标注工具链（3.2.3.6.1）

本节回应招标文件 3.2.3.6.1 节（b1010）及其五项要求。

##### 4.3.1 多任务预标注模板管理

工具支持多任务预标注模板管理，针对实体抽取、关系抽取、需求分类、摘要生成、问答生成、图文标注、缺陷描述等任务配置不同提示词和输出 Schema（b1011、b1012、b1013）。七类任务的模板要点见表 4-3。

表 4-3　七类预标注任务的模板配置要点

| 任务类型 | 本项目中的具体用法 | 输出 Schema 要点 | 提示词的关键约束 |
|---|---|---|---|
| 实体抽取 | 从工单、检验结论、改造方案中抽取设备、部件、故障现象、材料牌号、工艺参数、规格尺寸 | 实体类型（取自本体类目）、文本跨度、归一化值、本体节点编号、置信度、证据片段 | 实体类型只能取本体已定义的类目；抽不到时返回空数组而不是编造；归一化值须给出所依据的词典条目 |
| 关系抽取 | 抽取「部件—所属设备」、「故障现象—可能原因」、「工艺要求—作用表面」、「物料—替代物料」等关系 | 主体与客体的实体编号、关系类型、关系方向、置信度、证据片段 | 关系类型与方向须符合本体定义；跨句关系须给出两处证据 |
| 需求分类 | 对矿方来文、商机描述、技术交流记录做工作面类型、产量区间、地质条件、接口约束分类 | 分类标签（可多标签）、每个标签的置信度、未覆盖情形标记 | 标签体系封闭，出现无法归类的情形时置「待扩充分类」而不是强行归入最近类 |
| 摘要生成 | 为长篇技术文件、标准条文、复盘总结生成摘要，用于检索与长上下文样本构造 | 摘要文本、覆盖的原文章节编号、关键信息项清单 | 摘要中出现的数值与结论必须在原文中有对应，并给出位置 |
| 问答生成 | 从制度、标准、工艺规程、历史工单生成问答对，用于指令微调与评测样本 | 问题、答案、依据原文片段与位置、难度等级、任务类型 | 答案只能基于给定原文；原文不足以回答时生成「依据不足」类样本 |
| 图文标注 | 为关键帧、交检拍照、图纸局部视图生成描述与标签 | 图像标识、描述文本、标签集、可见对象清单、画面坐标框 | 只描述可见内容，不写推断性结论；缺陷判定不由本任务给出 |
| 缺陷描述 | 把自由文本的缺陷描述归一到企业缺陷分类与检出手段对应关系上 | 缺陷类别、位置描述、尺寸或程度、检出手段、处置建议归类 | 缺陷类别取自企业已确认的分类表；检出手段须与缺陷类别的对应关系相符 |

模板的管理方式有三条约定。一是模板与输出 Schema 成对版本化，提示词改了 Schema 没改、或反过来，都会在发布前的一致性检查中被拦住。二是每个模板附一组回归样例，模板修改后先在回归样例上跑一遍，比对新旧输出差异，差异超过门限时需要人工确认后才能发布。三是模板按业务域与数据集分别维护，不做跨域通用模板——矿山装备制造的实体类型与通用领域差别很大，通用模板的产出需要大量返工。

##### 4.3.2 批量生成与输出字段

工具支持调用大模型批量生成预标注结果，输出结果包含标签、解释、证据片段、置信度、模型版本和提示词版本等信息（b1014、b1015）。所采用的模型为当期能力评测领先的通用大模型，经统一网关接入，可替换、可评测、可随代升级；网关为每个接入模型分配登记名与版本号，写入输出记录的 `model_ref` 字段。

六类输出信息各有其用，分述如下。标签是结果本身。解释是模型给出的判断理由，它的价值不在于准确，而在于让复核人员快速判断这条标签该不该信——理由写得离题，标签基本不用再看。证据片段是标签在原文中的依据位置，复核时据此定位，训练时据此做证据对齐。置信度用于分档处置。模型版本与提示词版本用于回溯：同一批样本在模型升级后重跑，差异可以归因到模型变更还是提示词变更。

置信度的取得方式需要说明，因为直接让模型自报置信度并不可靠。本工具取三路信号合成：一是模型输出的对数概率在标签对应位置上的取值；二是同一样本在提示词轻微扰动下（如调整示例顺序、改写指令措辞）的多次采样一致性；三是规则校验与本体约束校验的通过情况。三路信号按配置权重合成为 0 到 1 的分值，权重按任务类型分别标定。对输出为长文本的任务（摘要、问答生成），第一路信号改为对关键信息项的覆盖检查。

##### 4.3.3 结构校验与阈值控制

工具支持输出 Schema 校验、字段完整性校验和置信度阈值控制，高置信样本可进入抽检流程，低置信样本自动进入人工标注队列（b1016、b1017）。校验与分流的处理顺序见表 4-4，顺序本身是设计的一部分——先做成本低的校验，再做成本高的。

表 4-4　预标注结果的校验与分流顺序

| 序 | 处理 | 判定内容 | 不通过时的动作 |
|---|---|---|---|
| 1 | Schema 校验 | 输出是否为合法结构、字段类型是否匹配、枚举值是否在定义范围内 | 自动重试（提示词中追加格式纠正说明），重试上限内仍失败则记为格式失败并入人工队列 |
| 2 | 字段完整性校验 | 必填字段是否齐全、证据片段是否非空且能在原文中定位、置信度是否在取值范围内 | 证据片段无法定位的，标签降为候选并标记「证据缺失」；必填字段缺失的入人工队列 |
| 3 | 取值合理性校验 | 数值是否在量程与物理约束内、文本跨度是否落在原文范围内、归一化值是否在词典中 | 越界值剔除并记录；词典未命中的归一化值列入待补词条 |
| 4 | 本体约束校验 | 交由本体驱动规则标注工具（见 4.5）做父子类、互斥、关系方向等校验 | 冲突标注按 4.5 的口径剔除或降级 |
| 5 | 置信度阈值分档 | 按表 2-2 的三档口径分流 | 高置信入候选集并按比例抽检；中置信入复核队列；低置信入人工标注队列 |

抽检比例的设定有一条规则：高置信样本的抽检比例首期取 5%，连续三批抽检通过率不低于门限后可降至 3%；任何一批抽检发现系统性错误（同一错误模式占比超过门限），该批整批退回重标，并把错误模式写入模板的回归样例。这条规则的作用是让抽检不只是统计，而是能触发模板改进。

##### 4.3.4 批量调度与运行治理

工具支持批量任务调度、失败重试、并发控制、成本统计和模型调用日志记录（b1018、b1019）。五项运行治理能力的要点见表 4-5。

表 4-5　预标注的批量调度与运行治理

| 能力 | 做法 | 关键参数 |
|---|---|---|
| 批量任务调度 | 以批次为调度单位，批次内按样本分片并行；支持按数据集、业务域、任务类型、优先级组织队列；支持定时与手动触发 | 批次大小、分片大小、队列优先级、调度窗口 |
| 失败重试 | 区分可重试失败（限流、超时、瞬时错误、格式失败）与不可重试失败（输入缺失、权限不足）；可重试失败按指数退避重试，重试次数与间隔可配；不可重试失败直接记录并跳过 | 重试上限、初始间隔、退避倍数、单批次允许失败率 |
| 并发控制 | 按网关侧的配额与速率限制设定并发上限；支持按时段分配配额，把大批量任务安排在业务低谷时段 | 全局并发上限、按任务类型的并发配额、分时策略 |
| 成本统计 | 逐次记录输入与输出 Token 数、调用次数、重试次数，按批次、任务类型、数据集、业务域四个维度汇总；按单位样本成本给出趋势 | 统计维度、汇总周期、单位成本告警门限 |
| 模型调用日志 | 记录调用时刻、模型登记名与版本、提示词版本、输入摘要与输入指纹、输出指纹、耗时、返回状态、Token 用量；日志按配置周期归档，保留期与审计要求一致 | 日志字段、保留期、脱敏规则 |

成本统计这一项在本项目中有实际约束作用。预训练数据集 615 亿 Token 的规模决定了大批量处理的调用量不小，若不按单位样本成本做趋势监控，很容易在某个任务类型上出现成本异常而不被发现。工具按批次给出单位样本成本，超过告警门限时暂停该队列并提示检查——常见原因是提示词中的示例过长、或重试率异常升高。

日志中的输入摘要需要脱敏。工单与检验记录中可能包含人员姓名与客户信息，日志按配置的脱敏规则处理后再落盘；完整输入保留在原始区并按权限访问，不进调用日志。脱敏规则的制定依据 GB/T 43697—2024《数据安全技术 数据分类分级规则》与 GB/T 38667—2020《信息技术 大数据 数据分类指南》与本项目数据分级办法，具体条款见安全方案（任务 T10）。

##### 4.3.5 绑定与可追溯

工具支持预标注结果与原始样本、提示词版本和模型版本绑定，保障可追溯（b1020、b1021）。绑定关系由表 2-1 的公共字段承载：`source_ref` 指向原始样本及其在文件中的位置，`prompt_version` 与 `model_ref` 指向本次生成所用的提示词与模型，`config_version` 指向模板与阈值配置的版本，`batch_id` 指向所属批次。

绑定要能用，关键在于被指向的对象不可变。本工具的做法是：提示词模板与输出 Schema 一经发布即只读，修改必产生新版本号；原始样本以内容指纹标识，文件被替换时指纹变化，旧指纹仍可在归档区检索到；模型版本由网关侧登记，网关侧模型下线后其登记记录保留。配合 2.4 的回放能力，任何一条预标注结果都可以回答三个问题：它是从哪条原文的哪个位置来的、是在哪一套提示词与模型下产生的、重跑一遍是否还是这个结果。

##### 4.3.6 输入输出接口

表 4-5A　大模型预标注工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 待标注样本池 | 样本标识集合或池引用加筛选条件 | 从标注区／原始区只读；含不可出域字段时由网关拦截 |
| 输入 | 模板与标签体系 | 任务类型、提示词模板版本、输出 Schema、标签体系版本 | 成对版本化只读发布；入参传版本号不传模板全文 |
| 输入 | 模型与阈值 | 统一网关登记的模型标识、高低置信阈值、是否要求证据片段 | 不接受品牌／型号入参；缺省取该任务类型当前择优项 |
| 输出 | 预标注结果 | 标签、解释、证据片段、置信度、`tier` 三档、模型与提示词版本 | 三档结果均须返回，不只回高置信 |
| 输出 | 校验失败与批次统计 | Schema／完整性／本体校验失败项、分流计数、成本与调用日志摘要 | 失败项入人工队列；日志按脱敏规则落盘 |
| 输出 | 绑定关系 | `source_ref`、`prompt_version`、`model_ref`、`config_version`、`batch_id` | 附表 2-1 公共字段写入 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.4（表 8-8、表 8-9）。

##### 4.3.7 处理流程

#### 图 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="12.5">
  <defs>
    <marker id="t2b-a6" 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="8" y="8" width="804" height="384" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="24" y="24" width="140" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="94" y="43" text-anchor="middle">采样批次</text>
  <text x="94" y="60" text-anchor="middle" font-size="11">来自主动学习</text>

  <rect x="24" y="80" width="140" height="44" rx="5" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="94" y="99" text-anchor="middle">模板与 Schema</text>
  <text x="94" y="116" text-anchor="middle" font-size="11">成对版本化·只读</text>

  <path fill="none" d="M164 46 H226" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <path fill="none" d="M164 102 H196 V60 H226" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-a6)"/>

  <rect x="226" y="24" width="150" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="301" y="44" text-anchor="middle">批次编排与分片</text>
  <text x="301" y="62" text-anchor="middle" font-size="11">并发配额·分时调度</text>
  <text x="301" y="76" text-anchor="middle" font-size="11">失败退避重试</text>

  <path fill="none" d="M376 52 H442" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <text x="380" y="46" font-size="11">请求</text>

  <rect x="442" y="24" width="160" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="522" y="44" text-anchor="middle">统一模型网关</text>
  <text x="522" y="62" text-anchor="middle" font-size="11">登记名＋版本号</text>
  <text x="522" y="76" text-anchor="middle" font-size="11">可替换·可评测·可升级</text>

  <path fill="none" d="M602 52 H668" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <rect x="668" y="24" width="132" height="56" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="734" y="44" text-anchor="middle" font-size="11">调用日志＋</text>
  <text x="734" y="60" text-anchor="middle" font-size="11">Token 与成本统计</text>
  <text x="734" y="76" text-anchor="middle" font-size="11">（脱敏后落盘）</text>

  <path fill="none" d="M522 80 V112" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <text x="532" y="104" font-size="11">标签·解释·证据片段·置信度</text>

  <rect x="24" y="112" width="776" height="40" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="412" y="130" text-anchor="middle" font-weight="bold">① Schema 校验 → ② 字段完整性 → ③ 取值合理性 → ④ 本体约束 → ⑤ 置信度分档</text>
  <text x="412" y="146" text-anchor="middle" font-size="11">先做成本低的校验，再做成本高的；每道校验的不通过动作见表 4-4</text>

  <path fill="none" d="M160 152 V196" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <text x="168" y="178" font-size="11">高置信</text>
  <path fill="none" d="M412 152 V196" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <text x="420" y="178" font-size="11">中置信</text>
  <path fill="none" d="M664 152 V196" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <text x="672" y="178" font-size="11">低置信／格式失败</text>

  <rect x="24" y="196" width="272" height="48" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="160" y="216" text-anchor="middle">候选集＋按比例抽检</text>
  <text x="160" y="234" text-anchor="middle" font-size="11">首期 5%，稳定后 3%</text>

  <rect x="308" y="196" width="208" height="48" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="412" y="216" text-anchor="middle">人工复核队列</text>
  <text x="412" y="234" text-anchor="middle" font-size="11">确认或修改</text>

  <rect x="528" y="196" width="272" height="48" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="664" y="216" text-anchor="middle">人工标注队列</text>
  <text x="664" y="234" text-anchor="middle" font-size="11">工具输出仅作参考</text>

  <path fill="none" d="M160 244 V282" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a6)"/>
  <rect x="24" y="282" width="272" height="48" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="160" y="302" text-anchor="middle" font-size="11">抽检发现系统性错误模式</text>
  <text x="160" y="320" text-anchor="middle" font-size="11">→ 整批退回＋写入模板回归样例</text>
  <path fill="none" d="M24 306 H16 V102 H24" stroke="#64748b" stroke-width="1.2" stroke-dasharray="3 3" marker-end="url(#t2b-a6)"/>

  <path fill="none" d="M412 244 V282 H308" stroke="#334155" stroke-width="1.2" marker-end="url(#t2b-a6)"/>
  <path fill="none" d="M664 244 V282 H800 V306" stroke="#334155" stroke-width="1.2"/>
  <rect x="308" y="282" width="492" height="48" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="554" y="302" text-anchor="middle">已确认标注结果 → 一致性校验（3.2.3.6.4）→ 入标注区</text>
  <text x="554" y="320" text-anchor="middle" font-size="11">并回流主动学习，进入下一轮采样</text>

  <rect x="24" y="344" width="776" height="34" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="38" y="382.5" font-weight="bold">可追溯：</text>
  <text x="60.0" y="366">每条结果绑定 source_ref（原文位置）＋ model_ref ＋ prompt_version ＋ config_version ＋ batch_id，可按原配置回放复算。</text>
</svg>

图 4-2　大模型预标注的批量处理与分流。数据来源：招标文件第五章 3.2.3.6.1 节（b1010—b1021）五项要求。

##### 4.3.8 输出样例

下例为一条服务工单的实体与关系预标注结果。

```json
{
  "record_id": "PRE-ANN-2027060300471",
  "task_type": "实体抽取+关系抽取",
  "object_key": {"service_order": "SO-2027-01188", "equipment": "EQ-AFC-K2207"},
  "source_ref": {"doc": "SOS/工单正文/SO-2027-01188", "digest": "sha256:4b7e…c1", "char_span_total": 412},
  "input_excerpt": "5月21日到矿，用户反映机头减速器异响并有轻微漏油，测振动偏大。拆检发现输出轴轴承外圈有点蚀，更换轴承（型号见备件单）并补加润滑脂，复机后振动恢复正常。",
  "entities": [
    {"ent_id": "E1", "type": "设备", "text": "机头减速器", "span": [14, 19],
     "normalized": "刮板输送机机头减速器", "onto_node": "ONT-EQ-0217",
     "confidence": 0.96, "evidence": "原文第 14–19 字"},
    {"ent_id": "E2", "type": "故障现象", "text": "异响", "span": [20, 22],
     "normalized": "异常噪声", "onto_node": "ONT-SYM-0044", "confidence": 0.93},
    {"ent_id": "E3", "type": "故障现象", "text": "轻微漏油", "span": [24, 28],
     "normalized": "渗漏油", "onto_node": "ONT-SYM-0071", "confidence": 0.91},
    {"ent_id": "E4", "type": "部件", "text": "输出轴轴承", "span": [44, 49],
     "normalized": "减速器输出轴滚动轴承", "onto_node": "ONT-CP-0163", "confidence": 0.94},
    {"ent_id": "E5", "type": "故障模式", "text": "外圈有点蚀", "span": [49, 54],
     "normalized": "滚动轴承外圈点蚀", "onto_node": "ONT-FM-0122", "confidence": 0.89},
    {"ent_id": "E6", "type": "处置措施", "text": "更换轴承", "span": [55, 59],
     "normalized": "部件更换", "onto_node": "ONT-ACT-0031", "confidence": 0.95}
  ],
  "relations": [
    {"rel_id": "R1", "type": "部件所属设备", "subject": "E4", "object": "E1", "direction": "E4→E1",
     "confidence": 0.95, "evidence": "原文第 14–54 字同句指代"},
    {"rel_id": "R2", "type": "现象指向故障模式", "subject": "E2", "object": "E5", "direction": "E2→E5",
     "confidence": 0.78, "evidence": ["原文第 20–22 字", "原文第 44–54 字"]},
    {"rel_id": "R3", "type": "处置应对故障模式", "subject": "E6", "object": "E5", "direction": "E6→E5",
     "confidence": 0.92, "evidence": "原文第 49–59 字"}
  ],
  "explanation": "工单正文中「机头减速器」为设备主体，「异响」「轻微漏油」为到场观察到的现象，「输出轴轴承外圈点蚀」为拆检确认的故障模式，三者构成现象—模式—处置链。关系 R2 的置信度较低，原因是原文未明确说明异响由点蚀直接引起，判断依据为同一次拆检中的时间先后。",
  "checks": {
    "schema": "通过", "field_completeness": "通过",
    "value_range": "通过",
    "ontology": {"result": "通过", "detail": "E4 属于 E1 的子部件（父子类校验通过）；E5 为 E4 允许的故障模式（取值范围校验通过）"}
  },
  "confidence": 0.90,
  "routing": {"tier": "中置信", "reason": "R2 置信度 0.78 低于关系类高阈值 0.85", "queue": "人工复核"},
  "model_ref": "gw-llm/v7", "prompt_version": "p-ner-rel-0318", "config_version": "cfg-ann-2027Q2-04",
  "tool_id": "llm-preannotate", "tool_version": "2.1.0",
  "batch_id": "B-20270603-PRE-022",
  "cost": {"input_tokens": 1842, "output_tokens": 731, "retries": 0},
  "review_state": "未复核"
}
```

这条样例还有一个用处：它的 `relations` 中 R2 一旦经人工确认，就成为「异常噪声—外圈点蚀」这一条现象到故障模式的配对证据。前文 3.5.6 节时序样例中的候选标签正是等这类证据来确认的。两类工具的产出在同一个对象主键下汇合，这是第三节与第四节能够拼接的原因。

##### 4.3.9 质量口径、验收与回退

表 4-6　大模型预标注工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| Schema 合规率 | 重试后不低于 99% | 按批次统计格式失败条数 | 格式失败率超限时在提示词中固化结构化输出约束并简化 Schema 层级 |
| 高置信档的实际正确率 | 不低于 95% | 抽检样本与人工标注比对，按任务类型分别统计 | 上调高阈值，直至抽检正确率回到基线；相应任务的档位从「机器主导」下移到「人工逐条确认」 |
| 低置信档的召回效果 | 被判为低置信的样本中，人工标注后与模型结果不一致的比例不低于 50% | 按批次统计 | 若不一致比例过低，说明低阈值定得过高，人力被浪费在模型本来就对的样本上，按标定集重定阈值 |
| 证据片段可定位率 | 不低于 98% | 校验步骤自动统计 | 证据无法定位的任务类型改为要求模型输出字符偏移而非引文复述 |
| 单位样本成本 | 按任务类型设定预算，按批次监控 | 成本统计模块出报表 | 超预算时优先精简提示词示例、合并同类任务、下调重复采样次数 |
| 回放一致性 | 同配置同输入重跑，结构化字段逐步接近完全一致 | 每月抽取 100 条回放比对 | 对一致性不足的任务固定采样参数（温度取零或固定随机种子） |

#### 4.4 主动学习标注工具链（3.2.3.6.2）

本节回应招标文件 3.2.3.6.2 节（b1022）及其三项要求。

##### 4.4.1 这一条要解决的问题

人工产能有限、待标池大，须决定标注优先级。随机抽样效率低：常见故障与常规工艺占绝大多数，继续标注收益低；边界与长尾情形才需人工判断，随机抽中概率小。

主动学习工具的作用就是把人工标注的投向从随机改为按收益排序。它不增加标注产能，但能让同样的产能产出更有价值的样本。这件事对基准测试集 0.95 万条的构造尤其重要——这个数量级的样本要覆盖四个业务域的典型与边界情形，不能靠随机抽样碰运气。

##### 4.4.2 六种采样机制

工具支持主动学习采样机制，能够基于模型不确定性、低置信度、边界样本、模型分歧、长尾类别和错误高发来源优先分配人工标注（b1023、b1024）。六种机制的实现方式见表 4-7。

表 4-7　六种主动学习采样机制

| 机制 | 怎么算 | 优先选出什么样的样本 | 在本项目中的典型收益 |
|---|---|---|---|
| 模型不确定性 | 按预测分布的熵或互信息排序；对生成类任务用多次采样结果的分散程度 | 模型对该样本的判断不稳定 | 工艺可借用性判断、偏好数据的优劣比较 |
| 低置信度 | 按 4.3.2 合成的置信度分值直接排序 | 模型自己也不确定的样本 | 覆盖面最广，是默认通道 |
| 边界样本 | 在特征或表示空间中与决策边界距离最近的样本；对分类任务取首位与次位标签的概率差最小者 | 两个标签之间难以区分 | 缺陷类别归类、故障现象归一、工作面类型分类 |
| 模型分歧 | 用两路及以上不同配置（不同提示词版本、不同模型、规则通道与模型通道）对同一样本标注，取结果不一致者 | 不同判断路径给出不同答案 | 本体规则与模型判断冲突的样本，往往指向本体缺项 |
| 长尾类别 | 统计各标签在已标注集中的频次，按逆频次加权采样；对本体中已定义但样本数为零的类目单独设最低配额 | 稀少但本体中存在的类别 | 稀缺故障模式、特殊工作面条件、非常规工艺 |
| 错误高发来源 | 按来源（源系统、文档类型、设备型号、车间、时间段）统计历史返工率与抽检失败率，对高发来源加权 | 来自已知质量较差来源的样本 | 填写不完整的工单、新上线系统的早期记录、扫描件图纸 |

六种机制不是择一使用，而是按配额组合。每一轮采样的批次由多种机制按配额拼成，配额本身可配置并随进度调整。首期的配额分配建议见表 4-8，分配依据是各机制在冷启动阶段的可用性——模型尚未训练时，不确定性与分歧类机制信号弱，长尾与来源类机制则不依赖模型，可以先用。

表 4-8　主动学习采样配额的阶段性分配建议

| 阶段 | 低置信度 | 模型不确定性 | 边界样本 | 模型分歧 | 长尾类别 | 错误高发来源 | 说明 |
|---|---|---|---|---|---|---|---|
| 冷启动（无可用模型） | —— | —— | —— | —— | 50% | 30% | 余 20% 为随机采样，用于建立无偏基线 |
| 起步（首轮模型可用） | 30% | 15% | 10% | 10% | 20% | 10% | 随机采样降至 5%，长期保留 |
| 稳定运行 | 20% | 20% | 20% | 15% | 15% | 5% | 随机采样保留 5%，作为分布漂移的监测通道 |

表中保留随机采样的那一小部分不是冗余。按收益排序采样会系统性地偏离真实分布，若完全不留随机通道，就无法判断模型在真实分布上的表现是否也在提升。这 5% 的随机样本专用于监测，不参与阈值标定。

六种机制都是对单条样本打分再排序，这里有一处落地时最容易出的问题必须处置：**按分排序挑出来的一批，彼此可能高度雷同。** 不确定性高的样本常常成簇出现——同一张图纸上相似的几处标注、同一条生产线上同一类报警、同一道工序里同一种参数越界，它们的得分都高，排序后就被一起挑了出来。结果是人工标了五百条，真正覆盖到的情形只有三五种，而另外十几种情形因为单条得分略低一直排不上队。这不是打分机制的问题，是「逐条打分、整批选取」这个做法本身的缺口。

本项目对此采用两段式批量选择。第一段照表 4-7 的六种机制打分，筛出一个候选池，池子规模取目标批量的数倍；第二段不再看分数，而在候选池上做**覆盖最大化选择**：把候选样本按其向量表示放在同一空间里，每次选入一条——选的是能使「池中其余样本到已选样本集合的最近距离」改善最大的那一条，如此循环直到凑满批量。通俗地说，第一段负责把值得标的样本找出来，第二段负责在它们之间挑开，不让一批里挤满同一类。工程实现是一次贪心循环，不需要训练任何模型，开销与候选池规模成正比。

这样做的好处可以被量出来，这一点比做法本身更重要。度量用两个数：一是**批内平均最近邻距离**，它反映这一批样本彼此的分散程度；二是**批内覆盖的标签类目数与本体类目数**，它反映这一批实际触及了多少种情形。两个数都可以与两条对照基线比较——纯随机采样，以及只按不确定性排序不做覆盖选择。首期按同等标注量下的类目覆盖数设定基线，目标是覆盖最大化选择的类目覆盖数不低于纯不确定性排序的水平并趋向改善；若连续两批未见改善，则退回纯不确定性排序，并在质量报告中记录该批次的选择口径，不留无依据的做法在产线上。

覆盖最大化选择的适用范围不止本工具。分布均衡的欠采样要在删减多数类时保住情形的多样性，基准测试集的构造要让零点九五万条覆盖四个业务域的典型与边界，文本重写要挑开改写对象避免同一类句式被反复改写——这三处的需求与本处相同，做法一致，口径见各工具相应小节，方法不重复论证。

##### 4.4.3 输入输出接口

表 4-8A　主动学习标注工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 待标注样本池 | 池引用与版本、轮次号、本轮总配额 | 采样接口对评测库无读权限，防泄漏 |
| 输入 | 机制配额与反馈 | 六种机制配额（表 4-7、表 4-8）、上一轮人工反馈引用、多样性下限 | 缺省按阶段建议分配；首轮可无反馈 |
| 输入 | 模型信号（可选） | 不确定性／分歧等度量所需的模型输出或登记版本 | 冷启动无模型时降级为长尾与来源机制 |
| 输出 | 优先序清单 | `ranked_samples`：样本标识、优先级、入选机制、入选理由、度量值 | 写入派单队列；理由逐条必填 |
| 输出 | 机制执行报告 | 各机制计划／实际配额、未填满原因、随机对照档占比 | 与清单同批交付，可当场核对 |
| 输出 | 定向采集与覆盖盲区 | 池中无合适样本但模型薄弱的方向、覆盖缺口登记 | 与质量问题分列，处置动作不同 |
| 输出 | 批次留痕 | 采样批次号、模型版本、策略参数、派发与回收记录 | 供审计与按参数复算 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.5（表 8-10、表 8-11）。

##### 4.4.4 回流闭环

工具支持标注结果回流模型训练，形成模型预测、人工标注、增量训练、再次采样的闭环（b1025、b1026）。闭环的四个环节与本项目的接口关系见图 4-3。

需要说明本包在这个闭环中的位置。本包交付的是数据集加工生产服务，模型的训练与推理由行业大模型训练推理技术服务（任务 T13）承担，智能场景建设不在本包范围。因此本工具在「增量训练」这一环的职责是：按约定格式导出增量训练样本集、声明样本的来源与版本、接收训练侧返回的模型版本与在验证集上的表现指标，据此计算下一轮采样的信号。训练本身的实施由训推侧完成，两侧以样本集版本号与模型版本号对接。

闭环的周期按数据集与任务类型分别设定。指令微调类样本的闭环周期较短，建议按两周一轮；基准测试集的金标准标注不进入模型训练闭环，它的作用是评测，按季度扩充并保持与训练集的隔离。隔离按来源与时间双重切分实现：同一来源的样本不同时出现在训练集与评测集，评测集的时间窗在训练集之后。这一条口径与数据集质量评测方案（任务 S3）一致。

处理流程见图 4-3：采样 → 预标注与人工标注 → 增量样本集导出 → 训推侧增量训练（本包对接版本号）→ 采样信号重算。

#### 图 4-3　主动学习回流闭环与本包的职责位置

<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="12.5">
  <defs>
    <marker id="t2b-a7" 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="8" y="8" width="804" height="344" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="36" y="40" width="170" height="54" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="121" y="62" text-anchor="middle" font-weight="bold">① 采样</text>
  <text x="121" y="80" text-anchor="middle" font-size="11">六机制按配额组合＋5% 随机</text>

  <path fill="none" d="M206 67 H286" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a7)"/>
  <text x="212" y="60" font-size="11">采样批次</text>

  <rect x="286" y="40" width="170" height="54" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="371" y="62" text-anchor="middle" font-weight="bold">② 预标注＋人工标注</text>
  <text x="371" y="80" text-anchor="middle" font-size="11">按表 4-2 四档协同</text>

  <path fill="none" d="M456 67 H536" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a7)"/>
  <text x="462" y="60" font-size="11">已确认标注</text>

  <rect x="536" y="40" width="170" height="54" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="621" y="62" text-anchor="middle" font-weight="bold">③ 增量样本集导出</text>
  <text x="621" y="80" text-anchor="middle" font-size="11">带版本号与来源声明</text>

  <path fill="none" d="M621 94 V140" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a7)"/>
  <text x="631" y="122" font-size="11">样本集版本号</text>

  <rect x="500" y="140" width="242" height="54" rx="5" fill="#f8fafc" stroke="#64748b" stroke-dasharray="5 3"/>
  <text x="621" y="162" text-anchor="middle" font-weight="bold">④ 增量训练（训推侧 T13）</text>
  <text x="621" y="180" text-anchor="middle" font-size="11">不在本包范围；以版本号对接</text>

  <path fill="none" d="M500 167 H340" stroke="#64748b" stroke-width="1.3" stroke-dasharray="5 3" marker-end="url(#t2b-a7)"/>
  <text x="350" y="160" font-size="11">模型版本＋验证集表现指标</text>

  <rect x="150" y="140" width="190" height="54" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="245" y="162" text-anchor="middle">采样信号重算</text>
  <text x="245" y="180" text-anchor="middle" font-size="11">不确定性·分歧·长尾缺口</text>

  <path fill="none" d="M245 140 V110 H121 V94" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a7)"/>
  <text x="130" y="122" font-size="11">下一轮配额</text>

  <rect x="36" y="216" width="340" height="68" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="206" y="238" text-anchor="middle" font-weight="bold">派单与泄漏防护（贯穿采样到入库各环节）</text>
  <text x="206" y="256" text-anchor="middle" font-size="11">样本指纹去重｜同族样本同批派发｜已标注集排除</text>
  <text x="206" y="272" text-anchor="middle" font-size="11">评测集样本永不进入采样池</text>

  <rect x="400" y="216" width="342" height="68" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="571" y="238" text-anchor="middle" font-weight="bold">批次留痕（供审计与复算）</text>
  <text x="571" y="256" text-anchor="middle" font-size="11">采样批次号｜所用模型版本｜策略参数与配额</text>
  <text x="571" y="272" text-anchor="middle" font-size="11">每条样本的入选理由与入选分值</text>

  <rect x="36" y="300" width="706" height="38" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="50" y="316" font-weight="bold">隔离口径：</text>
  <text x="126" y="316">基准测试集的金标准标注不进入训练闭环；训练集与评测集按来源与时间双重切分隔离，</text>
  <text x="50" y="332">口径与数据集质量评测方案（S3）一致。</text>
</svg>

图 4-3　主动学习回流闭环与本包的职责位置。数据来源：招标文件第五章 3.2.3.6.2 节（b1022—b1027）；本包与训推侧的边界依第 01 包业务范围。

##### 4.4.5 防重复派单与样本泄漏

工具支持避免重复派单和样本泄漏，保留采样批次、模型版本和策略参数（b1027）。这一项要求看着是工程细节，实际影响数据集的可用性，因此分两部分说清。

防重复派单有三层措施。第一层是样本指纹去重：每个样本以内容指纹标识，指纹相同的样本只派发一次；近重复样本（如同一工单的两次修订、同一图纸的两个版本）按相似度聚成同族，同族样本在同一批次派给同一人，避免两个人对几乎相同的内容给出不同标注。

第二层是已标注集排除：采样时从池中排除已标注、正在标注、已派发未回收三类样本；派发超时未回收的样本按配置时限回收后重新入池，回收记录保留。第三层是跨批次核对：每轮采样完成后比对本批与历史批次的交集，交集非空时记录并排查原因，通常是指纹计算逻辑变更或样本被重复导入。

防样本泄漏有四条规则。一是评测集样本永不进入采样池，评测集与采样池在存储上分库，采样接口无评测库读权限。二是同族样本不跨集合切分，一族样本整体归入训练集或评测集，不拆开。三是时间切分优先于随机切分，评测集取训练集时间窗之后的样本，避免用未来数据训练、用过去数据评测的倒置。四是对齐样本的重叠关系遵守，第三节 3.5.2 所述的时序片段重叠与包含关系在切分时作为同族约束处理。

留痕内容包括：采样批次号、批次生成时刻、所用模型版本、六种机制的配额参数与阈值、每条样本的入选机制与入选分值、派发与回收时刻、标注人员角色（不记姓名，记角色与工号映射，映射表按权限访问）。留痕的用处是回答两类质疑：某条样本为什么会被选中标注，以及某批标注结果为什么与另一批差别较大。


##### 4.4.6 输出样例

一条优先序清单的出参样例（节选）：

```json
{
  "round_no": 9,
  "pool_ref": "POOL-DEVICE-2027Q2@v3",
  "quota": 1200,
  "ranked_samples": [
    {
      "sample_id": "SMP-WO-2027-118822",
      "rank": 1,
      "priority": 0.94,
      "mechanism": "模型分歧",
      "reason": "规则通道判「外圈点蚀」，模型通道判「润滑不良」；冲突指向本体适用关系待确认",
      "uncertainty": {"entropy": 1.72, "top2_margin": 0.04},
      "domain": "装备健康诊断"
    },
    {
      "sample_id": "SMP-DWG-2027-004417",
      "rank": 2,
      "priority": 0.91,
      "mechanism": "长尾类别",
      "reason": "本体类目「特殊材质超厚板坡口」已标注样本为 0，命中最低配额",
      "uncertainty": null,
      "domain": "产品工艺设计"
    },
    {
      "sample_id": "SMP-RND-2027-000881",
      "rank": 1180,
      "priority": 0.12,
      "mechanism": "随机对照",
      "reason": "本轮 5% 无偏对照配额；不参与阈值标定",
      "uncertainty": null,
      "domain": "制造过程"
    }
  ],
  "mechanism_report": {
    "低置信度": {"planned": 240, "actual": 240},
    "模型不确定性": {"planned": 240, "actual": 238, "unfilled_reason": "度量不可用 2 条改入多样性"},
    "边界样本": {"planned": 240, "actual": 240},
    "模型分歧": {"planned": 180, "actual": 180},
    "长尾类别": {"planned": 180, "actual": 180},
    "错误高发来源": {"planned": 60, "actual": 60},
    "随机对照": {"planned": 60, "actual": 60}
  },
  "coverage_gap": [{"ontology_node": "ONT-FM-0881", "label": "液压系统内泄漏（稀有）", "action": "定向采集"}],
  "batch_id": "AL-R9-2027Q2-009",
  "tool_id": "active-learning", "tool_version": "1.1.0"
}
```

样例核对要点：每条含入选机制与理由；`mechanism_report` 计划与实际并列；随机对照档存在且可区分。

##### 4.4.7 质量口径、验收与回退

表 4-9　主动学习标注工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 采样有效性 | 按主动学习采样的样本，其人工修改率不低于随机采样样本的 1.5 倍 | 每轮对比主动采样批与随机对照批的修改率 | 有效性不足时调整配额，提高长尾与来源类机制权重 |
| 重复派单率 | 不高于 0.5% | 按轮次统计本批与历史批次的样本交集 | 重复率超限时暂停自动派发，先排查指纹逻辑与导入链路 |
| 泄漏检出 | 训练集与评测集交集逐步接近为空 | 每次评测集发布前做交集核对，核对结果入数据卡 | 发现交集时该版本评测集不予发布，重做切分并说明影响范围 |
| 长尾覆盖进度 | 本体中已定义的故障模式类目，有标注样本的比例按季度提升 | 按季度统计类目覆盖情况 | 覆盖进度滞后的类目转由故障场景模拟生成（见 5.3）构造训练样本，但评测样本仍以实际样本为准 |
| 批次可复算 | 给定批次号可复现其样本清单 | 抽取 10 个历史批次按留痕参数重算 | 不可复现时固化采样的随机种子与排序稳定性规则 |

#### 4.5 本体驱动规则标注工具链（3.2.3.6.3）

本节回应招标文件 3.2.3.6.3 节（b1028）及其两项要求。

##### 4.5.1 这一条要解决的问题

单条预标注可能合理，汇总后仍可能出现逻辑冲突：设备与部件归属错配、故障模式挂错部件、同件材料牌号不一致、互斥属性双值并存。单条复核不易发现，因各条局部看似成立。

本体驱动规则标注工具从两个方向处理这个问题。正向是生成：按本体中已定义的关系推出候选标签，减少模型从零生成的随意性。反向是校验：按本体中的约束检查已有标注的自洽性，识别并剔除冲突。本项目的本体覆盖设备、部件、故障、工艺、材料、质量指标、安全规则七个域，这是招标文件明列的范围（b1029、b1030）。

##### 4.5.2 本体七域与候选标签生成

工具支持领域本体驱动的规则标注，基于设备、部件、故障、工艺、材料、质量指标、安全规则等本体关系生成候选标签（b1029、b1030）。七个域在本项目中的内容与候选标签生成方式见表 4-10。

表 4-10　本体七域的内容与候选标签生成方式

| 本体域 | 主要类目与关系 | 候选标签生成方式 | 典型候选标签 |
|---|---|---|---|
| 设备 | 产品型谱、机型档位、整机与子系统、设备编码与型号映射 | 由工单或记录中的设备编码查本体，推出型号、机型档位、所属子系统 | 「机型档位＝大采高型」、「子系统＝机头传动」 |
| 部件 | 部件层级（整机—部件—零件）、部件与设备的从属、标准件与非标件、替代关系 | 由提到的部件名查本体，推出所属设备、上级部件、同类替代件 | 「所属设备＝机头减速器」、「可替代件清单」 |
| 故障 | 故障模式名录、现象与模式的关联、模式与部件的适用关系、检出手段、证据分级 | 由现象查本体，推出该现象在该部件上可能对应的故障模式候选集 | 「候选故障模式＝外圈点蚀／润滑不良／对中偏差」 |
| 工艺 | 工序字典（备料分厂现掌握口径二十八道）、加工方法分档、工序前后依赖与禁止条件、工装与设备资源 | 由图纸结构化记录中的几何要素与加工要求，推出可用工序候选与排序约束 | 「候选工序＝下料—校平—压弯—钻孔」、「禁止：压弯后钻孔」 |
| 材料 | 材料牌号、力学性能区间、适用工艺、热处理要求、替代材料 | 由牌号查本体，推出适用工艺与热处理要求，校验与图纸标注是否相符 | 「适用工艺＝火焰切割／等离子切割」、「预热要求」 |
| 质量指标 | 检验项目、指标定义与量纲、判定分级（如热处理三级判定）、检出手段与缺陷类别对应 | 由检验记录推出应有的检验项目与判定分级，缺项列为待补 | 「应检项＝硬度／金相」、「判定分级＝二级」 |
| 安全规则 | 作业安全约束、禁止操作、井下使用限制、涉及安全的参数边界 | 对处置建议与工艺方案做安全约束匹配，命中约束的标注标记为需安全复核 | 「命中约束：带电作业禁止」、「需安全复核」 |

候选标签生成有一条关键约定：工具只生成候选，不直接判定。候选标签带上它的推理路径（从哪个本体节点、经哪条关系、推到哪个类目），交由模型或人在候选集内选择。这样做比让模型自由生成标签有两个好处：标签必然落在本体定义范围内，不会出现本体里没有的类目；选择结果可以回溯到本体版本，本体更新后能找出受影响的历史标注。

##### 4.5.3 七类本体约束校验

工具支持本体约束校验，利用父子类、互斥关系、必选属性、关系方向、同义词、别名和取值范围识别并剔除冲突标注（b1031、b1032）。七类约束的校验规则与处置见表 4-11。

表 4-11　七类本体约束的校验规则与处置

| 约束类型 | 校验规则 | 冲突表现举例 | 处置 |
|---|---|---|---|
| 父子类 | 标注的类目与其上级类目须构成本体中已定义的父子路径；子类标注同时隐含其所有父类 | 把「减速器」标为「液压支架」的部件 | 剔除该条关系标注，保留实体标注并入冲突清单 |
| 互斥关系 | 本体中声明互斥的类目不得同时标注在同一对象上 | 同一焊缝同时标为「已返修」与「首次合格」 | 两条标注均降级，整条记录转人工裁决 |
| 必选属性 | 某类目要求的必选属性须有取值 | 标为「故障模式」但未给出所在部件 | 补齐提示返回标注端；无法补齐的降为候选 |
| 关系方向 | 关系的主客体顺序须与本体定义一致 | 把「部件所属设备」标成设备属于部件 | 方向可唯一纠正时自动纠正并留痕；存在歧义时转人工 |
| 同义词 | 同义词须归一到主词条；归一后不得出现同一对象被标为两个同义类目 | 「异响」与「噪声异常」被当作两类现象 | 自动归一到主词条，归一记录留痕 |
| 别名 | 企业内部别名、现场俗称须能映射到标准术语；未登记的别名不得静默忽略 | 现场称「大链」实为「刮板链」 | 已登记别名自动映射；未登记的进入新术语发现流程（见 4.6.4） |
| 取值范围 | 数值与枚举取值须在本体定义的范围内 | 板厚标为 160mm 而本体定义范围为 4–60mm | 越界值剔除并记入异常清单；范围定义本身可疑的提交本体复核 |

校验的执行顺序是先做归一（同义词、别名），再做结构检查（父子类、关系方向、必选属性），最后做取值与互斥检查。顺序颠倒会产生大量假冲突——未归一的同义词会被父子类检查当成不同类目。

校验结果分三种处置，上表已分别注明：自动纠正并留痕、降级为候选、转人工裁决。有一条通则：工具不静默删除任何标注。被剔除的标注移入冲突清单并保留原值与剔除理由，原因是冲突有时指向本体缺项而不是标注错误。本项目的本体是边建边用的，把冲突当成本体改进的线索比当成错误处理更有价值。

##### 4.5.4 本体版本与历史标注的关系

本体会更新，这是必然的。新故障模式被发现、新工艺术语被确认、取值范围被修订，都会产生本体新版本。历史标注在本体更新后怎么处理，需要事先定好口径，否则数据集会出现同一类目在不同批次中含义不同的情况。

本工具的口径分三档。向后兼容的更新（新增类目、新增别名、放宽取值范围）不触发历史标注重校验，历史标注仍然有效，只在数据卡中记录本体版本。影响既有标注的更新（类目合并、类目拆分、关系方向修订、收紧取值范围）触发受影响标注的重校验，重校验范围按本体差异自动计算，结果分为仍然有效、需自动迁移、需人工重标三类。涉及判定口径的更新（判定分级标准变更、缺陷分类调整）一律触发人工复核，不自动迁移，因为这类更新背后是业务判据的变化，机械迁移会把旧判据的结论挂到新口径上。

每次本体更新后生成一份影响评估报告：受影响的标注条数、按三类处置的分布、需人工重标的工时估算。报告提交数据治理侧与甲方相关部门确认后执行。本体的建设与维护流程在数据治理体系（任务 T4A、T4B）详述，本节只写本工具与本体之间的接口与处置口径。

##### 4.5.5 输入输出接口

表 4-11A　本体驱动规则标注工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 待校验／待生成样本 | 样本标识或池引用（通常为预标注结果） | 只读取标注区记录 |
| 输入 | 本体与规则版本 | 本体七域版本、约束规则集版本、术语与别名表版本 | 入参显式传版本；被替代版本不静默升级 |
| 输入 | 约束范围与冲突策略 | 启用的约束类别、冲突处置（拦截／标记放行） | 缺省七类全启；工序字典未成文时相关约束标「未校验」 |
| 输出 | 本体标签与约束结论 | 候选／确认标签、约束逐条判定、冲突清单 | 不静默删除；剔除项进冲突清单留原值 |
| 输出 | 新术语候选与生效版本 | `new_term_candidates`、`effective_versions` | 回流本体更新流程；回传实际生效版本供核对 |
| 输出 | 本体反馈 | 使用中发现的必选属性过严、缺项等建议 | 汇总后交治理侧评审 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.6（表 8-12、表 8-13）。

##### 4.5.6 处理流程

处理顺序固定为：同义词／别名归一 → 父子类／关系方向／必选属性结构检查 → 取值与互斥检查 → 冲突分处置（自动纠正留痕／降级候选／转人工）→ 写入约束结论与本体反馈。顺序颠倒会产生假冲突。本体改版后的历史标注按本节 4.5.4 三档口径处置。

##### 4.5.7 输出样例

```json
{
  "record_id": "ONT-CHK-2027061100233",
  "target_record": "PRE-ANN-2027060300471",
  "ontology_version": "ONT-2027Q2-v5",
  "normalization": [
    {"field": "entities.E2.normalized", "from": "异响", "to": "异常噪声",
     "rule": "同义词归一", "dict_entry": "SYN-0044-03"},
    {"field": "entities.E4.normalized", "from": "输出轴轴承", "to": "减速器输出轴滚动轴承",
     "rule": "别名映射", "dict_entry": "ALS-0163-01"}
  ],
  "candidates_generated": [
    {"for": "entities.E2", "candidate_set": [
       {"node": "ONT-FM-0122", "label": "滚动轴承外圈点蚀", "path": "现象(异常噪声)→可能模式→部件(ONT-CP-0163)适用"},
       {"node": "ONT-FM-0131", "label": "润滑不良", "path": "现象(异常噪声)→可能模式→部件适用"},
       {"node": "ONT-FM-0140", "label": "轴系对中偏差", "path": "现象(异常噪声)→可能模式→部件适用"}
     ], "note": "模型已选 ONT-FM-0122，在候选集内，接受"}
  ],
  "constraint_checks": [
    {"type": "父子类", "subject": "ONT-CP-0163", "object": "ONT-EQ-0217", "result": "通过",
     "detail": "减速器输出轴滚动轴承 ⊂ 机头减速器"},
    {"type": "关系方向", "relation": "R1", "result": "通过"},
    {"type": "必选属性", "node": "ONT-FM-0122", "required": ["所在部件", "检出手段"],
     "result": "部分缺失", "missing": ["检出手段"], "action": "补齐提示已回传标注端"},
    {"type": "取值范围", "field": "无", "result": "不适用"},
    {"type": "互斥关系", "result": "通过"},
    {"type": "同义词", "result": "已归一 1 项"},
    {"type": "别名", "result": "已映射 1 项；未登记别名 0 项"}
  ],
  "conflicts": [],
  "pending_ontology_feedback": [
    {"type": "必选属性建议", "content": "工单文本中常不写检出手段，建议将 ONT-FM-0122 的「检出手段」从必选改为条件必选（有检验记录关联时必选）",
     "submitted_to": "本体更新流程", "status": "待评审"}
  ],
  "confidence": 0.93, "review_state": "机器通过",
  "tool_id": "onto-rule-annotate", "tool_version": "1.5.0",
  "config_version": "cfg-onto-2027Q2-02", "batch_id": "B-20270611-ONT-007"
}
```

`pending_ontology_feedback` 一项展示了这个工具的另一个产出：使用中发现的本体问题。工单文本里通常不写检出手段，把它定为无条件必选会在大量工单上产生假缺失。这类反馈汇总后提交本体更新流程评审，是本体从「设计出来」走向「用得顺」的主要途径。

##### 4.5.8 质量口径、验收与回退

表 4-12　本体驱动规则标注工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 候选集命中率 | 人工最终确认的标签落在候选集内的比例不低于 85% | 抽样 300 条统计 | 命中率不足说明本体覆盖有缺口，按未命中标签梳理本体补项；期间放宽候选集规模 |
| 冲突检出的有效性 | 被判为冲突的标注中，经人工裁决确认确为标注错误的比例不低于 70% | 抽样 200 条冲突记录统计 | 有效性不足说明约束定义过严，逐条复核约束定义并区分硬约束与软提示 |
| 假冲突率 | 不高于 30%，且其中因未归一造成的假冲突逐步接近为零 | 同上，分类统计假冲突原因 | 调整校验顺序、补充同义词与别名词条 |
| 归一覆盖率 | 实体归一值能在词典中命中的比例不低于 90% | 按批次统计 | 未命中词条按频次排序进入新术语发现流程，优先补高频项 |
| 本体更新影响可评估 | 每次更新均产出影响评估报告 | 检查报告是否齐备且受影响条数可复算 | 不可复算时补建本体差异比对能力，期间暂停自动迁移、一律人工复核 |

#### 4.6 一致性校验标注工具链（3.2.3.6.4）

本节回应招标文件 3.2.3.6.4 节（b1033）及其三项要求。

##### 4.6.1 这一条要解决的问题

标注质量这件事，如果没有量化指标，就只能靠抽检时的主观感觉判断。而抽检发现的是个别错误，发现不了系统性偏差——比如两个标注人员对「轻微渗漏」算不算故障的理解不同，各自标了几千条，每一条在自己的理解下都是对的，合起来的数据集却自相矛盾。模型在这种数据上训练，学到的是两种口径的混合。

一致性校验工具的作用是把「标得准不准」这个难以直接测量的问题，转化为「不同标注者之间一致不一致」这个可以测量的问题。一致率低不一定说明标错，但一定说明标注规范在这一类样本上没写清楚——这是规范需要修订的信号。

##### 4.6.2 多方交叉标注与一致性指标

工具支持多人、多模型和人机交叉标注，并能计算一致率、冲突率等一致性指标（b1034、b1035）。三种交叉方式与适用情形见表 4-13。

表 4-13　三种交叉标注方式

| 交叉方式 | 做法 | 适用情形 | 成本 |
|---|---|---|---|
| 多人交叉 | 同一样本由两名及以上标注人员独立标注，互相不可见 | 主观判断成分大的任务；新规范上线初期；新标注人员入场期 | 按交叉人数成倍增加 |
| 多模型交叉 | 同一样本用不同配置（不同提示词版本、不同模型、不同采样参数）各标一次 | 大批量样本的质量监测；模型升级前后的差异评估 | 增加调用成本，不占人力 |
| 人机交叉 | 同一样本由模型预标注并由人独立标注（人不看模型结果），之后比对 | 标定置信度阈值；评估某任务类型能否上移协同档位 | 占用人力但产出标定数据 |

一致性指标按表 4-14 计算。指标的选择依任务类型而定，不是所有任务都用同一个指标。

表 4-14　一致性指标及其适用任务

| 指标 | 定义 | 适用任务 | 基线取值建议 |
|---|---|---|---|
| 一致率 | 两方标注完全相同的样本数占比 | 标签可枚举且取值不多的分类任务 | 不低于 85% |
| 冲突率 | 两方标注在同一字段上取值不同且不可兼容的样本数占比 | 全部任务；与一致率互补，用于区分「不一致」与「不兼容」 | 不高于 10% |
| Cohen κ 系数 | 扣除随机一致后的一致程度，两方标注时使用 | 二分类与少类别分类任务 | 不低于 0.75 |
| Krippendorff α 系数 | 可处理多标注者、缺失值与不同测量尺度的一致性系数 | 多人交叉、多标签、序数标签任务 | 不低于 0.70 |
| 跨度重叠率 | 抽取类任务中标注跨度的交并比 | 实体抽取、缺陷位置标注 | 不低于 0.80 |
| 严格匹配率与宽松匹配率 | 抽取类任务中，标签与跨度全同为严格匹配，标签同且跨度重叠超门限为宽松匹配 | 实体抽取、关系抽取 | 严格不低于 0.70，宽松不低于 0.85 |

指标按任务类型、标注人员、样本来源、批次四个维度分别统计，这一点很重要。整体一致率合格而某一个来源或某一名标注人员的一致率明显偏低，是定位问题的直接线索；只看整体数字会把这类问题平均掉。

一致率低于基线时的动作不是直接返工。先做归因：是规范在这类样本上没写清楚，是标注人员理解有偏差，还是样本本身就是边界情形。三类原因对应三种处置——修订规范并附判例、组织规范宣讲与复测、把样本标记为边界样本并提交裁决。把一致率低一概当成标注人员的问题，会导致规范的缺陷被反复掩盖。

##### 4.6.3 复核与裁决工作流

工具支持复核与裁决工作流，记录标注、修改、审核、驳回、专家裁决和最终确认全过程，满足审计追溯要求（b1036、b1037）。工作流的状态与流转见图 4-4。

#### 图 4-4　标注复核与裁决工作流的状态流转

<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="12.5">
  <defs>
    <marker id="t2b-a8" 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="8" y="8" width="804" height="384" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="30" y="36" width="124" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="92" y="55" text-anchor="middle">待标注</text>
  <text x="92" y="72" text-anchor="middle" font-size="11">派单留痕</text>

  <path fill="none" d="M154 59 H212" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  <rect x="212" y="36" width="124" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="274" y="55" text-anchor="middle">已标注</text>
  <text x="274" y="72" text-anchor="middle" font-size="11">记标注人角色与时刻</text>

  <path fill="none" d="M336 59 H394" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  <rect x="394" y="36" width="124" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="456" y="55" text-anchor="middle">一致性校验</text>
  <text x="456" y="72" text-anchor="middle" font-size="11">多方比对计分</text>

  <path fill="none" d="M518 59 H576" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  <rect x="576" y="36" width="124" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="638" y="55" text-anchor="middle">待审核</text>
  <text x="638" y="72" text-anchor="middle" font-size="11">一致则直接送审</text>

  <path fill="none" d="M456 82 V130" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  <text x="466" y="110" font-size="11">不一致</text>
  <rect x="380" y="130" width="152" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="456" y="149" text-anchor="middle">冲突归因</text>
  <text x="456" y="166" text-anchor="middle" font-size="11">规范／理解／边界</text>

  <path fill="none" d="M380 153 H250 V176" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  
  <rect x="176" y="176" width="148" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  
  

  <path fill="none" d="M532 153 H640 V176" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  
  <rect x="566" y="176" width="148" height="46" rx="5" fill="#eef2f7" stroke="#334155"/>
  
  

  <path fill="none" d="M640 176 V130 H700 V82" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  <text x="648" y="124" font-size="11">裁决结果</text>

  <path fill="none" d="M638 82 V252" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a8)"/>
  <text x="648" y="240" font-size="11">审核通过</text>
  <rect x="566" y="252" width="148" height="46" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="640" y="271" text-anchor="middle">最终确认</text>
  <text x="640" y="288" text-anchor="middle" font-size="11">入标注区·版本冻结</text>

  <path fill="none" d="M576 59 H560 V226 H274 V82" stroke="#334155" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-a8)"/>
  <rect x="298.0" y="209.5" width="305.0" height="16.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="300" y="222" font-size="11">驳回：记驳回理由，退回原标注人修改（修改前后双版本保留）</text>

  <rect x="30" y="252" width="500" height="46" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="44" y="271" font-weight="bold">审计留痕（每一次状态变更均记录）：</text>
  <text x="44" y="289" font-size="11">时刻·操作角色·前值·后值·理由·所依据的规范版本与本体版本·关联批次号</text>

  <rect x="30" y="316" width="684" height="60" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="44" y="336" font-weight="bold">新术语发现 → 本体回流：</text>
  <text x="44" y="354" font-size="11">标注与裁决过程中出现的别名、新故障模式、新工艺术语、规则歧义，按四类提交本体更新流程；</text>
  <text x="44" y="370" font-size="11">提交项带出现频次、首次出现批次、建议归属类目与证据样本，供本体评审取舍。</text>

  <rect x="252.0" y="134.0" width="52.0" height="19.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="256" y="148" font-size="11">规范不清</text>

  <rect x="202.3" y="179.9" width="95.0" height="20.0" fill="#f1f5f9" stroke="none" data-halo="1"/><text x="250" y="195" text-anchor="middle">规范修订＋判例</text>

  <rect x="202.0" y="198.0" width="96.0" height="19.0" fill="#f1f5f9" stroke="none" data-halo="1"/><text x="250" y="212" text-anchor="middle" font-size="11">该类样本整批重标</text>

  <rect x="544.0" y="135.0" width="52.0" height="18.0" fill="#ffffff" stroke="none" data-halo="1"/><text x="548" y="148" font-size="11">边界情形</text>

  <rect x="611.0" y="179.9" width="58.5" height="20.0" fill="#eef2f7" stroke="none" data-halo="1"/><text x="640" y="195" text-anchor="middle">专家裁决</text>

  <rect x="592.0" y="198.0" width="96.0" height="19.0" fill="#eef2f7" stroke="none" data-halo="1"/><text x="640" y="212" text-anchor="middle" font-size="11">裁决记录入判例库</text>
</svg>

图 4-4　标注复核与裁决工作流的状态流转。数据来源：招标文件第五章 3.2.3.6.4 节（b1033—b1039）。

工作流有三条设计约定需要说明。

第一，修改保留双版本。复核人员修改标注时，原值与新值同时保留，修改理由必填。这不只是为了审计——修改记录是标注规范改进的主要素材，哪类样本被改得最多，规范在哪里就不清楚。修改归因还会沉淀为企业规则与评测样本，这与甲方在工艺设计口提出的要求一致：把每一次修改归因并沉淀为企业规则与评测样本。

第二，驳回与修改分开。审核人认为标注错误时可以驳回，退回原标注人修改；审核人也可以直接修改。两者的区别在于谁来做判断：驳回保留了原标注人学习与申辩的机会，直接修改效率更高但不利于标注人员提高。首期以驳回为主，同一标注人在同一类问题上被驳回超过门限次数时触发规范宣讲。

第三，专家裁决的结果进判例库。裁决不是一次性的，它对后续同类样本有指导作用。判例库按任务类型与标签组织，条目包括样本摘要、争议点、裁决结论与理由。标注工作台在标注人员遇到相似样本时推送相关判例。判例库随建设推进积累，是标注规范的实际延伸。

##### 4.6.4 新术语发现与本体回流

工具支持新术语发现和本体回流，将标注中发现的别名、新故障模式、新工艺术语和规则歧义提交本体更新流程（b1038、b1039）。四类提交项的识别方式与提交内容见表 4-15。

表 4-15　四类本体回流项的识别与提交

| 回流类型 | 识别方式 | 提交内容 | 评审关注点 |
|---|---|---|---|
| 别名 | 标注人员手动标记「这是某标准术语的现场说法」；或自动检出——未能归一的文本片段与某主词条在上下文分布上高度相似 | 别名文本、建议归属主词条、出现频次、首次出现批次、证据样本不少于 3 条 | 是否确为同义；是否存在一词多义风险 |
| 新故障模式 | 标注人员在候选集中找不到合适模式并选择「新增」；或冲突归因中反复出现「本体缺项」 | 模式名称、所在部件、典型现象、检出手段、与既有模式的区别、证据样本 | 是否可归入既有模式的子类；检出手段是否可操作 |
| 新工艺术语 | 图纸与工艺文件解析中出现的未登记符号、工序名、工装名 | 术语文本、所属工艺环节、来源文件、建议类目 | 是否为企业内部惯用写法；是否需同步工序字典 |
| 规则歧义 | 同一规则在不同样本上导致矛盾结论；或多名标注人员对同一规则的理解不一致 | 规则编号、歧义描述、导致矛盾的样本对、各方理解 | 规则表述如何收紧；是否需拆为多条 |

回流不是把发现的东西直接写进本体。四类提交项先进入待评审池，按频次与影响面排序，由本体评审机制取舍后才进入本体新版本。评审机制、评审周期与参与角色在数据治理体系（任务 T4A、T4B）规定，本工具的职责是把线索完整地、带证据地提交上去，并在提交后跟踪状态（待评审／已采纳／已驳回／合并至其他条目），把采纳结果回写到相关历史标注的待重校验清单。

##### 4.6.5 输入输出接口

表 4-15A　一致性校验标注工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 多路标注结果 | 标注任务批次标识；多人／多模型／人机交叉的各路产出 | 多路未齐时不计算指标，避免偏高 |
| 输入 | 交叉方式与指标集 | 表 4-13 交叉方式、表 4-14 指标集、分歧阈值、裁决规则版本 | 按任务类型选取指标，不适用项拒收 |
| 输出 | 一致性指标 | 一致率、冲突率、κ／α、跨度重叠等；按任务／人员／来源／批次分组 | 不只给一个总值 |
| 输出 | 分歧与裁决 | 分歧点、各路取值、裁决结论、所依据规则条款与版本 | 裁决无依据条款的不得入库 |
| 输出 | 返工与规范反馈 | 返工清单、反复出现的同类分歧 → 规范修订建议 | 与报告模板表 4-16 字段对齐 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.7（表 8-14、表 8-15）。

##### 4.6.6 输出样例

一条一致性校验与裁决出参样例（节选）：

```json
{
  "annotation_task_id": "ANN-QUAL-2027Q1-016",
  "cross_mode": "双人独立标注＋分歧裁决",
  "consistency_metrics": {
    "overall": {"agreement_rate": 0.81, "conflict_rate": 0.12, "cohen_kappa": 0.74},
    "by_annotator_role": {
      "标注人A": {"agreement_rate": 0.88},
      "标注人B": {"agreement_rate": 0.79}
    },
    "by_source": {"不合格品票": {"agreement_rate": 0.72}, "交检记录": {"agreement_rate": 0.91}}
  },
  "disagreements": [
    {
      "sample_id": "SMP-QC-004812",
      "field": "defect_class",
      "values": {"标注人A": "咬边", "标注人B": "余高超差"},
      "type": "标签不兼容",
      "span_iou": null
    }
  ],
  "arbitrations": [
    {
      "sample_id": "SMP-QC-004812",
      "conclusion": "咬边",
      "rule_ref": {"clause": "缺规§3.2.4", "version": "ARB-v1.2"},
      "role": "领域专家",
      "rationale": "坡口边缘金属缺损特征符合咬边定义；余高超差另列检验项且本样本未测余高"
    }
  ],
  "rework_list": [{"sample_id": "SMP-QC-004812", "scope": "同来源咬边／余高边界样本 36 条", "reason": "规范边界不清"}],
  "spec_feedback": [{"topic": "咬边与余高边界", "freq": 14, "action": "修订规范并附判例"}],
  "batch_id": "CONS-2027Q1-016",
  "tool_id": "consistency-check", "tool_version": "1.0.4"
}
```

样例核对要点：指标按标注人与来源分组；每条裁决带规则条款与版本。

##### 4.6.7 质量口径、验收与回退

本工具的质量口径与标注质量报告合并呈现：批次／周期报告字段见表 4-16；接口层可核对项见第八节表 8-15。首期基线：整体一致率不低于表 4-14 建议值；低于门限时整批返工并触发规范复核，而不是只退单条样本。达不到口径时的回退：多路未齐不报部分指标；裁决无条款转专家裁决并进规范修订队列；同类分歧反复出现则进 `spec_feedback` 有界迭代。

#### 4.7 标注质量报告

招标文件在本类工具的总述中要求产出标注质量报告（b1008、b1009）。报告由一致性校验工具按批次与周期生成，模板字段见表 4-16。

表 4-16　标注质量报告的模板字段

| 章节 | 字段 | 说明 |
|---|---|---|
| 报告标识 | 报告编号、生成时刻、统计周期、覆盖批次清单 | 报告本身版本化、可复算 |
| 规范与本体版本 | 所依据的标注规范版本、本体版本、判例库版本 | 用于判断不同报告之间是否可直接比较 |
| 产量 | 按任务类型、数据集、业务域统计的标注条数；预标注条数与人工条数分列；四档协同方式的分布 | 产量与质量分开陈述，不混为一个综合分 |
| 一致性 | 表 4-14 各项指标按任务类型、来源、批次分别统计；与上一周期对比 | 不合格项逐条列出并注明归因分类 |
| 复核与裁决 | 复核条数、修改率、驳回率、专家裁决条数；修改原因分布 | 修改率按标注人员角色统计，不列姓名 |
| 冲突与剔除 | 本体约束校验的冲突条数按七类约束分布；剔除与降级条数；假冲突率 | 附冲突清单引用，不在报告正文列全部明细 |
| 置信度标定 | 各档阈值当期取值、高置信档抽检通过率、低置信档不一致比例 | 用于判断阈值是否需要复标 |
| 本体回流 | 本周期提交的四类回流项条数与状态分布；已采纳项对历史标注的影响范围 | 与本体更新影响评估报告相互引用 |
| 待办与建议 | 规范待修订条目、本体待补条目、采集质量待整改点位、需追加人力的任务类型 | 每条附依据数据与建议优先级 |

报告按批次生成简版、按月生成完整版，按季度生成含趋势分析的汇总版。报告是数据集质量评测（任务 S3）与数据集质检（任务 T1B）的输入之一，三者的指标定义保持一致，避免同一个一致率在三处报出三个数。报告模板的样例文本在标准规范与报告模板附件（任务 A2）中给出。

### 五、数据生成与增强类工具链（3.2.3.7）

#### 5.1 这一类工具要解决的现场问题

本类工具回应招标文件 3.2.3.7 节（b1040）。该节要求提供面向训练数据扩充、长尾场景补齐、表达多样化和稀缺样本构造的数据生成与增强能力，用于生成指令数据、模拟工单故障场景、扩展排障对话，并对已有文本进行语义保持的重写增强，覆盖种子指令管理、指令进化、受控合成、故障场景模拟、文本改写和生成质量过滤等环节（b1041）。

这一类工具解决的是「量不够、分布不均」的问题，而本项目在这两方面的缺口是具体的、可以指名道姓的。指令微调数据集要 89 万条，强化学习偏好数据要 6.6 万组，全靠从历史记录中抽取与人工编写是做不出来的。更要紧的是长尾：甲方的故障记录与数据段没有配对，历史数据没有事件级标签，稀缺但后果严重的情形（断链、异物卡阻、特定材料批次的热处理异常）在历史样本里可能只有个位数条记录。模型在这种分布上训练，对常见情形应对自如，对真正要紧的情形毫无把握。

与此同时，合成数据是有风险的。生成出来的样本如果脱离工程实际，训练出的模型会学到一套看着像真的、实际上不成立的知识；如果生成分布过于集中，模型会在少数表达方式上过拟合；如果改写时把关键数值或安全约束改掉了，样本就成了错误知识的载体。本项目涉及井下装备，安全约束不能动。

因此本类工具的设计有三条贯穿始终的原则，分别对应三个工具。

第一条，生成必须有依据。指令数据生成的依据是种子指令、领域文档与任务模板；故障场景生成的依据是领域本体、历史工单分布与业务规则；文本重写的依据是已有的高质量原始样本。三个工具都不从零凭空编造，而是在既有事实的基础上做扩展、组合与变换。

第二条，生成必须可标识。每一条合成样本都带来源记录，写明由哪个工具、依据哪些素材、用哪一版模板与哪一代模型生成。这不是形式要求——训练侧需要按合成比例控制配比，评测侧需要排除合成样本，质检侧需要在发现问题样本时定位同源批次。没有标识，这三件事都做不了。

第三条，生成必须过滤。生成之后的过滤比生成本身更重要。本类工具配置了四道过滤（规则校验、模型评分、重复检测、人工抽检），并且约定一条：过滤的通过门限由数据集用途决定——用于预训练的样本门限较宽，用于指令微调的较严，用于偏好数据的最严，评测集不接受合成样本。

#### 5.2 输入输出全景与合成配比控制

招标文件列明了本类工具应能基于的输入与应当生成的产出（b1042）。全景对照见表 5-1。

表 5-1　数据生成与增强类工具链的输入与产出对照

| 招标文件所列输入 | 本项目中的具体来源 | 招标文件所列产出 | 由哪个工具生成 |
|---|---|---|---|
| 种子指令 | 由业务骨干编写的典型问法，以及从历史问答、工单、技术交流记录中抽取并经人工确认的问法 | SFT 指令样本 | 指令数据生成（3.2.3.7.1） |
| 领域文档 | 企业制度、技术标准、工艺规程、设备手册、历史标书、工程资料 | 合成工单 | 工单与故障场景模拟生成（3.2.3.7.2） |
| 任务模板 | 按七类任务配置的生成模板，与预标注模板共用版本管理机制 | 增强文本样本 | 文本重写与多样化（3.2.3.7.3） |
| 历史工单 | 服务工单、生产工单、不合格品票、改造方案 | 生成批次 | 三个工具均以批次为调度单位 |
| 设备本体 | 本体七域中的设备、部件两域 | 合成日志 | 三个工具的生成日志按统一格式记录 |
| 故障知识库 | 本体故障域、故障名录、四档证据分级、检出手段对应关系 | —— | —— |
| 场景模板 | 按业务域与场景编写的情境框架（工况、人员角色、时间线、可观察信息） | —— | —— |
| 业务约束 | 工序前后依赖与禁止条件、安全规则、井下使用限制、参数边界 | —— | —— |
| 高质量原始样本 | 已通过质检与一致性校验的标注样本 | —— | —— |
| 术语保护词表 | 企业术语主词条、别名表、不可改写项清单 | —— | —— |
| 语义校验模型 | 经统一网关接入的向量表示与语义判别能力 | —— | —— |

合成样本在各数据集中的配比需要事先定好并在数据卡中披露。配比建议见表 5-2。建议的依据是各数据集的用途：预训练对表达多样性的需求大于对事实精确性的需求，指令微调反之，评测集则不接受合成样本。

表 5-2　合成与增强样本在四大数据集中的配比建议

| 数据集 | 规模 | 合成与增强样本配比建议 | 理由与约束 |
|---|---|---|---|
| 预训练数据集 | 615 亿 Token（供需 276＋工艺 70＋制造 105＋质量 164） | 增强文本（重写与多样化）不超过 20%；不含凭空生成的事实性内容 | 预训练需要表达多样性；但重写样本与原文同源，过高配比会放大原文的分布偏差 |
| 指令微调数据集 | 89 万条（40＋10＋15＋24） | 合成指令样本可占较大比例，但须满足：每条有可追溯依据、按表 5-5 控制分布、四道过滤全部通过 | 这是本类工具的主产出场；人工编写的种子指令与经确认的真实问法作为分布锚点 |
| 强化学习偏好数据 | 6.6 万组（3.2＋0.8＋1＋1.6） | 回答候选可由模型生成，优劣判断以人工为主；纯模型判定的偏好组单独标识并限比例 | 偏好数据的价值在于反映人的判断；若判断也由模型给出，等于把模型偏差固化 |
| 基准测试数据集 | 0.95 万条（0.4＋0.1＋0.2＋0.25） | 不接受合成样本 | 评测集是验收与迭代的尺子；合成样本入评测集会使指标系统性偏高 |

表中「不接受合成样本」一条是硬约束，与数据集质量评测方案（任务 S3）和数据集验证（任务 T1B）保持同一口径。基准测试集的条目由人工依据真实事实构造或从真实记录中挑选并标注，构造过程本身记录在案。

#### 图 5-1　数据生成与增强类三个工具的素材来源、生成路径与过滤门限

<svg viewBox="0 0 820 440" xmlns="http://www.w3.org/2000/svg" font-family="Noto Sans CJK SC, PingFang SC, SimHei, sans-serif" font-size="12.5">
  <defs>
    <marker id="t2b-a9" 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="8" y="8" width="804" height="424" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <text x="24" y="28" font-size="13" font-weight="bold">素材侧（均为已存在的事实或经确认的人工输入）</text>
  <rect x="24" y="36" width="185" height="42" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="116" y="54" text-anchor="middle" font-size="11">种子指令·任务模板</text>
  <text x="116" y="70" text-anchor="middle" font-size="11">领域文档</text>
  <rect x="217" y="36" width="185" height="42" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="309" y="54" text-anchor="middle" font-size="11">历史工单·设备本体</text>
  <text x="309" y="70" text-anchor="middle" font-size="11">故障知识库·场景模板</text>
  <rect x="410" y="36" width="185" height="42" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="502" y="54" text-anchor="middle" font-size="11">高质量原始样本</text>
  <text x="502" y="70" text-anchor="middle" font-size="11">术语保护词表</text>
  <rect x="603" y="36" width="193" height="42" rx="5" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="699" y="54" text-anchor="middle" font-size="11">业务约束</text>
  <text x="699" y="70" text-anchor="middle" font-size="11">工序依赖·安全规则·参数边界</text>

  <path fill="none" d="M116 78 V116" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M309 78 V116" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M502 78 V116" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M699 78 V96 H640" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3"/>
  <path fill="none" d="M640 96 V116" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M640 96 H260 V116" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-a9)"/>

  <rect x="24" y="116" width="185" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="116" y="136" text-anchor="middle" font-weight="bold" font-size="12">3.2.3.7.1</text>
  <text x="116" y="152" text-anchor="middle" font-size="11">指令数据生成</text>
  <text x="116" y="166" text-anchor="middle" font-size="11">7 类任务·进化·分布控制</text>

  <rect x="217" y="116" width="185" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="309" y="136" text-anchor="middle" font-weight="bold" font-size="12">3.2.3.7.2</text>
  <text x="309" y="152" text-anchor="middle" font-size="11">工单与故障场景模拟</text>
  <text x="309" y="166" text-anchor="middle" font-size="11">工单·故障树·排障对话</text>

  <rect x="410" y="116" width="185" height="56" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="502" y="136" text-anchor="middle" font-weight="bold" font-size="12">3.2.3.7.3</text>
  <text x="502" y="152" text-anchor="middle" font-size="11">文本重写与多样化</text>
  <text x="502" y="166" text-anchor="middle" font-size="11">六风格·术语与事实保护</text>

  <path fill="none" d="M116 172 V206" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M309 172 V206" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M502 172 V206" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <text x="520" y="196" font-size="11">带 synthesis_source 等来源字段</text>

  <rect x="24" y="206" width="776" height="44" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="412" y="225" text-anchor="middle" font-weight="bold">四道过滤：① 规则校验　② 模型评分　③ 重复与近重复检测　④ 人工抽检</text>
  <text x="412" y="243" text-anchor="middle" font-size="11">剔除低质量·幻觉·越权·格式错误·语义漂移样本；门限按数据集用途分档</text>

  <path fill="none" d="M140 250 V290" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M340 250 V290" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M540 250 V290" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>
  <path fill="none" d="M724 250 V290" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-a9)"/>

  <rect x="24" y="290" width="232" height="52" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="140" y="310" text-anchor="middle" font-size="11">预训练数据集 615 亿 Token</text>
  <text x="140" y="328" text-anchor="middle" font-size="11">增强文本配比 ≤20%</text>

  <rect x="264" y="290" width="152" height="52" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="340" y="310" text-anchor="middle" font-size="11">指令微调 89 万条</text>
  <text x="340" y="328" text-anchor="middle" font-size="11">主产出场</text>

  <rect x="424" y="290" width="232" height="52" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="540" y="310" text-anchor="middle" font-size="11">偏好数据 6.6 万组</text>
  <text x="540" y="328" text-anchor="middle" font-size="11">候选可生成，优劣以人工为主</text>

  <rect x="664" y="290" width="136" height="52" rx="5" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="732" y="310" text-anchor="middle" font-size="11">基准测试 0.95 万条</text>
  <text x="732" y="328" text-anchor="middle" font-size="11">不接受合成样本</text>

  <rect x="24" y="356" width="776" height="62" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="38" y="376" font-weight="bold">三条贯穿原则：</text>
  <text x="140" y="376">生成有依据（不凭空编造）｜生成可标识（来源字段完整）｜生成必过滤（门限按用途分档）</text>
  <text x="38" y="396" font-weight="bold">责任边界：</text>
  <text x="124" y="396">本章交付生成与增强工具及其配比口径；合成样本的入库准入由数据集质检（T1B）判定，</text>
  <text x="38" y="412">评测集的构造与隔离口径见数据集质量评测方案（S3）。</text>
</svg>

图 5-1　数据生成与增强类三个工具的素材来源、生成路径与过滤门限。数据来源：招标文件第五章 3.2.3.7 节（b1040—b1042）；四大数据集规模依招标文件逐数据集规模表。

#### 5.3 指令数据生成工具链（3.2.3.7.1）

本节回应招标文件 3.2.3.7.1 节（b1043）及其六项要求。

##### 5.3.1 七类任务的覆盖

工具支持基于种子指令集批量生成指令响应数据，覆盖知识问答、推理分析、信息抽取、摘要、分类、工具调用和多模态描述等任务类型（b1044、b1045）。七类任务在本项目中的具体落法见表 5-3。表中每类任务都给出了矿山装备制造场景下的实例，因为这一类工具最容易写成通用方案，而通用指令数据对行业模型的作用有限。

表 5-3　七类指令任务在本项目中的具体落法

| 任务类型 | 本项目中的指令实例 | 依据素材 | 答案的可核对方式 |
|---|---|---|---|
| 知识问答 | 「Q355B 钢板厚度 16mm 做 90 度压弯，中性层系数取多少？依据是什么？」 | 材料本体、工装台账、工艺规程 | 答案中的数值须能在台账或规程中定位，答案附依据条目编号 |
| 推理分析 | 「某工作面铺设长度 320 米、倾角 12 度、年产 600 万吨，现配机型的链条按功率口径安全系数不足，可能的调整方向有哪些？」 | 选型校核公式、机型型谱、历史选型方案 | 推理链条的每一步可按公式复算；结论给出多个方向而非单一答案 |
| 信息抽取 | 「从下列工单正文中抽出设备、部件、故障现象、处置措施，以表格给出。」 | 已标注的工单样本（来自第四节） | 抽取结果与标注结果比对，严格匹配与宽松匹配分别计分 |
| 摘要 | 「总结这份热处理工艺规程对保温时间的要求，按材料牌号分列。」 | 工艺规程、技术标准 | 摘要中的每项要求须回指原文章节 |
| 分类 | 「判断这条不合格品票属于哪一类缺陷，并说明检出手段。」 | 企业缺陷分类表、检出手段对应关系 | 分类标签取自封闭标签集，可与人工标注比对 |
| 工具调用 | 「查询施工号 SG-2027-0318 的物料清单中，提前期超过 60 天的外购件。」 | 接口定义、参数规范、权限约束 | 生成的调用参数可按接口定义做结构校验；返回结果的正确性由接口侧保证 |
| 多模态描述 | 「描述这张关键帧中焊接部位的可见状态，并指出画面中可读取的设备面板读数。」 | 帧级对齐记录（来自第三节） | 描述与对齐记录中的 `visual_desc`、`panel_readings` 比对 |

七类任务按四个业务域分别设定生成数量，数量分配与四大数据集的域内规模保持一致：供需计划域、产品工艺设计域、制造过程域、质量域。工具按域与任务类型的二维配额组织生成批次，配额表随进度调整并记入批次留痕。

##### 5.3.2 种子指令管理

工具支持种子指令管理，维护任务类型、业务领域、难度等级、输入输出格式和参考答案（b1046、b1047）。种子指令库的字段设计见表 5-4。

表 5-4　种子指令库的字段设计

| 字段 | 说明 | 取值与约束 |
|---|---|---|
| `seed_id` | 种子指令编号 | 全局唯一 |
| `task_type` | 任务类型 | 取自表 5-3 的七类，封闭取值 |
| `domain` | 业务领域 | 供需计划／产品工艺设计／制造过程／质量，四域封闭取值 |
| `sub_scene` | 细分场景 | 如选型校核、备料工艺、库存控制、热处理、焊接、健康诊断及通用信息类场景 |
| `difficulty` | 难度等级 | 一至五级：一级为单跳事实查询，三级需跨文档综合，五级需多步推理并处理冲突信息 |
| `instruction` | 指令文本 | 人工编写或从真实问法中抽取并经确认 |
| `input_format` | 输入格式 | 纯文本／文本＋附件／结构化参数／图像／时序片段 |
| `output_format` | 输出格式 | 自由文本／表格／结构化字段／带引用的答案／调用参数 |
| `reference_answer` | 参考答案 | 人工撰写或经人工确认；附依据来源 |
| `answer_checkable` | 答案可核对方式 | 可复算／可定位原文／可与标注比对／需人工判断 |
| `source` | 种子来源 | 业务骨干编写／历史问答抽取／工单抽取／技术交流记录抽取 |
| `evolve_from` | 进化来源 | 若本条由其他种子进化而来，记录父条编号与所用算子 |
| `status` | 状态 | 草稿／已确认／已停用；已停用的种子不参与生成但保留血缘 |
| `ontology_refs` | 关联本体节点 | 用于按本体类目统计覆盖情况，发现未被任何种子覆盖的类目 |

种子指令库的建设方式分两条路。一条是业务骨干编写，覆盖典型与关键问法，数量不大但质量高；这部分需要甲方各业务口的参与，具体安排与工时在实施计划中明确。另一条是从历史记录中抽取真实问法，覆盖面广且贴近实际表达，但需要人工确认与改写。两条路的产出都进同一个库，`source` 字段区分，便于后续分析哪类来源的种子衍生出的样本质量更高。

种子库本身要做覆盖分析。按 `ontology_refs` 统计本体类目的覆盖情况，找出「本体中有定义但没有任何种子指令涉及」的类目——这些是指令数据集的盲区。盲区清单按本体类目的业务重要性排序，补种子指令的优先级据此确定。

##### 5.3.3 指令进化

工具支持指令进化生成能力，对原始指令进行难度提升、约束增加、场景迁移、任务组合和表达变化，形成多层次训练样本（b1048、b1049）。五种进化算子的做法与控制见表 5-5。

表 5-5　五种指令进化算子

| 算子 | 做法 | 本项目中的示例 | 控制要点 |
|---|---|---|---|
| 难度提升 | 把单跳问题改为多跳；把给定条件齐全的问题改为需先确认缺失条件的问题；引入需要排除的干扰信息 | 由「中性层系数取多少」提升为「图纸只给了板厚与折弯角度，未注明模具，应如何确定展开长，需补哪些信息」 | 难度等级逐级提升，不跳级；提升后的参考答案须重新确认 |
| 约束增加 | 追加输出格式约束、字数约束、必须引用依据的约束、必须给出不确定性说明的约束 | 由「分析原因」增加为「分析原因，按证据等级分档列出，每档注明所依据的检测手段」 | 约束须可验证，否则无法用于过滤 |
| 场景迁移 | 把一个业务域的指令迁移到另一个域的同构问题上 | 把热处理的「同批次横向比对」问法迁移到焊接的「同型部件参数横向比对」 | 迁移后须核对该域确有对应业务；不存在对应业务的迁移作废 |
| 任务组合 | 把两类任务串成一条指令，前一步的输出作为后一步的输入 | 「先从工单中抽取故障现象，再按故障名录给出候选故障模式及其检出手段」 | 组合深度不超过三步；每步的中间产物在参考答案中分步给出 |
| 表达变化 | 同一问题改为不同措辞、不同语气、不同详略程度、含错别字与口语化的真实表达 | 把「请核算链条安全系数」改为口语化的「这个链子按功率算够不够」 | 表达变化不改变问题语义；变化后的样本与原样本标为同族，防集合切分泄漏 |

指令进化容易出现两个问题，工具各有对策。一是进化失控——连续多轮进化后，指令与原始业务问题脱节，变成一道只有文字难度没有业务意义的题。对策是限制进化代数（默认不超过三代），每一代进化后抽样人工确认，确认不通过的分支整支作废。二是同族爆炸——一个种子进化出大量相似样本，使数据集表面量大实际多样性低。对策是按种子统计衍生样本数并设上限，同族样本在分布控制中按一条计权。

##### 5.3.4 分布控制

工具支持按领域、任务、难度、长度、来源和质量等级控制生成分布，避免生成数据集中于单一场景或单一表达方式（b1050、b1051）。六个维度的控制方式见表 5-6。

表 5-6　分布控制的六个维度

| 维度 | 控制方式 | 目标分布的确定依据 | 偏离时的动作 |
|---|---|---|---|
| 领域 | 按四个业务域设配额，配额与四大数据集的域内规模比例对应 | 招标文件逐数据集规模表的域内分配（供需 276／工艺 70／制造 105／质量 164 等） | 配额不足的域暂停其他域的生成，优先补齐 |
| 任务 | 按七类任务设配额；配额按场景验证对各类能力的需求权重确定 | 六个专业场景与通用信息类场景的能力需求 | 同上，按配额补齐 |
| 难度 | 一至五级设目标比例，中间难度占主体，两端留足样本 | 建议比例 10%／25%／35%／20%／10%，依据是模型训练中难度梯度的常用安排，首期标定后按评测表现调整 | 偏离超过门限时在后续批次中定向生成缺口档位 |
| 长度 | 按指令长度与答案长度分桶统计，各桶设上下限 | 从真实问法的长度分布估计 | 过长过短样本按比例裁减，不直接删除 |
| 来源 | 按种子来源与进化代数统计，限制单一来源与单一代数的占比 | 单一种子衍生样本上限、单一代数占比上限 | 超限时暂停该来源的衍生生成 |
| 质量等级 | 按过滤环节给出的质量评分分档，限制低分档入库比例 | 按数据集用途分档的门限（见 5.2） | 低分档超限时整批退回并排查生成模板 |

分布控制有一条实现要点：控制在生成前做，不在生成后筛。先按配额算出各单元格还需多少条，再按单元格派发生成任务；生成后统计实际分布与目标的偏差，偏差进入下一轮配额。若反过来——先大量生成再筛选到目标分布——会浪费大量调用成本，且被筛掉的样本中可能包含稀缺单元格里本就不多的样本。

##### 5.3.5 生成质量过滤

工具支持规则过滤、模型评分、人工抽检和重复检测，剔除低质量、幻觉、越权和格式错误样本（b1052、b1053）。四道过滤的检查项见表 5-7。

表 5-7　四道生成质量过滤的检查项

| 过滤 | 检查项 | 判定方式 | 处置 |
|---|---|---|---|
| 规则过滤 | 格式是否符合 `output_format` 声明；必填部分是否齐全；数值是否带单位且在物理与量程范围内；是否出现禁止内容（个人姓名、客户敏感信息、超出授权范围的数据） | 程序判定，逐项可复算 | 不通过直接剔除并记录原因；越权类不通过另记安全事件 |
| 模型评分 | 答案与指令的相关性；答案是否有事实依据且依据可定位；推理步骤是否自洽；表达是否符合技术文档规范 | 由模型按评分量表打分，量表含分档描述与示例；多次采样取中位数 | 分数低于门限的剔除；处于门限附近的送人工抽检 |
| 重复检测 | 完全重复；近重复（文本相似度超门限）；语义重复（向量相似度超门限）；同族过度繁殖（单种子衍生数超上限） | 三级检测依次执行，由廉价到昂贵 | 完全重复与近重复去重保留其一；语义重复按分布控制需要保留或剔除；同族超限的裁减 |
| 人工抽检 | 按批次抽样，由熟悉该业务域的人员判断样本是否符合工程实际、答案是否正确、是否存在误导性内容 | 抽检表含通过／可改／不通过三档与原因分类 | 批次不通过率超过门限时整批退回；发现系统性问题时修订生成模板并把问题写入回归样例 |

幻觉的检出需要单独说明，因为这是合成数据最主要的风险。本工具的做法是把幻觉拆成三种可检的形态。一是无依据的事实陈述——答案中出现了具体数值、型号、标准编号或结论，但在给定素材中找不到对应；检出方式是对答案中的事实性片段做依据定位，定位失败的标为无依据。

二是依据错位——答案引用了素材中的内容，但引用位置与内容不符；检出方式是比对引用位置的原文与答案表述。三是过度确定——素材中本是条件性或存疑的表述，答案把它说成确定结论；检出方式是检查素材片段中的限定词是否在答案中保留。三种形态分别检出后合并统计，作为该批次的幻觉率指标。

越权样本的检出依据数据分级与权限规则。指令数据生成过程中可能产生涉及超出授权范围的数据查询，或答案中包含不应向该角色披露的信息。工具按本项目数据分级办法对答案内容做密级判定，密级高于该样本声明的使用范围时剔除并记录。相关分级依据 GB/T 43697—2024《数据安全技术 数据分类分级规则》与 GB/T 38667—2020《信息技术 大数据 数据分类指南》，具体规则见安全方案（任务 T10）。

##### 5.3.6 基于本体与历史分布的故障场景生成

工具支持基于领域本体、历史工单分布和业务规则生成故障场景，能够组合设备、部件、故障模式、现象、原因、处置流程、备件和安全约束（b1054、b1055）。这一项在招标文件中列于指令数据生成工具之下，其实现与 3.2.3.7.2 工单与故障场景模拟生成工具共用同一套场景生成器；本节说明生成器的组合逻辑，具体产出形态在 5.4 节展开。

八个要素的组合不是自由排列。组合受三层约束，见表 5-8。

表 5-8　故障场景八要素的组合约束

| 约束层 | 约束内容 | 来源 | 违反时的处置 |
|---|---|---|---|
| 本体约束 | 部件必须属于该设备；故障模式必须是该部件的允许模式；现象必须是该模式的已知现象；备件必须与该部件匹配 | 本体七域及其关系定义 | 组合作废，不生成 |
| 分布约束 | 组合出现的频次须与历史工单分布大致相称；长尾组合按定向补齐配额生成，不按自然频次 | 历史服务工单的统计分布 | 超出频次上限的组合暂停生成；长尾组合按配额单独派发 |
| 业务规则约束 | 处置流程须符合工序依赖与禁止条件；涉及井下作业的处置须命中安全规则检查；备件更换须符合在产状态与替代关系 | 工序字典、安全规则本体、备件台账 | 命中安全约束的场景标记为需安全复核，经确认后方可入库 |

长尾组合的定向补齐是这个生成器的主要价值。历史工单分布中出现次数为零或个位数的故障模式，按自然频次生成等于不生成；而这些恰恰是模型最需要见过的情形。工具的做法是：从本体中列出所有「已定义但历史样本不足」的故障模式，按业务重要性（后果严重程度、井下处置难度）排序，为每个模式生成一定数量的场景样本，数量按配额设定。这些样本标明为长尾补齐样本，训练时可按需调整采样权重，评测时不使用。

需要如实说明一点：长尾补齐样本的事实性依赖本体与业务规则的完备程度。本体中对某个稀缺故障模式的现象、原因与处置描述若本身不够准确，生成的场景也不会准确。因此长尾补齐样本的人工抽检比例高于常规样本，首期取 20%，并由熟悉该类故障的人员审核。抽检发现本体描述不准确时，按 4.6.4 的流程提交本体更新。

##### 5.3.7 输入输出接口

表 5-8A　指令数据生成工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 种子指令库 | 种子引用与版本（表 5-4 字段） | 已确认种子才参与生成 |
| 输入 | 任务与配额 | 任务类型清单、配额配置版本、目标条数、进化算子 | 配额生成前派发；`eval_use` 固定为假 |
| 输入 | 素材范围 | 领域文档、本体标签、结构化素材的版本引用 | 素材不可读则该路不参与；全部不可读则不启动 |
| 输出 | 指令样本 | 任务类型、难度、素材引用、合成标记、可追溯依据 | 流式写出；无依据样本不产出 |
| 输出 | 过滤与分布报告 | 四道过滤逐道计数、六维分布与配额偏差 | 可当场核对过滤是否生效 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.8（表 8-16、表 8-17）。

##### 5.3.8 输出样例

```json
{
  "record_id": "GEN-SFT-2027071400913",
  "task_type": "推理分析",
  "domain": "供需计划",
  "sub_scene": "选型校核",
  "difficulty": 4,
  "instruction": "某工作面铺设长度 320m、倾角 12°、设计年产 600 万吨，现拟配置的机型按功率口径核算链条实际安全系数为 4.6，低于门限。请分析可调整的方向，按可行性排序，并说明每个方向需要补充确认哪些参数。",
  "input_format": "结构化参数",
  "output_format": "带引用的答案",
  "response": "可调整方向按可行性排序如下。……（正文略，共 1 142 字，含三个方向与各自需确认的参数清单）",
  "answer_evidence": [
    {"claim": "链条理论安全系数门限取值", "locator": "选型校核契约 v3 / 第 4.2 条"},
    {"claim": "可选链环直径档位", "locator": "标准化部件库 / 链条型谱表"},
    {"claim": "按功率口径与按力口径的区别", "locator": "选型校核契约 v3 / 第 3.1 条"}
  ],
  "answer_checkable": "可复算",
  "provenance": {
    "synthesis_source": "seed_evolution",
    "seed_id": "SEED-XX-00417",
    "evolve_chain": [
      {"gen": 1, "operator": "难度提升", "from": "SEED-XX-00417"},
      {"gen": 2, "operator": "约束增加", "note": "追加「说明需补充确认的参数」"}
    ],
    "teacher_model": "gw-llm/v7",
    "template_version": "tpl-sft-reason-0207",
    "sampling_params": {"temperature": 0.7, "top_p": 0.95, "n_samples": 3, "selected": "评分中位数"}
  },
  "filters": {
    "rule": {"result": "通过", "checks": ["格式合规", "数值带单位", "无禁止内容", "无越权数据"]},
    "model_score": {"relevance": 4.5, "evidence_grounded": 4.0, "reasoning_coherence": 4.5,
                    "style": 4.0, "scale": "1–5", "threshold": 3.5, "result": "通过"},
    "hallucination": {"unsupported_claims": 0, "misattributed_refs": 0, "overconfident_statements": 1,
                      "detail": "一处将「通常」表述为「应当」，已在人工抽检中修改", "result": "修改后通过"},
    "dedup": {"exact": "无", "near_dup_max_sim": 0.71, "semantic_max_sim": 0.78,
              "family_size": 6, "family_limit": 12, "result": "通过"},
    "human_sample": {"sampled": true, "verdict": "可改", "editor_role": "选型业务骨干",
                     "edits": 1, "note": "措辞由「应当」改为「通常」"}
  },
  "distribution_tags": {"length_bucket": "L3(800–1500字)", "quality_tier": "A", "source_tier": "种子进化"},
  "dataset_target": "指令微调数据集 / 供需计划域",
  "confidence": 0.88, "review_state": "人工通过",
  "tool_id": "sft-gen", "tool_version": "1.6.0", "config_version": "cfg-gen-2027Q3-01",
  "batch_id": "B-20270714-GEN-031"
}
```

样例中 `filters.hallucination` 一项记录了一次实际修改：模型把素材中的「通常」写成了「应当」，属于过度确定型幻觉。这类问题规则过滤检不出来、模型评分也容易放过，是人工抽检的主要价值所在。记录下来之后，这个错误模式会写入生成模板的回归样例，后续批次在该模式上做专项检查。

##### 5.3.9 质量口径、验收与回退

表 5-9　指令数据生成工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 规则过滤通过率 | 不低于 90% | 按批次统计 | 通过率过低说明生成模板的格式约束不清，修订模板并补充示例 |
| 幻觉率 | 无依据事实陈述占比不高于 3%，并逐步接近更低水平 | 抽样 300 条做依据定位核查 | 超限时收紧素材范围（只允许引用给定素材）、降低采样温度、提高人工抽检比例 |
| 人工抽检通过率 | 通过与可改合计不低于 90%，不通过不高于 10% | 按批次抽样 5%（长尾补齐样本 20%） | 不通过率超限整批退回；连续两批超限暂停该任务类型生成，先修订模板 |
| 分布偏差 | 六个维度的实际分布与目标分布的偏差均不超过 10 个百分点 | 按批次与累计两个口径统计 | 偏差超限时在后续批次定向补齐，并在数据卡中披露当期偏差 |
| 去重后有效产出率 | 不低于 80% | 统计去重前后条数 | 产出率过低说明进化算子多样性不足，调整算子配比并提高种子覆盖 |
| 长尾类目覆盖 | 本体中业务重要性为高的故障模式，每个至少有配额内数量的场景样本 | 按类目核对 | 覆盖不足的类目在数据卡中列为缺口，不以降低抽检标准的方式凑数 |
| 评测集隔离 | 基准测试集中合成样本条数为零 | 发布前按 `synthesis_source` 字段核对 | 发现合成样本时该版本评测集不予发布，重做构造并说明影响范围 |

#### 5.4 工单与故障场景模拟生成工具链（3.2.3.7.2）

本节回应招标文件 3.2.3.7.2 节（b1056）及其两项要求。

##### 5.4.1 这一条要解决的问题

甲方的售后服务口要求把既有远程运维平台从阈值报警推进到可解释诊断，输出形态是按证据等级给出的部件级异常判断、处置建议与检查顺序。要让模型具备这个能力，需要大量「从现象出发、逐步收敛到部件与原因、给出处置与检查顺序」的推理样本。而现场的实际情况是：维修事实没有结构化记录，历史数据没有事件级标签，故障样本须靠回填与回溯配对形成。真实的完整推理过程基本没有留痕——工程师到现场看一眼就知道怎么办，不会把推理过程写下来。

本工具的作用是把本体中的故障知识与历史工单中的真实片段，组合成完整的推理样本。生成内容是将本体故障知识与历史工单片段展开为完整叙述，而非虚构未定义故障。设计约束：每条内容须回指本体节点或历史工单片段，不允许出现本体中没有的故障模式、现象或处置措施。

##### 5.4.2 六类产出形态

工具支持生成工单描述、故障树、诊断推理、维修建议、复盘总结和多轮排障对话（b1057、b1058）。六类产出的内容要点与用途见表 5-10。

表 5-10　六类产出形态的内容要点与用途

| 产出形态 | 内容要点 | 字数与结构 | 主要用途 |
|---|---|---|---|
| 工单描述 | 报修时间、报修人角色、设备与部件、现象描述（按现场人员的真实表达方式，含不精确与口语化表述）、已采取的临时措施、当时可观察到的信息 | 100–400 字，自由文本 | 训练模型从不规范的现场描述中提取要素；作为信息抽取与分类任务的输入 |
| 故障树 | 以顶层故障为根，按原因层级展开；每个节点标注该层的检出手段与排除条件；叶节点为可直接处置的原因 | 结构化树，深度 3–5 层 | 训练模型的层级化归因能力；作为诊断推理的骨架 |
| 诊断推理 | 从现象出发，逐步引入证据、排除候选、收敛到结论；每一步写明所依据的证据与其等级；结论按证据等级分档给出 | 400–1200 字，分步结构 | 本工具的核心产出；直接对应售后服务口要求的可解释诊断形态 |
| 维修建议 | 处置步骤与顺序、所需备件与工装、预计工时、安全约束与防护要求、处置后的验证方式 | 200–600 字，步骤结构 | 训练模型给出可执行的处置方案；安全约束部分须经安全规则校验 |
| 复盘总结 | 事件经过、根本原因、处置是否得当、同类风险的排查范围、预防措施建议 | 300–800 字，段落结构 | 训练模型的总结与推广能力；作为摘要类任务样本 |
| 多轮排障对话 | 现场人员与系统的多轮交互：系统追问关键信息、现场人员给出观察结果、系统逐步收敛并给出检查顺序 | 4–10 轮，每轮 50–200 字 | 训练多轮交互中的信息索取与渐进收敛能力；与多轮对话数据构建（T2A）的边界见下 |

多轮排障对话与工具链一中的多轮对话数据构建类工具（3.2.3.4，任务 T2A）存在交叉，边界划分如下：T2A 的多轮对话工具提供通用的对话结构构造、轮次管理、上下文一致性校验等能力；本工具提供故障排查这一特定场景下的对话内容生成，即每一轮该追问什么、什么样的回答能推进收敛、何时应当给出结论。本工具生成的对话内容交由 T2A 的工具做结构规范化与一致性校验，不重复实现对话管理能力。

##### 5.4.3 生成流程与一致性约束

六类产出不是各自独立生成的。同一个故障场景的六类产出必须相互一致——故障树上的原因与诊断推理的结论要对得上，维修建议中的备件要与故障树叶节点对应，复盘总结的根本原因不能与诊断推理矛盾。若分别生成，这种一致性很难保证。

工具的做法是先生成场景骨架，再按骨架展开六类产出。骨架由 5.3.6 节所述的场景生成器按八要素组合产生，包含设备、部件、故障模式、现象、原因、处置流程、备件、安全约束，以及这些要素之间的关系。骨架本身是结构化的，不是文本。六类产出都从同一个骨架展开，骨架中的要素在各产出中的出现情况被逐一核对——这就是一致性校验的实现方式。

#### 图 5-2　故障场景从骨架到六类产出的展开与一致性校验

<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="12.5">
  <defs>
    <marker id="t2b-b1" 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="8" y="8" width="804" height="404" rx="8" fill="#ffffff" stroke="#cbd5e1"/>

  <rect x="24" y="26" width="170" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="109" y="45" text-anchor="middle" font-size="11">本体七域＋故障名录</text>
  <text x="109" y="61" text-anchor="middle" font-size="11">四档证据分级</text>
  <rect x="24" y="78" width="170" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="109" y="97" text-anchor="middle" font-size="11">历史工单分布</text>
  <text x="109" y="113" text-anchor="middle" font-size="11">＋真实片段</text>
  <rect x="24" y="130" width="170" height="44" rx="5" fill="#f8fafc" stroke="#64748b" stroke-dasharray="4 3"/>
  <text x="109" y="149" text-anchor="middle" font-size="11">业务规则：工序依赖</text>
  <text x="109" y="165" text-anchor="middle" font-size="11">安全约束·备件在产状态</text>

  <path fill="none" d="M194 48 H254 V86" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-b1)"/>
  <path fill="none" d="M194 100 H254" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-b1)"/>
  <path fill="none" d="M194 152 H254 V114" stroke="#64748b" stroke-width="1.2" stroke-dasharray="4 3" marker-end="url(#t2b-b1)"/>

  <rect x="254" y="70" width="190" height="60" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="349" y="90" text-anchor="middle" font-weight="bold">场景骨架生成</text>
  <text x="349" y="107" text-anchor="middle" font-size="11">八要素组合，结构化而非文本</text>
  <text x="349" y="122" text-anchor="middle" font-size="11">三层约束过滤（表 5-8）</text>

  <path fill="none" d="M444 100 H506" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-b1)"/>
  <text x="450" y="94" font-size="11">骨架</text>

  <rect x="506" y="26" width="290" height="24" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="651" y="43" text-anchor="middle" font-size="11">① 工单描述（现场口语化表达）</text>
  <rect x="506" y="54" width="290" height="24" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="651" y="71" text-anchor="middle" font-size="11">② 故障树（3–5 层，每层标检出手段）</text>
  <rect x="506" y="82" width="290" height="24" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="651" y="99" text-anchor="middle" font-size="11">③ 诊断推理（分步，证据分档）</text>
  <rect x="506" y="110" width="290" height="24" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="651" y="127" text-anchor="middle" font-size="11">④ 维修建议（步骤·备件·安全约束）</text>
  <rect x="506" y="138" width="290" height="24" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="651" y="155" text-anchor="middle" font-size="11">⑤ 复盘总结（根因·排查范围·预防）</text>
  <rect x="506" y="166" width="290" height="24" rx="4" fill="#eef2f7" stroke="#334155"/>
  <text x="651" y="183" text-anchor="middle" font-size="11">⑥ 多轮排障对话（4–10 轮）</text>

  <path fill="none" d="M651 190 V222" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-b1)"/>
  <path fill="none" d="M349 130 V222" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-b1)"/>
  <text x="358" y="200" font-size="11">骨架要素清单</text>

  <rect x="140" y="222" width="656" height="48" rx="5" fill="#eef2f7" stroke="#334155"/>
  <text x="468" y="241" text-anchor="middle" font-weight="bold">跨产出一致性校验：骨架八要素在六类产出中逐一核对</text>
  <text x="468" y="259" text-anchor="middle" font-size="11">故障树原因 ↔ 诊断结论｜叶节点 ↔ 维修备件｜复盘根因 ↔ 诊断结论｜对话收敛点 ↔ 故障模式</text>

  <path fill="none" d="M300 270 V306" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-b1)"/>
  <text x="310" y="292" font-size="11">一致</text>
  <path fill="none" d="M620 270 V306" stroke="#334155" stroke-width="1.3" marker-end="url(#t2b-b1)"/>
  <text x="630" y="292" font-size="11">不一致</text>

  <rect x="140" y="306" width="330" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="305" y="325" text-anchor="middle" font-size="11">四道过滤（表 5-7）→ 入库</text>
  <text x="305" y="341" text-anchor="middle" font-size="11">长尾补齐样本人工抽检 20%</text>

  <rect x="486" y="306" width="310" height="44" rx="5" fill="#f1f5f9" stroke="#334155"/>
  <text x="641" y="325" text-anchor="middle" font-size="11">整组产出作废，不局部修补</text>
  <text x="641" y="341" text-anchor="middle" font-size="11">不一致原因计入模板改进项</text>

  <rect x="24" y="362" width="772" height="38" rx="5" fill="#f8fafc" stroke="#64748b"/>
  <text x="38" y="394.5" font-weight="bold">来源标识（每条产出均带）：</text>
  <text x="100.4" y="378">synthesis_source · teacher_model · template_version · 采样参数 · 骨架编号 · 所依据的本体与规则版本</text>
  <text x="38" y="408.8" font-size="11">命中安全约束的场景标记为需安全复核，经确认后方可入库；安全约束内容不参与改写与风格迁移。</text>
</svg>

图 5-2　故障场景从骨架到六类产出的展开与一致性校验。数据来源：招标文件第五章 3.2.3.7.1 第（6）项（b1054、b1055）与 3.2.3.7.2 节（b1056—b1060）。

跨产出一致性校验不通过时，整组产出作废而不做局部修补。这个选择是有代价的——作废意味着这一组的生成成本白费。但局部修补会留下隐患：修补后的产出之间可能仍有未被检出的矛盾，而这类样本一旦进入训练集，模型学到的就是自相矛盾的推理。整组作废的另一个好处是，作废率本身成为生成模板质量的指标，作废率上升说明模板需要修订。

##### 5.4.4 合成样本标识与来源记录

工具支持合成样本标识和来源记录，明确 `synthesis_source`、`teacher_model`、`template_version` 和采样参数（b1059、b1060）。四个字段的取值规范见表 5-11。

表 5-11　合成样本来源字段的取值规范

| 字段 | 取值规范 | 本项目中的取值举例 | 用处 |
|---|---|---|---|
| `synthesis_source` | 枚举值，标明合成方式 | `seed_evolution`（种子进化）、`ontology_scenario`（本体场景组合）、`workorder_template`（历史工单模板化）、`text_rewrite`（文本重写）、`longtail_fill`（长尾定向补齐） | 训练侧按方式控制配比；质检侧按方式定位同源问题 |
| `teacher_model` | 统一网关为生成所用模型分配的登记名与版本号，不写品牌与型号 | `gw-llm/v7`、`gw-vlm/v3` | 模型随代升级后回溯某批样本的生成能力代次；评估新旧模型产出的质量差异 |
| `template_version` | 生成模板的语义化版本号，模板只读、改必升版 | `tpl-fault-scenario-0314` | 定位某一类问题样本所用的模板，修订后按版本重跑 |
| 采样参数 | 结构化记录温度、top-p、采样次数、候选选择方式、随机种子 | 见 5.3.8 样例中的 `sampling_params` | 回放复算；采样参数是生成多样性与稳定性的主要调节手段，不留痕则无法归因 |

除上述四项外，本工具另记三项：骨架编号（指向生成本组产出的场景骨架）、所依据的本体版本与业务规则版本、同骨架展开的六类产出的记录编号互引。这三项使得一组产出可以作为整体被检索、被复核、被整组作废。

来源记录的一项实际用途值得写明。假设模型在场景验证中出现一类系统性错误——比如把某种现象一概归到某个故障模式上。排查时可以按这个故障模式检索训练样本，按 `synthesis_source` 区分真实样本与合成样本，若合成样本占比过高且集中在某个 `template_version` 上，问题就定位到了模板。没有来源记录，这个排查只能靠猜。

##### 5.4.5 输入输出接口

表 5-11A　工单与故障场景模拟生成工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 场景模板与本体 | 场景模板版本、故障域本体与故障名录、八要素组合约束版本 | 模板与本体不配套则拒收 |
| 输入 | 历史分布与配额 | 历史工单分布引用、配额配置、目标条数、产出形态清单 | 分布不可读则不启动；长尾不以估计分布替代 |
| 输出 | 场景与六类派生 | 八要素场景样本及六类形态分文件（表 5-10） | 文件间以场景标识关联 |
| 输出 | 约束拦截与合成标记 | 组合约束拦截计数、`synthetic_marks`、`eval_use=false`、与历史分布对照 | 合成样本无来源字段不入库 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.9（表 8-18、表 8-19）。

##### 5.4.6 输出样例

下例为一组长尾补齐场景的产出摘录，六类产出各取片段。

```json
{
  "scenario_id": "FSC-2027081100127",
  "skeleton": {
    "equipment": {"node": "ONT-EQ-0217", "label": "刮板输送机机头传动部"},
    "component": {"node": "ONT-CP-0188", "label": "链轮组件"},
    "fault_mode": {"node": "ONT-FM-0231", "label": "链轮齿面异常磨损导致跳链",
                   "historical_count": 3, "longtail": true},
    "symptoms": [{"node": "ONT-SYM-0052", "label": "运行中周期性冲击响声"},
                 {"node": "ONT-SYM-0089", "label": "刮板链张紧度异常波动"}],
    "causes": [{"node": "ONT-CAU-0104", "label": "链条节距伸长超限与链轮齿形不匹配"},
               {"node": "ONT-CAU-0117", "label": "链轮安装对中偏差"}],
    "disposal": {"flow": ["停机断电挂牌", "检测链条节距伸长量", "检查链轮齿面磨损量",
                           "按磨损量判定修复或更换", "重新张紧并对中", "空载试运转验证"]},
    "spares": [{"code": "SP-0188-02", "label": "链轮齿块", "in_production": true,
                "alternative": "SP-0188-02A"}],
    "safety_constraints": [{"node": "ONT-SAF-0019", "label": "井下检修须停机断电挂牌，禁止带电作业"},
                           {"node": "ONT-SAF-0033", "label": "链条张紧操作须确认无人处于链条行程内"}],
    "constraint_checks": {"ontology": "通过", "distribution": "长尾定向补齐配额内",
                          "business_rule": "命中安全约束 2 项，已标记需安全复核"}
  },
  "outputs": {
    "work_order_desc": {
      "record_id": "GEN-WO-2027081100451",
      "text": "8月9日夜班，司机反映机头那边跑起来有一下一下的响声，听着像是哪儿打上了，链子松紧也不太稳，拉紧了跑一会儿又松。没停机，让下个班注意看着。",
      "note": "采用现场口语化表达，含不精确描述（「哪儿打上了」），用于训练要素提取"
    },
    "fault_tree": {
      "record_id": "GEN-FT-2027081100452",
      "root": "机头传动部周期性冲击响声",
      "levels": [
        {"depth": 1, "node": "链传动啮合异常", "detection": "听音定位＋空载观察"},
        {"depth": 2, "node": "链轮齿面异常磨损", "detection": "齿面磨损量测量（样板比对）",
         "exclusion": "齿面磨损量在允许范围内可排除"},
        {"depth": 2, "node": "链条节距伸长超限", "detection": "节距伸长量抽测（连续 11 节）",
         "exclusion": "伸长量低于限值可排除"},
        {"depth": 3, "node": "链轮安装对中偏差", "detection": "对中检测",
         "exclusion": "对中在公差内可排除"}
      ]
    },
    "diagnosis": {
      "record_id": "GEN-DX-2027081100453",
      "steps": [
        {"step": 1, "observation": "周期性冲击响声，周期与链速相关",
         "inference": "指向链传动啮合环节，排除轴承类连续性异响",
         "evidence_level": "三级：现场听音，依据工况经验"},
        {"step": 2, "observation": "张紧度反复波动，张紧后短时间内再度松弛",
         "inference": "提示链条节距已伸长，张紧行程被消耗",
         "evidence_level": "二级：可量测的运行表现"},
        {"step": 3, "observation": "齿面磨损量测量结果超出样板限值，节距伸长量亦超限",
         "inference": "链轮齿形与伸长后的链条不匹配，形成跳齿冲击",
         "evidence_level": "一级：实测数据"}
      ],
      "conclusion": {"primary": "链轮齿面异常磨损与链条节距伸长共同导致啮合不良",
                     "evidence_level": "一级",
                     "alternatives": [{"cause": "链轮安装对中偏差", "evidence_level": "四级：尚无直接证据",
                                       "next_check": "对中检测"}]}
    },
    "repair_advice": {
      "record_id": "GEN-RA-2027081100454",
      "steps": ["停机断电并挂牌，确认链条行程内无人", "抽测链条节距伸长量（连续 11 节，三处取样）",
                "用样板比对链轮齿面磨损量", "伸长量与磨损量均超限时，链轮齿块与对应链条段同步更换",
                "更换后重新张紧并做对中检测", "空载试运转不少于规定时长，确认响声消除"],
      "spares": ["SP-0188-02 链轮齿块（在产）；替代件 SP-0188-02A"],
      "safety": ["停机断电挂牌，禁止带电作业", "张紧操作前确认无人处于链条行程内"],
      "verification": "空载试运转期间听音无周期性冲击，张紧度在规定时长内保持稳定",
      "safety_review": {"required": true, "state": "已确认", "note": "安全约束表述与安全规则本体一致"}
    },
    "retrospective": {
      "record_id": "GEN-RS-2027081100455",
      "root_cause": "链条使用周期内未对节距伸长量做例行抽测，伸长累积后与链轮齿形失配",
      "scope": "同批次投运的同型机头传动部，建议排查节距伸长量",
      "prevention": "将节距伸长量抽测纳入定期点检项，抽测周期与限值按设备手册确定"
    },
    "dialogue": {
      "record_id": "GEN-DG-2027081100456",
      "turns": 6,
      "excerpt": [
        {"role": "现场", "text": "机头有响声，一下一下的。"},
        {"role": "系统", "text": "响声的间隔与链条速度是否相关？张紧度近期是否需要反复调整？"},
        {"role": "现场", "text": "好像是跟着链子走的。张紧这两天调过两回了。"},
        {"role": "系统", "text": "这两项指向链传动啮合异常。建议先停机，按连续 11 节抽测链条节距伸长量，并用样板比对链轮齿面磨损量。两项结果能把范围收到链轮或链条。"}
      ]
    }
  },
  "consistency_check": {
    "tree_vs_diagnosis": "一致（诊断结论对应故障树 depth2 两节点）",
    "leaf_vs_spares": "一致（齿块更换对应齿面磨损叶节点）",
    "retro_vs_diagnosis": "一致",
    "dialogue_convergence": "一致（收敛到同一故障模式）",
    "result": "通过"
  },
  "provenance": {
    "synthesis_source": "longtail_fill",
    "teacher_model": "gw-llm/v7",
    "template_version": "tpl-fault-scenario-0314",
    "sampling_params": {"temperature": 0.6, "top_p": 0.9, "n_samples": 2, "selected": "一致性校验通过者"},
    "ontology_version": "ONT-2027Q3-v6", "rule_version": "RUL-2027Q3-v2"
  },
  "filters": {"rule": "通过", "model_score": 4.2, "dedup": "通过", "human_sample": {"sampled": true, "verdict": "通过",
              "reviewer_role": "售后服务业务骨干", "note": "处置顺序与现场做法相符；节距抽测节数按手册为 11 节，正确"}},
  "dataset_target": "指令微调数据集 / 质量域；偏好数据候选（回答优劣由人工判断）",
  "longtail_flag": true, "eval_use": false,
  "batch_id": "B-20270811-FSC-006"
}
```

样例末尾 `eval_use: false` 是一条硬性标记：长尾补齐样本不用于评测。它的作用是让评测集构造工具在取样时自动排除这类样本，而不依赖人工记得排除。

##### 5.4.7 质量口径、验收与回退

表 5-12　工单与故障场景模拟生成工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 骨架约束通过率 | 本体与业务规则约束的组合通过率不低于 70% | 按批次统计生成与作废条数 | 通过率过低说明本体关系定义过严或存在缺项，按作废原因梳理本体 |
| 跨产出一致性通过率 | 不低于 85% | 按组统计一致性校验结果 | 低于基线时拆分生成步骤，先定稿故障树与诊断，再据此生成其余四类 |
| 人工抽检通过率 | 常规样本抽检 5%、长尾补齐样本抽检 20%，通过与可改合计不低于 90% | 由熟悉相应业务的人员审核 | 不通过率超限整批退回；长尾类目连续不通过时暂停该类目生成，先补本体描述 |
| 安全约束表述正确率 | 涉及安全约束的样本，表述与安全规则本体逐步接近完全一致 | 逐条核对，不抽样 | 不一致时该样本不入库；安全约束部分改为从本体直接引用原文，不由模型生成 |
| 口语化工单描述的真实度 | 抽检中被判为「像现场人写的」的比例不低于 80% | 由售后服务业务人员盲评 | 真实度不足时从历史工单中抽取真实表达片段作为模板示例 |
| 长尾类目的样本充足度 | 业务重要性为高的故障模式，每类的场景样本数达到配额 | 按类目核对并在数据卡披露 | 未达配额的类目如实披露缺口，不降低抽检标准凑数 |

#### 5.5 文本重写与多样化工具链（3.2.3.7.3）

本节回应招标文件 3.2.3.7.3 节（b1061）及其六项要求。

##### 5.5.1 这一条要解决的问题

甲方的文本资料有一个共同特点：同一件事的表述方式单一。制度条文是书面语，工艺规程是技术语，工单是现场口语，三者各自内部的表达方式都很固定。模型在这种语料上训练，对本语料库的表达方式掌握得好，换一种问法就答不上来。通用场景的需求里写得很直白：要能就企业制度、技术标准、工艺规程与历史资料进行自然语言问答——而提问人是各业务口的全体员工，他们的问法不会按制度条文的句式来。

文本重写工具的作用是在不改变内容的前提下，为同一份事实生成多种表达。这件事的风险也很明显：改写很容易把内容改掉。技术文本中的数值、单位、工艺参数、故障结论与安全约束，改一个字含义就变了。因此本工具的设计重心不在「能改出多少种花样」，而在「怎么保证改完之后内容没变」。

##### 5.5.2 六种风格与改写能力

工具支持文本重写与风格迁移，在保持语义一致的前提下生成口语化、书面化、技术化、简化、扩写、压缩等不同表达版本（b1062、b1063）。六种风格的做法与适用对象见表 5-13。

表 5-13　六种改写风格的做法与适用对象

| 风格 | 做法 | 适用的原文类型 | 本项目中的用处 |
|---|---|---|---|
| 口语化 | 换用日常词汇、缩短句子、允许省略主语、保留不精确的程度表达 | 制度条文、技术标准、工艺规程 | 生成贴近员工真实问法的提问与表述，用于问答样本的问题侧 |
| 书面化 | 补全主语与关联词、规范术语、去除口语缀词 | 工单、交流记录、现场描述 | 把现场记录规范化，用于摘要与归档类样本 |
| 技术化 | 用标准术语替换俗称、补全参数与单位、引入标准依据 | 工单、现场描述、通俗解释 | 训练模型在正式答复中使用规范表述 |
| 简化 | 去除修饰与冗余、保留结论与关键条件、降低句式复杂度 | 长篇技术文件、复盘总结 | 生成不同详略度的答案版本，用于长度分布控制 |
| 扩写 | 补充背景、展开步骤、追加说明与注意事项；补充内容须有依据 | 条文式要求、简短结论 | 生成详细版答案；扩写内容不得引入原文与素材中没有的事实 |
| 压缩 | 按目标字数压缩，优先保留数值、结论与约束 | 长篇答案、规程全文 | 生成摘要类样本；压缩后关键信息项的保留情况可核对 |

扩写是六种风格中风险最高的一种，因为它要「增加内容」。工具对扩写的约束是：扩写只能使用三类材料——原文自身的其他部分、与原文关联的已确认素材（同一规程的其他条款、同一设备的手册内容）、本体中的已定义知识。三类材料之外不得引入。扩写结果中的每个新增事实点都要标出其来源材料，无法标出来源的新增内容在过滤环节被剔除。

##### 5.5.3 语义一致性校验

工具支持语义一致性校验，使用向量相似度、关键信息抽取和规则检查防止语义漂移（b1064、b1065）。三个通道的检查内容与门限见表 5-14。

表 5-14　语义一致性校验的三个通道

| 通道 | 检查内容 | 判定方式与门限 | 检不出什么 |
|---|---|---|---|
| 向量相似度 | 原文与改写文本在语义表示空间中的相似程度 | 余弦相似度；门限按风格分别设定（口语化与技术化门限较低，简化与压缩门限中等，扩写按原文对改写的覆盖方向单边判定） | 检不出局部的数值错误——改一个数字对整体向量影响很小。因此此通道只作粗筛，不单独定结论 |
| 关键信息抽取 | 从原文与改写文本中分别抽取关键信息项（数值、单位、实体、型号、标准编号、结论、条件、约束），逐项比对 | 关键信息项须逐项一致；缺失、新增、取值不同均判为不一致 | 检不出语气与限定程度的变化（如「通常」改为「应当」），需规则检查补充 |
| 规则检查 | 限定词保留检查（通常／一般／原则上／应当／必须／禁止）；否定词检查；条件句结构检查；数值与单位的格式与量级检查；术语保护词表命中检查 | 逐条规则判定，不通过即判为不一致 | 检不出整体语义的微妙偏移，需向量通道与人工抽检补充 |

三个通道各有盲区，这是为什么要三个一起用。判定逻辑是：关键信息抽取与规则检查任一不通过即判为语义漂移，直接剔除；两者都通过但向量相似度低于门限的，送人工抽检；三者都通过的进入下一道过滤。

关键信息抽取这一通道的实现要点是抽取器本身要稳定。如果抽取器对原文与改写文本的抽取能力有差异，比对结果就不可信。本工具的做法是：抽取器对两侧使用同一配置、同一版本；抽取结果为空时不判为一致，而是判为无法校验并转人工；抽取器的稳定性按季度用标定集复测。

##### 5.5.4 术语保护与事实保护

工具支持术语保护和事实保护，改写过程中不得改变关键实体、数值、单位、工艺参数、故障结论、安全约束和业务规则（b1066、b1067）。七类保护对象的识别与保护方式见表 5-15。

表 5-15　七类保护对象的识别与保护方式

| 保护对象 | 识别方式 | 保护方式 | 违反时的处置 |
|---|---|---|---|
| 关键实体 | 术语保护词表中的主词条与其别名；本体中的设备、部件、材料、工序节点名 | 改写前做占位替换：把实体替换为占位符，改写完成后回填原文；不允许模型接触到可改写的实体文本 | 占位符缺失或数量不符时该条作废 |
| 数值 | 正则识别数值与其上下文；结构化素材中已标明的参数值 | 同占位替换；数值连同其单位作为一个不可分割的占位单元 | 回填后比对数值集合，不一致即作废 |
| 单位 | 单位词表；数值后紧随的量纲表达 | 与数值一体保护；单位换算一律不在改写环节进行 | 同上 |
| 工艺参数 | 工艺规程中的参数项；本体中标明为参数的节点 | 占位替换＋规则检查双重保护 | 作废并记录 |
| 故障结论 | 由故障域本体节点标识的结论性表述；诊断样本中的 `conclusion` 字段 | 结论句整句不参与改写，改写只作用于其余部分 | 结论句被改动时作废 |
| 安全约束 | 安全规则本体节点；含禁止、严禁、不得、必须等强制语的句子 | 整句从本体直接引用，不参与改写 | 安全约束句出现任何差异即作废并记安全事件 |
| 业务规则 | 规则库中的规则表述；工序依赖与禁止条件 | 整句不参与改写 | 作废并记录 |

占位替换为事前约束：模型仅见占位符，只能改写占位符之间的连接语句；回填后比对占位符数量与顺序即可发现改坏。自然度可能略降、占位符附近句式或显生硬；数值与实体类错误由概率问题转为结构问题。对自然度要求高的场合（如口语化改写用于生成提问），占位替换的范围可以收窄到数值、单位与安全约束，实体允许用别名替换——此时别名替换的映射关系记入输出，仍然可追溯。

##### 5.5.5 改写配置

工具支持改写比例、改写次数、相似度阈值和风格分布配置，避免过度增强导致数据偏移（b1068、b1069）。四项配置的含义与建议取值见表 5-16。

表 5-16　改写配置的四项参数

| 参数 | 含义 | 建议取值与依据 | 过度设置的后果 |
|---|---|---|---|
| 改写比例 | 原始样本中有多少比例被选去做改写增强 | 预训练语料不超过 20%（见表 5-2）；指令微调样本按任务类型分别设定 | 比例过高时数据集中同源内容占比上升，模型在原文表达上过拟合 |
| 改写次数 | 同一条原文最多生成几个改写版本 | 建议不超过 3 个；按风格分配，同一风格不重复生成 | 次数过多时同族样本挤占分布，表面量大实际多样性低 |
| 相似度阈值 | 向量通道的门限，按风格分别设定 | 口语化 0.78、技术化 0.80、书面化 0.82、简化 0.80、压缩 0.75、扩写按覆盖方向单边判定不低于 0.85 | 阈值过高时改写被压成近义替换，起不到多样化作用；过低时语义漂移风险上升 |
| 风格分布 | 六种风格在改写产出中的占比 | 按原文类型设定：制度与标准类以口语化、简化为主；工单类以书面化、技术化为主；长文类以压缩、简化为主 | 风格集中时模型只见过一种转换方向 |

四项配置都按原文类型与数据集分别设定，不设全局统一值。配置变更按版本管理，变更前后的产出在数据卡中分段统计，便于判断某次配置调整是否带来了预期效果。

##### 5.5.6 生成数据质量过滤

工具支持生成数据质量过滤，通过规则校验、模型评分、语义相似度检测、重复检测和人工抽检剔除虚假、不合理、越权或语义漂移样本（b1070、b1071）。本工具的五道过滤与 5.3.5 节所述四道过滤的关系是：规则校验、模型评分、重复检测、人工抽检四道沿用同一套实现与门限配置，语义相似度检测为本工具专有，即 5.5.3 节所述三通道校验中的向量通道。

过滤的执行顺序与各道的剔除重点见表 5-17。

表 5-17　文本重写产出的五道过滤

| 序 | 过滤 | 本工具中的剔除重点 | 成本 |
|---|---|---|---|
| 1 | 占位回填校验 | 占位符数量与顺序不符、回填失败 | 极低，程序判定 |
| 2 | 规则校验 | 限定词被改动、否定词增删、单位缺失、安全约束句有差异、术语保护词表命中项被替换 | 低，程序判定 |
| 3 | 关键信息比对 | 数值、实体、型号、标准编号、结论项缺失或不一致 | 中，需抽取器运行两次 |
| 4 | 语义相似度检测 | 整体语义漂移；相似度过高（改写无实际差异）同样剔除 | 中，需向量计算 |
| 5 | 重复检测与人工抽检 | 同族过度繁殖；改写后与已有样本重复；表达不自然、不符合业务语境 | 高，部分占用人力 |

第 4 道中「相似度过高同样剔除」值得说明。改写的目的是增加表达多样性，如果改写结果与原文几乎相同（只换了个别词），它既占用了配额也不带来收益，还会在重复检测中与原文形成近重复对。因此向量通道是双向门限：低于下限判为语义漂移剔除，高于上限判为改写无效剔除。上限按风格设定，压缩与简化的上限较低（内容本就应当减少），口语化的上限较高。

##### 5.5.7 映射关系输出

工具支持输出原文与改写文本的映射关系、相似度评分、改写策略和审核状态（b1072、b1073）。映射记录的字段见表 5-18。

表 5-18　原文与改写文本的映射记录字段

| 字段 | 内容 | 用处 |
|---|---|---|
| `rewrite_id` | 改写记录编号 | 唯一标识 |
| `source_record_id` | 原文记录编号 | 回指原文；原文为外部文档时另记 `source_ref` |
| `family_id` | 同族标识，同一原文的所有改写版本共用 | 集合切分时按族整体归入训练集或评测集，防泄漏 |
| `style` | 改写风格 | 六种风格之一 |
| `rewrite_strategy` | 改写策略明细 | 占位保护范围、是否允许别名替换、目标字数、是否允许重排段落顺序 |
| `similarity` | 相似度评分 | 向量余弦相似度、关键信息项一致项数与总项数、字面重叠率 |
| `protected_items` | 本次保护的对象清单 | 按七类分列，每项记占位符编号与回填结果 |
| `alias_substitutions` | 别名替换映射 | 允许别名替换时记录原词与替换词及其词典条目 |
| `key_info_diff` | 关键信息比对明细 | 一致项、缺失项、新增项、取值不同项 |
| `filter_results` | 五道过滤的逐道结果 | 每道记通过／不通过与原因 |
| `review_state` | 审核状态 | 未审核／自动通过／人工通过／驳回／已剔除 |
| `reviewer_role` | 审核人角色 | 记角色不记姓名 |
| `provenance` | 来源字段 | `synthesis_source` 固定为 `text_rewrite`；另记 `teacher_model`、`template_version`、采样参数 |

映射关系的一项实际用途：当原文被更新时（制度换版、规程修订），按 `source_record_id` 可以找出所有由它衍生的改写样本，一并标记为待复核。没有映射关系，旧版制度衍生的样本会留在数据集里，模型答出来的是已经作废的规定。这在通用场景的制度问答中是直接的业务风险——通用场景的核心需求本就是回答时能说清依据的是哪一版文件。

##### 5.5.8 输入输出接口

表 5-18A　文本重写与多样化工具的输入输出接口

| 方向 | 接口 | 内容 | 调用方式 |
|---|---|---|---|
| 输入 | 原文样本 | 已通过质检与一致性校验的样本标识集合 | 未质检样本不接受改写 |
| 输入 | 风格与保护配置 | 六种风格、保护词表版本、改写四项参数、语义校验通道 | 保护词表版本必填 |
| 输出 | 改写样本 | 风格标记、原文引用、改写比例、映射记录 | 流式写出 |
| 输出 | 保护与过滤报告 | 保护项逐条校验、五道过滤逐道计数、原文—改写映射（表 5-18） | 保护失败项不入库 |

字段级任务创建契约、调用样例与异常回退见第八节 §8.10（表 8-20）。

##### 5.5.9 输出样例

```json
{
  "rewrite_id": "RWR-2027090200688",
  "source_record_id": "DOC-REG-0004471",
  "source_ref": {"doc": "热处理工艺规程 / 第 5.3 条", "version": "v2026-11", "digest": "sha256:1a93…7f"},
  "family_id": "FAM-REG-0004471",
  "source_text": "调质处理的回火温度应控制在 580±10℃，保温时间按有效厚度每 25mm 不少于 1h 计，且总保温时间通常不少于 2h。装炉量超过额定装炉量 80% 时，保温时间应按工艺员确认后的数值执行。",
  "style": "口语化",
  "rewrite_strategy": {"placeholder_scope": ["数值", "单位", "工艺参数", "业务规则"],
                       "alias_substitution_allowed": true, "target_length": "不限", "reorder_allowed": false},
  "rewrite_text": "调质的回火温度得控在 580±10℃，保温时间按有效厚度算，每 25mm 不少于 1h，总的通常不能少于 2h。要是装炉量超过额定的 80%，保温时间就得按工艺员确认过的数来。",
  "protected_items": {
    "数值": [{"ph": "[[N1]]", "value": "580±10", "refilled": true},
             {"ph": "[[N2]]", "value": "25", "refilled": true},
             {"ph": "[[N3]]", "value": "1", "refilled": true},
             {"ph": "[[N4]]", "value": "2", "refilled": true},
             {"ph": "[[N5]]", "value": "80", "refilled": true}],
    "单位": [{"ph": "[[U1]]", "value": "℃"}, {"ph": "[[U2]]", "value": "mm"}, {"ph": "[[U3]]", "value": "h"}],
    "工艺参数": [{"ph": "[[P1]]", "value": "回火温度"}, {"ph": "[[P2]]", "value": "保温时间"},
                 {"ph": "[[P3]]", "value": "有效厚度"}, {"ph": "[[P4]]", "value": "额定装炉量"}],
    "业务规则": [{"ph": "[[R1]]", "value": "应按工艺员确认后的数值执行", "rewrite_allowed": false,
                  "note": "整句保护，口语化仅作用于连接语句"}]
  },
  "alias_substitutions": [{"from": "调质处理", "to": "调质", "dict_entry": "ALS-TRT-0007"}],
  "similarity": {"cosine": 0.891, "key_info_matched": 14, "key_info_total": 14, "literal_overlap": 0.62},
  "key_info_diff": {"consistent": ["580±10℃", "25mm", "1h", "2h", "80%", "调质", "回火温度",
                                    "保温时间", "有效厚度", "额定装炉量", "工艺员确认", "不少于×3", "应/得", "超过"],
                    "missing": [], "added": [], "value_changed": []},
  "rule_checks": {"限定词保留": "通过（「通常」已保留）", "否定词": "通过", "条件句结构": "通过",
                  "数值单位格式": "通过", "术语保护词表": "通过（别名替换在允许范围内）"},
  "filter_results": {
    "1_占位回填": "通过（占位符 12 个，数量与顺序一致）",
    "2_规则校验": "通过",
    "3_关键信息比对": "通过（14/14 一致）",
    "4_语义相似度": "通过（0.891 在 [0.78, 0.95] 区间内）",
    "5_重复与抽检": "通过（族内 2 个版本，上限 3；抽检未命中）"
  },
  "review_state": "自动通过", "reviewer_role": null,
  "provenance": {"synthesis_source": "text_rewrite", "teacher_model": "gw-llm/v7",
                 "template_version": "tpl-rewrite-colloquial-0118",
                 "sampling_params": {"temperature": 0.8, "top_p": 0.95, "n_samples": 2, "selected": "相似度居中者"}},
  "dataset_target": "预训练数据集 / 质量域（增强文本）；指令微调问题侧素材",
  "eval_use": false,
  "batch_id": "B-20270902-RWR-014"
}
```

这条样例中 `rule_checks` 的第一项是关键：原文的「通常不少于 2h」是条件性表述，改写后保留为「通常不能少于 2h」。如果改成「不能少于 2h」，规定的强制程度就变了——这正是限定词保留检查要防的事。规程类文本的改写中，这类错误比数值错误更常见也更难发现。

##### 5.5.10 质量口径、验收与回退

表 5-19　文本重写与多样化工具的质量口径与回退路径

| 指标 | 首期基线 | 验收口径 | 达不到时的回退 |
|---|---|---|---|
| 关键信息保持率 | 关键信息项逐步接近完全一致；实测不一致率不高于 1% | 抽样 500 条逐项核对 | 扩大占位保护范围，必要时整句保护；仍不达标的原文类型暂停改写 |
| 安全约束与业务规则零改动 | 该类句子的差异条数为零 | 逐条核对，不抽样 | 出现差异即剔除该批次相关样本，并把该类句子改为整句引用，彻底不进改写 |
| 限定词保留率 | 不低于 99% | 规则检查自动统计并抽样复核 | 把限定词纳入占位保护；对高风险原文类型（规程、安全规定）停用改写 |
| 改写有效性 | 相似度落在设定区间内的比例不低于 85% | 按风格分别统计 | 区间外比例过高时调整提示词与采样温度，或缩小该风格的配额 |
| 风格辨识度 | 抽检中改写版本能被正确识别为目标风格的比例不低于 80% | 人工盲评，按风格统计 | 辨识度不足的风格修订模板示例；仍不足的从风格清单中暂时移除 |
| 同族数量合规 | 单条原文的改写版本数不超过配置上限 | 按族统计 | 超限自动裁减，保留相似度分布最分散的若干条 |
| 原文更新的联动 | 原文换版后，其衍生样本被标记为待复核的比例逐步接近全部 | 抽取 20 次换版事件核对 | 联动机制不完整时改为按文档目录定期逐份扫描比对 |

### 六、三类工具对四大数据集与场景验证的贡献

本节不新增要求回应，作用是把前三节的十个工具与本项目的交付目标对起来，便于评审时判断工具链是否真的支撑了数据集建设，而不是一份独立的工具清单。

#### 6.1 十个工具对四大数据集的贡献

表 6-1　十个工具对四大数据集的贡献

| 工具 | 预训练数据集 615 亿 Token | 指令微调数据集 89 万条 | 强化学习偏好数据 6.6 万组 | 基准测试数据集 0.95 万条 |
|---|---|---|---|---|
| 图纸与工艺图结构化抽取 | 提供工艺设计域的结构化图纸语料与图卡成对文本 | 提供信息抽取与推理分析类指令的输入素材 | —— | 提供工艺设计域评测条目的事实依据 |
| 视频－文本对齐 | 提供制造过程域与质量域的图文成对语料 | 提供多模态描述类指令样本 | 提供多模态描述的候选回答对 | 提供多模态描述类评测条目 |
| 传感器时序－运维事件对齐 | 提供质量域的时序片段与诊断文本成对语料 | 提供推理分析类指令的输入素材 | 提供诊断结论的候选回答对 | 提供诊断类评测条目的事实依据 |
| 大模型预标注 | 为语料做类型与质量分级标注 | 产出各类任务的标注结果 | 产出偏好比较的初筛结果 | 为评测条目产出候选标注，由人工确认 |
| 主动学习标注 | —— | 决定人工标注的投向，提高单位工时产出 | 定向采集难以判断的偏好对 | 定向采集覆盖边界情形的评测条目候选 |
| 本体驱动规则标注 | 为语料挂本体标签，支撑按类目采样 | 约束标签取值，保证标签体系自洽 | 校验偏好判断的逻辑一致性 | 校验评测条目的标签合规性 |
| 一致性校验标注 | 产出语料标注的质量指标 | 产出标注一致性指标与裁决记录 | 产出偏好判断的一致性指标 | 保证金标准标注的一致性 |
| 指令数据生成 | —— | 本工具的主产出场 | 产出偏好比较的回答候选 | 不参与（评测集不接受合成样本） |
| 工单与故障场景模拟生成 | —— | 产出质量域与制造过程域的推理类样本 | 产出排障对话的回答候选 | 不参与 |
| 文本重写与多样化 | 产出增强文本（配比不超过 20%） | 产出问题侧的多样化表达 | 产出表达不同但内容相同的回答对 | 不参与 |

表中「不参与」三格是本章对评测集隔离的具体落实：三个生成类工具的产出一律带 `eval_use: false` 标记，评测集构造工具在取样时按该字段排除。

#### 6.2 对六个专业场景与通用信息类场景验证的支撑

本包只做场景验证服务，不负责智能场景建设。十个工具在场景验证中的作用是提供可用的样本与可核对的评测口径，具体对应见表 6-2。

表 6-2　十个工具对场景验证的支撑点

| 场景 | 本章工具提供的关键支撑 | 场景验证时可核对的口径 |
|---|---|---|
| 产品智能选型 | 历史选型方案的结构化抽取；选型校核类推理指令样本；相似工作面条件的检索样本 | 推理步骤可按校核公式复算；相似案例检索的前五位命中率 |
| 板材备料工艺 | 图纸结构化抽取的几何要素与加工要求；工序排序候选；展开长确定性计算；历史图卡成对回归样本 | 展开长与手算一致性；工序排序与历史工艺卡的符合度；字段抽取正确率 |
| 库存控制 | 物料与口径相关的实体归一；供需计划域的推理与工具调用样本 | 口径归一的正确率；工具调用参数的结构合规性 |
| 热处理 | 时序片段切分与特征；炉次关联样本；规程类文本的多样化表达 | 诊断文本事实层的数值准确性；关键信息保持率 |
| 焊接 | 关键帧与焊道的对齐样本；参数流时序片段；缺陷描述归类标注 | 对齐正确率；缺陷归类与人工标注的一致率 |
| 健康诊断 | 报警前后窗与维修前后窗片段；诊断推理与排障对话样本；长尾故障模式补齐样本 | 诊断结论的证据等级分档正确性；长尾类目的样本充足度披露 |
| 通用信息类场景 | 制度与标准的改写增强样本；带引用的问答样本；条款级证据定位 | 答案依据可定位率；原文换版后的样本联动比例 |

表 6-2 的右列是本章工具与场景验证之间的接口：验证时核对的是这些口径，而这些口径的计算方式在前三节各工具的质量口径表中已逐一定义。场景验证的组织方式、验证用例与验收流程见六个专业场景验证方案（任务 T5）与五个通用场景验证方案（任务 T14）。

### 七、交付、部署与验收

#### 7.1 交付物清单

表 7-1　本章三类十个工具的交付物清单

| 类别 | 交付物 | 份数或形式 | 交付时点 |
|---|---|---|---|
| 工具软件 | 十个工具的可部署程序包、依赖清单、部署手册、配置说明 | 每工具一套 | 按分批上线计划 |
| 接口文档 | 每个工具的输入输出接口说明、字段定义、错误码、调用示例 | 每工具一份 | 工具上线同步 |
| 标注规范 | 按任务类型编写的标注规范文本，含标注粒度、标签体系层级、判例、一致性判定口径、返工门限 | 按任务类型分册，不少于七册 | 标注作业启动前 |
| 配置基线 | 提示词模板与输出 Schema、本体接口配置、阈值配置、采样策略配置、改写配置的首期基线版本 | 每类一套，纳入版本管理 | 工具上线同步 |
| 质量报告模板 | 标注质量报告模板、生成批次报告模板、对齐质量报告模板 | 三份 | 首批样本产出前 |
| 测试与验收材料 | 单元测试用例、集成测试用例、标定集与回归样例集、验收测试报告 | 按工具与批次 | 验收节点 |
| 运行手册 | 批量调度操作说明、常见故障处置、成本监控与告警处置、阈值复标操作说明 | 一份 | 工具上线同步 |
| 培训材料 | 标注人员培训材料、复核与裁决操作培训材料、工具运维培训材料 | 三套 | 对应岗位上岗前 |

标注规范的分册安排按任务类型而非按业务域，原因是同一任务类型跨域的标注口径基本一致，而同一业务域内不同任务类型的口径差别很大。分册目录与规范样例在标准规范与报告模板附件（任务 A2）中给出。

#### 7.2 分批上线与进度节点

十个工具不一次性全部上线。排序依据是依赖关系与紧迫程度：对齐类工具的产出是标注类工具的输入，标注类工具的产出是生成类工具的素材；而图纸抽取与预标注两项的产能缺口最紧迫，优先上线。

表 7-2　分批上线安排

| 批次 | 工具 | 前置条件 | 本批交付后可开展的工作 |
|---|---|---|---|
| 第一批 | 图纸与工艺图结构化抽取；大模型预标注；本体驱动规则标注 | 统一对象标识服务可用；本体首版发布；图纸只读接口开通 | 工艺设计域语料的结构化与首轮标注；置信度阈值的首次标定 |
| 第二批 | 传感器时序－运维事件对齐；一致性校验标注；主动学习标注 | 测点配置与时序数据只读接口开通；标注规范首版发布；首批标注样本可用 | 质量域时序样本的切分与特征；标注质量指标开始按批次出报告 |
| 第三批 | 视频－文本对齐；指令数据生成；文本重写与多样化 | 工艺过程视频布点完成并可取数；种子指令库达到起步规模；高质量原始样本达到起步规模 | 多模态样本与指令样本的批量生产；增强文本产出 |
| 第四批 | 工单与故障场景模拟生成 | 故障域本体与故障名录完备；历史工单分布统计完成 | 长尾故障场景的定向补齐 |

每批上线按三道关口：工具自身的测试验收、在试点批次上的质量指标标定、与上下游工具的联调。三道关口全部通过后转入批量生产，生产期间按季度复测质量指标。各批次节点的具体日期与项目总进度计划的衔接见项目管理措施（任务 S1）。

#### 7.3 验收方式

本章十个工具的验收分三层，三层各有独立的判定依据，不以一层代替另一层。

第一层是功能验收。按接口文档逐项核对工具是否实现了招标文件所列的各项要求，核对方式是用验收测试用例调用接口并比对输出。这一层的判定是二元的：实现或未实现。本章前三节每个工具的功能设计表与接口表即为这一层的核对清单。

第二层是质量验收。按各工具质量口径表中的指标，用约定的抽样方式实测并与首期基线比对。这一层的关键是抽样方式事先约定并写入验收方案，包括抽样规模、分层维度、判定人员的岗位要求、判定分歧的处理方式。实测值低于基线时，按回退列的动作处置并在约定期限内复测；不以调整统计口径或更换抽样方式的方式达标。

第三层是生产验收。看的是工具在批量生产中的实际表现：单位样本的工时与成本、批次通过率、返工率、人工介入比例的变化趋势。这一层的意义在于，一个在测试集上指标漂亮但批量运行时返工率很高的工具，实际上没有降低成本。生产验收按季度出报告，报告内容与标注质量报告合并。

三层验收的口径与数据集质量评测方案（任务 S3）、数据集质检（任务 T1B）、通用接口与追溯验收要求（任务 T2C）保持一致。本章在质量口径表中给出的指标定义与那三处使用同一套定义，不另立口径。

#### 7.4 风险点与应对

表 7-3　本章工具链的主要风险点与应对

| 风险点 | 具体表现 | 应对 |
|---|---|---|
| 源系统接口开通滞后 | 图纸只读读取、测点时序只读读取未按期开通，第一、二批工具无数据可处理 | 工具按离线包方式先行调试，用甲方提供的样本包完成功能验收；接口开通后再做质量标定。接口推动事项见数据资源采集接入（任务 T12） |
| 本体与工序字典未成文 | 备料分厂工序字典与加工方法分档规则未成文，中性层系数散见于经验，候选标签生成与约束校验缺依据 | 按已掌握口径（备料工序二十八道）运行，缺项显式记为待补，不以推测值填充；梳理成文工作见数据治理体系（任务 T4A、T4B） |
| 采集条件不满足 | 安防既有视频点位的视场与清晰度不满足工艺过程观察要求，视频－文本对齐可用率低 | 输出按来源分层统计可用率，不混报；新增布点需求与所需视场、清晰度指标向硬件选型（任务 T6）提出 |
| 测点与角位置基准缺失 | 部件级振动测点与轴上角位置基准缺失，频域特征不可靠 | 按额定值估算并标记降级，频域特征不作为故障标签依据；基准补齐需求向场景验证（任务 T5）提出 |
| 故障标签稀少 | 维修事实无结构化记录，历史数据无事件级标签，评测集中故障类样本数量不足 | 训练集可用长尾补齐样本扩充；评测集不以合成样本填充，各类故障的实际样本数在数据卡中如实披露 |
| 人工标注产能不足 | 标注量大、业务骨干时间有限，一致性校验所需的多人交叉进一步放大工时 | 主动学习把人力投向高收益样本；协同档位按实测一致率逐季上移；交叉比例在规范稳定后下调。产能组织见数据加工生产二（任务 T1B） |
| 合成样本比例失控 | 生成类工具产能高，容易在某些域或任务上过量生成，造成分布偏移 | 分布控制在生成前按配额派发；合成配比在数据卡中按数据集披露；评测集按 `eval_use` 字段硬性排除 |
| 本体更新造成历史标注失效 | 类目合并拆分、判据变更后，历史标注含义与新口径不一致 | 按三档处置口径执行（向后兼容不重校验、影响既有标注的重校验、涉及判据的一律人工复核）；每次更新出影响评估报告 |
### 八、十个工具链的输入输出契约、接口与调用样例

本节回应招标文件 3.2.3.11 节第（1）条接口要求与第（6）条验收要求中的接口说明、输入输出样例两项（b1147、b1148、b1157、b1158），按工具逐个给出契约。

六类标准调用（任务创建、任务查询、结果获取、异常重试、批量导出、状态回调）、八态任务状态机、错误码四分类与幂等口径在工具链（三）第五节统一给出，本节不重复条款，只写十个工具各自的部分：入参与出参的字段契约、一次任务创建的调用样例、本工具特有的异常情形与回退动作，以及接口层面可核对的验收口径。各工具的质量指标与回退路径见本章各自的质量口径表，本节不再重复指标数值。

还有两组入参是十个工具共用的，只在 8.1 的契约表中完整列出一次，其余各表不重复：一是客户端请求标识 `client_request_id`，口径与幂等用法见工具链（三）第五节；二是输出落点组 `output.dataset_ref` 与 `output.formats`，含义与缺省值同 8.1。调用样例中这两组逐条出现，是为了保持样例可直接照搬。

本节将入参与出参逐字段写定并附完整调用样例，便于验收时当场核对字段是否交付。样例中的图号、物料编码、工单号、测点编号一律按甲方确认的脱敏口径替换为代号，数值与结构保持真实形态。

表 8-1　十个工具在六类标准调用上的差异

| 工具 | 任务粒度 | 幂等键 | 结果获取方式 | 批量导出 | 状态回调的额外内容 |
|---|---|---|---|---|---|
| 图纸与工艺图结构化抽取 | 图号批次 | 客户端请求标识＋图号集合指纹 | 分页，可按置信度与待补状态筛选 | 支持，含要素级证据索引 | 待补映射与冲突条目计数 |
| 视频－文本对齐 | 视频文件或时段 | 客户端请求标识＋视频文件指纹 | 分页，可按帧区间与对齐类型筛选 | 支持，含抽帧图与对齐记录 | 时钟校准结果、可用率分层统计 |
| 传感器时序－运维事件对齐 | 测点加时间窗 | 客户端请求标识＋测点集合＋时间窗 | 流式，大体量按批次拉取 | 支持，时序片段与特征分文件 | 事实源时点可靠性分档计数 |
| 大模型预标注 | 待标注样本批次 | 客户端请求标识＋样本标识集合指纹 | 分页，按置信档位筛选 | 支持 | 三档分流计数、模板版本 |
| 主动学习标注 | 采样轮次 | 客户端请求标识＋样本池版本＋轮次号 | 一次性返回优先序清单 | 支持 | 本轮各采样机制的配额执行情况 |
| 本体驱动规则标注 | 待标注样本批次 | 客户端请求标识＋样本标识集合＋本体版本 | 分页，按约束违反类型筛选 | 支持 | 约束违反条目计数、本体版本 |
| 一致性校验标注 | 标注任务批次 | 客户端请求标识＋标注任务标识 | 分页，按分歧类型筛选 | 支持，含裁决记录 | 一致性指标快照、待裁决条目数 |
| 指令数据生成 | 生成批次 | 客户端请求标识＋种子集合＋配额配置版本 | 流式 | 支持 | 四道过滤的逐道通过计数 |
| 工单与故障场景模拟生成 | 生成批次 | 客户端请求标识＋场景模板集合＋配额配置版本 | 流式 | 支持，六类产出分文件 | 八要素组合约束的拦截计数 |
| 文本重写与多样化 | 改写批次 | 客户端请求标识＋原文样本集合＋改写配置版本 | 流式 | 支持，含原文与改写映射 | 五道过滤的逐道通过计数、保护项命中数 |

幂等键一列需要说明其作用。批量加工作业在网络波动时会出现重复提交，若不按幂等键去重，同一批图纸会被抽取两遍并产生两套 `record_id`，而两套记录都带着合法的血缘，事后很难判断哪一套是有效的。十个工具的幂等键一律由客户端请求标识与输入集合的指纹共同构成，重复提交返回首次受理的任务标识而不是新建任务。

#### 8.1 设备图纸与工艺图结构化抽取工具链

输入输出契约见表 8-2。本工具的入参分三组：取数范围、解析参数、输出落点。取数范围用图号集合或项目引用表达，不用文件路径——图纸文件在产品全生命周期管理系统内只读读取，路径随系统版本变化而工具契约不应随之变化。

表 8-2　图纸与工艺图结构化抽取工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.drawing_nos` 或 `selector.project_ref` | 列表或字符串 | 二选一 | 图号集合或项目引用；两者同时给出时取交集 |
| 入 | `selector.drawing_kind` | 枚举 | 否 | 原生图纸／扫描件／不限；缺省为不限，工具按文件类型自行分路 |
| 入 | `params.ontology_version` | 引用 | 是 | 本体与术语词典版本，决定符号与加工要求的解析词表 |
| 入 | `params.process_dict_version` | 引用 | 是 | 工序字典与加工方法分档规则版本；未成文期间传已掌握口径的版本号 |
| 入 | `params.neutral_layer_table_version` | 引用 | 否 | 中性层系数台账版本；缺省取当前生效版本，台账无匹配条目时展开长置为待补 |
| 入 | `params.confidence_thresholds` | 结构 | 否 | 高低两档阈值，缺省取本工具当前标定值（口径见本章 2.3） |
| 入 | `params.enable_reuse_search` | 布尔 | 否 | 是否执行可借用历史工艺检索，缺省开启 |
| 入 | `output.dataset_ref` | 引用 | 是 | 结果写入的数据集与分区 |
| 入 | `output.formats` | 列表 | 否 | 缺省为 JSON Lines；可另要求 Parquet |
| 出 | `title_block` / `item_list` | 结构 | 是 | 标题栏字段与明细栏行，逐字段带 `confidence` 与 `evidence` |
| 出 | `geometry` | 结构 | 是 | 轮廓、孔、压弯线等几何要素表，带图元句柄与坐标范围 |
| 出 | `symbols` | 结构 | 是 | 符号与加工要求条目，含作用表面范围判定与其置信度 |
| 出 | `view_mapping` | 结构 | 是 | 视图对应关系，逐项带置信度；低于阈值的进 `pending` |
| 出 | `material_quota.developed_length_mm` | 数值 | 否 | 压弯件展开长；带 `recomputable` 标记与所用系数来源，可独立复算 |
| 出 | `reuse_candidates` | 列表 | 否 | 可借用历史工艺候选，带相似度与命中依据 |
| 出 | `pending` | 列表 | 是 | 待补与冲突条目，含未命中对象主键、台账缺项、视图对应存疑、符号无法解析四类 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 血缘与版本字段，由公共层写入 |

一次任务创建的调用样例：

```json
{
  "client_request_id": "REQ-2027Q1-DWG-0007",
  "selector": {"project_ref": "PRJ-XXXX-01", "drawing_kind": "原生图纸"},
  "params": {
    "ontology_version": "ONT-2027.01",
    "process_dict_version": "GYZD-BL-V3",
    "neutral_layer_table_version": "NLT-2026.11",
    "confidence_thresholds": {"high": 0.90, "low": 0.60},
    "enable_reuse_search": true
  },
  "output": {"dataset_ref": "DS-ALIGN-2027Q1/dwg", "formats": ["jsonl", "parquet"]},
  "callback_url": "https://<平台内部回调地址>/tools/dwg-extract/events"
}
```

受理返回：

```json
{
  "task_id": "T-DWG-000417",
  "accepted_at": "2027-02-18T03:12:44+08:00",
  "param_check": "passed",
  "batch_count": 18,
  "estimated_records": 5400,
  "resolved_config_version": "dwg-extract-cfg-v1.3",
  "idempotent_hit": false
}
```

异常与回退见表 8-3。表中"错误类"一列按工具链（三）5.1 的四分类填写，使调用方可以用同一套分支逻辑处理十个工具的异常。

表 8-3　图纸结构化抽取工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 工序字典版本不存在或已废止 | 参数类 | 所传版本号、当前生效版本清单 | 不受理任务；调用方改传生效版本 |
| 图纸文件只读读取未开通或授权范围不含该项目 | 输入类 | 未授权的项目或图号、所需授权范围 | 任务不启动；接口推动事项按本章 7.4 风险表处置 |
| 扫描件清晰度不足以解析标题栏 | 执行类（批次级） | 图号清单、失败阶段、清晰度实测指标 | 该批次转候选值输出模式，字段给候选不给结论，整批进人工确认 |
| 中性层系数台账无匹配条目 | 策略类 | 板厚与折弯角组合、台账版本 | 展开长字段置为待补并记录原因，不取默认系数填充 |
| 对象主键未命中 | 策略类 | 源编码、未命中类型 | 记录进 `pending` 并推入人工对账队列，该条记录仍产出但标记待补映射 |
| 某符号类型解析正确率持续低于基线 | 策略类 | 符号类型、近期实测值、所依据的抽样 | 按表 3-4 回退列，该符号类型由自动解析转候选推荐，证据回指保留 |

接口层面的验收口径有三条可当场核对：其一，用一份含压弯件的图纸批次调用，返回的 `developed_length_mm` 带 `recomputable` 标记且系数来源可查，验收方按同一公式独立复算；其二，构造一个工序字典版本不存在的请求，接口须在受理前返回参数类错误并给出生效版本清单，而不是受理后再失败；其三，重复提交同一请求，第二次返回 `idempotent_hit` 为真且任务标识与首次一致。质量指标的验收仍按表 3-4 执行。

#### 8.2 视频－文本对齐工具链

本工具的契约有一处与其他九个不同：入参必须显式声明时钟来源，因为视频设备时钟与业务系统时钟的偏差是这类对齐最主要的误差来源，若由工具自行猜测对齐基准，同一批数据在不同批次运行会得到不同结果。

表 8-4　视频－文本对齐工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.video_refs` | 列表 | 是 | 视频文件引用或点位加时段；按只读授权范围读取 |
| 入 | `selector.event_window` | 结构 | 是 | 待对齐的事件时间窗，用协调世界时表达 |
| 入 | `params.clock_source` | 结构 | 是 | 视频侧与业务侧的时钟来源标识，以及已知偏差值（若有） |
| 入 | `params.keyframe_policy` | 枚举组合 | 是 | 三种抽帧方式的启用与参数（口径见本章表 3-5） |
| 入 | `params.stage_table_version` | 引用 | 是 | 工艺阶段表版本，决定帧与阶段的对应判定 |
| 入 | `params.alignment_tolerance_ms` | 整数 | 否 | 允许的时间对齐容差，缺省按点位类型预置 |
| 出 | `clock_calibration` | 结构 | 是 | 本次校准得到的偏差与校准依据，未能校准时显式标记降级 |
| 出 | `alignment_records` | 列表 | 是 | 对齐记录，字段按本章表 3-6；逐条带关联类型与置信度 |
| 出 | `keyframes` | 列表 | 是 | 关键帧引用、帧时间戳、抽取方式与触发条件 |
| 出 | `check_results` | 结构 | 是 | 三类对齐问题的检出结果（口径见本章表 3-7） |
| 出 | `availability_by_source` | 结构 | 是 | 按来源分层的可用率统计，不同点位分别计，不合并成一个总数 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入 |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q1-VID-0031",
  "selector": {
    "video_refs": [{"site_code": "SITE-XX-07", "from": "2027-02-10T22:00:00Z", "to": "2027-02-11T06:00:00Z"}],
    "event_window": {"from": "2027-02-10T22:00:00Z", "to": "2027-02-11T06:00:00Z"}
  },
  "params": {
    "clock_source": {"video": "NVR-XX-07", "business": "MES", "known_offset_ms": null},
    "keyframe_policy": {"by_event": true, "by_interval_s": 30, "by_change_detection": true},
    "stage_table_version": "STG-2027.01",
    "alignment_tolerance_ms": 2000
  },
  "output": {"dataset_ref": "DS-ALIGN-2027Q1/video", "formats": ["jsonl"]}
}
```

表 8-5　视频－文本对齐工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 时钟来源无法确定或偏差无法校准 | 策略类 | 两侧时钟标识、校准失败原因 | 本批标记为降级完成，对齐记录只保留事件触发的帧，按间隔抽取的帧不参与时间关联 |
| 视场或清晰度不满足工艺过程观察要求 | 策略类 | 点位编码、实测清晰度与视场判定 | 该点位的可用率单列统计，不并入总体；新增布点需求按本章 7.4 风险表提出 |
| 视频文件损坏或分段缺失 | 输入类（批次级） | 文件引用、缺失时段 | 缺失时段的对齐记录不生成且不以邻近帧填充，缺口在可用率中如实计入 |
| 工艺阶段表版本与事件类型不匹配 | 参数类 | 所传版本、事件类型清单 | 不受理，提示改传匹配版本 |
| 单批帧数超出单任务上限 | 参数类 | 实际帧数、上限值、建议切分方式 | 按建议切分后重提；已切分批次按批次独立重试 |
| 对齐校验检出成组错位 | 执行类（批次级） | 错位区间、检出方法 | 该区间重跑并改用事件触发抽帧；两次仍错位的转人工确认 |

接口层面可核对的点有两条：构造一个不给 `clock_source` 的请求，接口须返回参数类错误而不是自行采用默认时钟；对一段已知有时钟偏差的视频调用，`clock_calibration` 须给出偏差值与校准依据，无法校准时须显式标记降级而不是静默按原始时间戳对齐。质量指标按表 3-8 验收。

#### 8.3 传感器时序－运维事件对齐工具链

本工具单批产出的时序片段与特征数据体量大，契约上因此有两处专门安排：结果以流式方式获取，时序片段与特征分文件存放，避免单个结果文件过大导致下游读不动。

表 8-6　传感器时序－运维事件对齐工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.point_codes` | 列表 | 是 | 测点编号集合；按设备或部件展开时由调用方先行展开 |
| 入 | `selector.time_window` | 结构 | 是 | 取数时间窗 |
| 入 | `selector.event_refs` | 列表 | 是 | 待对齐的事件来源：报警日志、停机记录、维修工单、炉次记录 |
| 入 | `params.segmentation` | 枚举＋参数 | 是 | 四种切分策略之一及其参数（口径见本章表 3-9） |
| 入 | `params.preprocess` | 结构 | 否 | 六项预处理的启用与参数（见本章表 3-11），缺省按测点类型预置 |
| 入 | `params.feature_set` | 列表 | 否 | 需要抽取的特征类别（见本章表 3-12），缺省为五类全开 |
| 入 | `params.source_reliability_policy` | 结构 | 否 | 事实源时点可靠性分档的处置口径（见本章表 3-10） |
| 出 | `segments` | 列表（流式） | 是 | 时序片段，含测点、时间区间、采样率、片段指纹 |
| 出 | `features` | 列表（流式） | 是 | 片段级特征，频域特征在角位置基准缺失时标记降级 |
| 出 | `event_links` | 列表 | 是 | 片段与事件的关联，带可靠性分档与关联依据 |
| 出 | `diagnosis_text` | 列表 | 否 | 诊断说明文本，仅在事件侧有结论性记录时生成，无记录时不臆造 |
| 出 | `degraded_items` | 列表 | 是 | 降级条目清单，含降级原因与影响的特征类别 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入 |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q1-TS-0112",
  "selector": {
    "point_codes": ["PT-XXXX-01", "PT-XXXX-02", "PT-XXXX-07"],
    "time_window": {"from": "2026-10-01T00:00:00Z", "to": "2027-01-01T00:00:00Z"},
    "event_refs": ["报警日志", "维修工单"]
  },
  "params": {
    "segmentation": {"strategy": "事件前后固定窗", "pre_s": 600, "post_s": 300},
    "preprocess": {"resample_hz": 1, "outlier_policy": "标记不删除"},
    "feature_set": ["时域统计", "趋势", "频域", "工况归一", "事件上下文"],
    "source_reliability_policy": {"低可靠时点": "仅做粗对齐并标记"}
  },
  "output": {"dataset_ref": "DS-ALIGN-2027Q1/ts", "formats": ["parquet", "jsonl"]}
}
```

表 8-7　时序－事件对齐工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 测点编号未在台账登记 | 参数类 | 未登记测点清单 | 不受理该测点，其余测点正常执行，未登记项列入待补 |
| 时序只读读取接口未开通 | 输入类 | 未开通的系统与测点范围 | 任务不启动；按本章 7.4 风险表走离线样本包先行调试 |
| 部件级角位置基准缺失 | 策略类 | 测点、缺失的基准项 | 频域特征按额定值估算并标记降级，该特征不作为故障标签依据 |
| 事件时点落在低可靠档 | 策略类 | 事件标识、可靠性分档依据 | 按分档口径只做粗对齐并标记，不按精确时刻切片 |
| 采样率不足以支撑所请求的频域特征 | 策略类 | 实际采样率、该特征所需下限 | 该特征不输出并在 `degraded_items` 中说明，其余特征照常产出 |
| 单任务数据量超出上限 | 参数类 | 估算数据量、上限、建议切分 | 按测点或时间窗切分后重提 |

接口层面可核对的点：对一个采样率不足的测点请求频域特征，接口须在 `degraded_items` 中给出该特征缺失的原因而不是输出一个无意义的数值；对低可靠时点的事件，`event_links` 中须带可靠性分档字段。质量指标按表 3-13 验收。

#### 8.4 大模型预标注工具链

本工具的模型调用量大，契约上有两处专门约定：模型只以网关登记标识表达，入参不接受品牌或型号；三档分流的结果必须在出参中逐条可见，不允许只返回已通过的部分。后一条的理由是中置信与低置信样本是人工队列的输入，若接口只回高置信结果，人工队列就要另找来源，分流也就失去意义。

表 8-8　大模型预标注工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.sample_ids` 或 `selector.pool_ref` | 列表或引用 | 二选一 | 样本标识集合，或待标注池引用加筛选条件 |
| 入 | `params.task_type` | 枚举 | 是 | 七类预标注任务之一（口径见本章表 4-3） |
| 入 | `params.label_schema_version` | 引用 | 是 | 标签体系版本；与标注规范文本同版本 |
| 入 | `params.prompt_template_version` | 引用 | 是 | 模板版本；模板内容本身不在接口中传递 |
| 入 | `params.model_ref` | 引用 | 否 | 统一网关登记的模型标识与版本，缺省取该任务类型的当前择优选用项 |
| 入 | `params.confidence_thresholds` | 结构 | 否 | 高低两档阈值，缺省取当前标定值 |
| 入 | `params.evidence_required` | 布尔 | 否 | 是否要求逐条给出证据片段，缺省为真 |
| 出 | `labels` | 列表 | 是 | 逐样本的候选标签，含标签项、置信度、证据片段与片段位置 |
| 出 | `tier` | 枚举 | 是 | 高／中／低置信档位，逐条标注 |
| 出 | `suggestions` | 列表 | 否 | 中置信条目的修改建议，供复核岗确认或修改 |
| 出 | `check_failures` | 列表 | 是 | 结构校验与约束校验未过的条目及失败项（顺序见本章表 4-4） |
| 出 | `batch_stats` | 结构 | 是 | 三档分流计数、模板版本、所用模型登记标识与版本 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入，含 `model_ref` 与 `prompt_version` |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q1-PRE-0286",
  "selector": {"pool_ref": "POOL-QUALITY-2027Q1", "filter": {"doc_type": "不合格品票", "unlabeled": true, "limit": 5000}},
  "params": {
    "task_type": "缺陷描述归类",
    "label_schema_version": "LBL-QUAL-v2.1",
    "prompt_template_version": "PRE-QUAL-v1.4",
    "model_ref": "gw-model-a@2027.01",
    "confidence_thresholds": {"high": 0.88, "low": 0.55},
    "evidence_required": true
  },
  "output": {"dataset_ref": "DS-LABEL-2027Q1/quality", "formats": ["jsonl"]}
}
```

表 8-9　大模型预标注工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 标签体系版本与任务类型不匹配 | 参数类 | 所传版本、该任务类型适用的版本清单 | 不受理 |
| 模型网关不可用或限流 | 执行类（批次级） | 失败批次、网关返回的状态 | 按退避策略自动重试三次；仍失败的批次挂起，已完成批次结果照常可取 |
| 样本含不可出域字段 | 策略类 | 被拦截的字段名、所依据的策略版本 | 网关层拦截，该样本不发起外部调用，转入内部处理路径或人工标注队列 |
| 输出不符合标签体系结构 | 执行类（条目级） | 样本标识、结构校验失败项 | 该条按表 4-4 顺序进入低置信档，不进入候选集 |
| 整批置信度分布异常偏低 | 策略类 | 分布统计、与近期批次的比对 | 批次挂起并提示检查模板版本与样本来源是否变化，不自动放行 |
| 抽检通过率低于门限 | 策略类 | 抽检结果、门限值 | 按表 4-6 回退列处置，整批退回重标，模板问题走策略会签后改版 |

接口层面可核对的点有三条：出参中三档条目都在，不只回高置信；`model_ref` 回的是网关登记标识与版本而不是品牌型号；构造一条含不可出域字段的样本，须被网关层拦截并在返回中给出所依据的策略版本。质量指标按表 4-6 验收。

#### 8.5 主动学习标注工具链

本工具不产出标签，它产出的是下一批该标哪些样本的顺序。契约因此与其余九个不同：出参的主体是一份带优先级与入选理由的清单，而不是样本内容。入选理由必须逐条给出，否则标注岗无法判断这份顺序是否合理，主动学习就退化成一个不可质疑的黑箱排序。

表 8-10　主动学习标注工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.pool_ref` | 引用 | 是 | 待标注样本池引用与版本 |
| 入 | `params.round_no` | 整数 | 是 | 采样轮次号，与幂等键共同构成本轮唯一性 |
| 入 | `params.quota` | 整数 | 是 | 本轮采样总配额 |
| 入 | `params.mechanism_mix` | 结构 | 否 | 六种采样机制的配额分配（口径见本章表 4-7、表 4-8），缺省按阶段建议分配 |
| 入 | `params.feedback_ref` | 引用 | 否 | 上一轮人工标注反馈的引用；首轮可缺省 |
| 入 | `params.diversity_constraint` | 结构 | 否 | 按业务域或类别的多样性下限，防止配额被单一类别吃满 |
| 出 | `ranked_samples` | 列表 | 是 | 优先序清单，逐条含样本标识、优先级、入选机制、入选理由、不确定性度量值 |
| 出 | `mechanism_report` | 结构 | 是 | 各机制的实际配额执行情况与未执行原因 |
| 出 | `targeted_collection` | 列表 | 否 | 定向采集清单：池中无合适样本但模型表现薄弱的方向 |
| 出 | `coverage_gap` | 列表 | 否 | 覆盖盲区登记，区别于质量问题，处置动作不同 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入 |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q2-AL-0009",
  "selector": {"pool_ref": "POOL-DEVICE-2027Q2@v3"},
  "params": {
    "round_no": 9,
    "quota": 1200,
    "mechanism_mix": {"不确定性": 0.35, "代表性": 0.20, "多样性": 0.15, "难例回流": 0.15, "覆盖补齐": 0.10, "随机对照": 0.05},
    "feedback_ref": "AL-FEEDBACK-R8",
    "diversity_constraint": {"min_per_domain": 60}
  },
  "output": {"dataset_ref": "DS-LABEL-2027Q2/queue", "formats": ["jsonl", "csv"]}
}
```

出参中保留一档随机对照配额是有意的。全部按不确定性采样会让标注集中在模型当前最困惑的一小片区域，随机对照那一档提供的是无偏参照，用来判断主动学习本身是否真的比随机挑选更划算——这个判断如果没有对照组，就只能靠相信。

表 8-11　主动学习标注工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 样本池版本与上一轮不一致 | 参数类 | 两次版本号、差异规模 | 提示确认；确认后按新版本执行并在报告中注明基准变更 |
| 不确定性度量不可用（无可用模型输出） | 执行类 | 缺失原因 | 本轮降级为代表性与多样性两机制，降级在 `mechanism_report` 中显式记录 |
| 某机制配额无法填满 | 策略类 | 机制名、缺口数 | 缺口按多样性约束回填其他机制，不自动放宽多样性下限 |
| 配额全部落入单一业务域 | 策略类 | 域分布、多样性下限 | 拦截并按下限重采，不发布该轮清单 |
| 上一轮反馈缺失 | 输入类 | 缺失的轮次 | 按无反馈模式执行，并在报告中标明本轮未纳入反馈 |

接口层面可核对的点：`ranked_samples` 中每条都有入选理由与度量值；`mechanism_report` 中各机制的实际与计划配额并列可比；随机对照那一档确实存在且比例与入参一致。质量指标按表 4-9 验收。

#### 8.6 本体驱动规则标注工具链

本工具的契约核心是本体版本。本体一旦改版，既有标注的含义可能随之变化，因此入参必须显式传本体版本，出参必须回传实际生效的本体版本——两者不一致时（例如所传版本已被更高版本替代）须显式提示，不静默采用新版。

表 8-12　本体驱动规则标注工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.sample_ids` 或 `selector.pool_ref` | 列表或引用 | 二选一 | 待标注样本范围 |
| 入 | `params.ontology_version` | 引用 | 是 | 本体七域版本（内容见本章表 4-10） |
| 入 | `params.rule_set_version` | 引用 | 是 | 约束规则集版本（七类约束见本章表 4-11） |
| 入 | `params.term_dict_version` | 引用 | 是 | 术语与别名表版本 |
| 入 | `params.constraint_scope` | 列表 | 否 | 本次启用的约束类别，缺省为七类全启 |
| 入 | `params.conflict_policy` | 枚举 | 否 | 冲突处置：拦截／标记放行；缺省为按约束类别预置 |
| 出 | `ontology_labels` | 列表 | 是 | 本体标签，逐条含所依据的本体条目标识与路径 |
| 出 | `constraint_results` | 列表 | 是 | 约束校验结论，逐条含约束编号、判定、所依据规则版本 |
| 出 | `conflicts` | 列表 | 是 | 冲突清单，含冲突双方、冲突类型与建议处置 |
| 出 | `new_term_candidates` | 列表 | 否 | 新术语候选，供本体回流（口径见本章表 4-15） |
| 出 | `effective_versions` | 结构 | 是 | 实际生效的本体、规则集与术语表版本 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入 |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q1-ONT-0054",
  "selector": {"pool_ref": "POOL-WORKORDER-2027Q1", "filter": {"limit": 8000}},
  "params": {
    "ontology_version": "ONT-2027.01",
    "rule_set_version": "RULE-ONT-v1.6",
    "term_dict_version": "TERM-2026.12",
    "constraint_scope": ["类目互斥", "层级归属", "取值域", "工序前后依赖", "安全规则", "单位与量纲", "必填完备"],
    "conflict_policy": "拦截"
  },
  "output": {"dataset_ref": "DS-LABEL-2027Q1/ontology", "formats": ["jsonl"]}
}
```

表 8-13　本体驱动规则标注工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 所传本体版本已被替代 | 参数类 | 所传版本、当前生效版本、差异摘要 | 不自动采用新版；由调用方确认后重提 |
| 规则集与本体版本不配套 | 参数类 | 两者版本、不配套的规则条目 | 不受理 |
| 工序字典未成文，工序依赖约束无依据 | 策略类 | 受影响的约束编号 | 该类约束跳过并在 `constraint_results` 中标记为未校验，不按推测规则判定 |
| 样本命中互斥类目 | 策略类 | 冲突双方、约束编号 | 按 `conflict_policy` 处置；拦截模式下该条进人工标注队列 |
| 术语表无匹配且无法归入既有类目 | 策略类 | 术语原文、上下文 | 进 `new_term_candidates`，按本体回流流程走人工确认，不自建类目 |
| 本体改版导致历史标注口径变化 | 策略类 | 受影响的标注批次范围 | 按本章 7.4 三档处置口径执行，并出影响评估报告 |

接口层面可核对的点：`constraint_results` 中"未校验"与"校验通过"是两个不同的取值，不得合并——未校验意味着依据缺失，校验通过意味着依据齐备且判定合格，把前者记成后者是这类工具最容易出的一种假达标。质量指标按表 4-12 验收。

#### 8.7 一致性校验标注工具链

本工具的输入是同一批样本的多路标注结果，输出是一致性指标与裁决记录。契约上需要定死一件事：裁决结论必须带所依据的规则条款，不接受只有结论没有依据的裁决。原因是裁决记录会回流成为标注规范的修订依据，没有依据的裁决无法复用，也无法在争议时复查。

表 8-14　一致性校验标注工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.annotation_task_id` | 引用 | 是 | 标注任务批次标识 |
| 入 | `params.cross_mode` | 枚举 | 是 | 三种交叉标注方式之一（见本章表 4-13） |
| 入 | `params.metric_set` | 列表 | 是 | 启用的一致性指标（见本章表 4-14），按任务类型选取 |
| 入 | `params.disagreement_threshold` | 结构 | 否 | 分歧判定阈值，缺省按任务类型预置 |
| 入 | `params.arbitration_rule_version` | 引用 | 是 | 裁决规则版本 |
| 出 | `consistency_metrics` | 结构 | 是 | 一致性指标值，按任务类型与标注人分组分别给出 |
| 出 | `disagreements` | 列表 | 是 | 分歧条目，含分歧点、各路标注值、分歧类型 |
| 出 | `arbitrations` | 列表 | 是 | 裁决记录，含裁决结论、所依据规则条款与版本、裁决角色（记角色不记姓名） |
| 出 | `rework_list` | 列表 | 否 | 返工清单，含返工理由与返工范围 |
| 出 | `spec_feedback` | 列表 | 否 | 标注规范的修订建议，来自反复出现的同类分歧 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入 |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q1-CONS-0073",
  "selector": {"annotation_task_id": "ANN-QUAL-2027Q1-016"},
  "params": {
    "cross_mode": "双人独立标注＋分歧裁决",
    "metric_set": ["一致率", "科恩卡帕", "克里潘多夫阿尔法"],
    "disagreement_threshold": {"label_mismatch": 1, "span_iou_below": 0.7},
    "arbitration_rule_version": "ARB-v1.2"
  },
  "output": {"dataset_ref": "DS-LABEL-2027Q1/consistency", "formats": ["jsonl", "md"]}
}
```

表 8-15　一致性校验标注工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 多路标注未全部完成 | 输入类 | 缺失的路数与标注人角色 | 不计算指标；已完成部分不作部分统计，避免指标偏高 |
| 某指标不适用于该任务类型 | 参数类 | 指标名、适用任务类型 | 不受理该指标，其余指标照常计算并在报告中注明 |
| 一致性指标低于门限 | 策略类 | 指标值、门限、分歧类型分布 | 该批整体返工；同时触发标注规范复核，而不是只退样本 |
| 裁决规则无对应条款 | 策略类 | 分歧类型、现有规则覆盖范围 | 转专家裁决，裁决结论与理由作为规则补充项进规范修订队列 |
| 同类分歧反复出现 | 策略类 | 分歧类型、出现频次与批次分布 | 进 `spec_feedback`，按有界迭代路径经会签后修订规范并发新版本 |

接口层面可核对的点：`arbitrations` 中每条都带规则条款与版本；一致性指标按标注人分组给出而不只给一个总值——只有总值的报告无法分辨是规范模糊还是某一路标注偏离。本工具的质量指标与标注质量报告合并呈现（模板字段见本章表 4-16）。

#### 8.8 指令数据生成工具链

生成类三个工具的契约有一项共同要求：入参必须携带配额配置版本，出参必须回传四道（本工具）或五道（文本重写）过滤的逐道通过计数。配额在生成前派发而不是生成后筛选，是分布控制能够生效的前提；逐道计数则使"过滤确实在起作用"这件事可核对——只给一个最终产出数的接口，无法分辨是过滤严格还是根本没有被拦截的样本。

表 8-16　指令数据生成工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.seed_ref` | 引用 | 是 | 种子指令库引用与版本（字段设计见本章表 5-4） |
| 入 | `params.task_types` | 列表 | 是 | 本批生成的指令任务类型（七类落法见本章表 5-3） |
| 入 | `params.quota_config_version` | 引用 | 是 | 配额配置版本，含六个分布维度的目标（见本章表 5-6） |
| 入 | `params.evolution_ops` | 列表 | 否 | 启用的指令进化算子（五种见本章表 5-5），缺省按任务类型预置 |
| 入 | `params.material_refs` | 列表 | 是 | 可用素材范围：领域文档、本体标签、结构化素材的版本引用 |
| 入 | `params.target_count` | 整数 | 是 | 本批目标条数，受配额上限约束 |
| 入 | `params.eval_use` | 布尔 | 否 | 固定为假；本工具产出不得进入基准测试集 |
| 出 | `instructions` | 列表（流式） | 是 | 指令样本，逐条含任务类型、难度、所依据素材引用与合成标记 |
| 出 | `filter_report` | 结构 | 是 | 四道过滤的逐道通过与拦截计数及拦截原因分布（检查项见本章表 5-7） |
| 出 | `distribution_report` | 结构 | 是 | 六个维度的实际分布与配额目标的偏差 |
| 出 | `traceability` | 列表 | 是 | 每条样本的可追溯依据，无依据的样本不产出 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入，含 `model_ref` 与 `prompt_version` |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q2-INS-0145",
  "selector": {"seed_ref": "SEED-PROCESS-2027Q2@v2"},
  "params": {
    "task_types": ["工艺判断", "标准问答", "故障诊断"],
    "quota_config_version": "QUOTA-SFT-2027Q2-v1",
    "evolution_ops": ["加约束", "换视角", "提难度", "多步化"],
    "material_refs": ["DOC-STD-2027.01", "ONT-2027.01", "DS-ALIGN-2027Q1/dwg@v4"],
    "target_count": 20000,
    "eval_use": false
  },
  "output": {"dataset_ref": "DS-SFT-2027Q2/process", "formats": ["jsonl"]}
}
```

表 8-17　指令数据生成工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 配额配置版本缺失或已过期 | 参数类 | 所传版本、当前生效版本 | 不受理；配额不得由工具自行推定 |
| 目标条数超出该维度配额上限 | 策略类 | 维度名、配额上限、本批已用量 | 按上限截断并返回截断量，不超额生成 |
| 素材引用版本不可读 | 输入类 | 素材引用、失败原因 | 该素材不参与本批生成；若全部素材不可读则任务不启动 |
| 某条生成结果无可追溯依据 | 策略类 | 该条的生成路径 | 不产出该条并计入拦截，不以"模型常识"充作依据 |
| 四道过滤中某一道通过率骤降 | 策略类 | 该道的通过率、与近期批次比对 | 批次挂起，检查模板版本与素材变化，不自动放行 |
| `eval_use` 被置为真 | 参数类 | 该字段取值 | 拒绝受理；基准测试集不接受合成样本（本章表 5-2 硬约束） |

接口层面可核对的点有两条：`filter_report` 四道计数齐全且拦截原因可分类；构造一个 `eval_use` 为真的请求，接口须拒绝受理而不是受理后在下游拦截。质量指标按表 5-9 验收。

#### 8.9 工单与故障场景模拟生成工具链

本工具的产出是六类形态（见本章表 5-10），契约上按形态分文件输出，并要求每条合成样本携带来源字段（取值规范见本章表 5-11）。八要素的组合约束在生成前校验，违反约束的组合拦截而不是生成后再筛。

表 8-18　工单与故障场景模拟生成工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.scenario_templates` | 列表 | 是 | 场景模板引用与版本 |
| 入 | `params.fault_ontology_version` | 引用 | 是 | 故障域本体与故障名录版本 |
| 入 | `params.element_constraints_version` | 引用 | 是 | 八要素组合约束版本（见本章表 5-8） |
| 入 | `params.distribution_ref` | 引用 | 是 | 历史工单分布引用，作为长尾补齐的参照基准 |
| 入 | `params.output_forms` | 列表 | 否 | 需要的产出形态，缺省为六类全出 |
| 入 | `params.quota_config_version` | 引用 | 是 | 配额配置版本 |
| 入 | `params.target_count` | 整数 | 是 | 本批目标条数 |
| 出 | `scenarios` | 列表（流式） | 是 | 故障场景样本，逐条含八要素取值与组合校验结论 |
| 出 | `derived_outputs` | 结构 | 是 | 六类产出形态分文件存放，文件间以场景标识关联 |
| 出 | `constraint_blocks` | 结构 | 是 | 组合约束拦截计数与拦截原因分布 |
| 出 | `synthetic_marks` | 结构 | 是 | 合成标记与 `eval_use` 标记，逐条随样本留存 |
| 出 | `coverage_vs_history` | 结构 | 是 | 与历史工单分布的对照，长尾补齐部分单独标识 |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入 |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q2-FLT-0062",
  "selector": {"scenario_templates": ["SCN-CONVEYOR-07@v2", "SCN-REDUCER-03@v1"]},
  "params": {
    "fault_ontology_version": "ONT-FAULT-2027.01",
    "element_constraints_version": "ELC-v1.3",
    "distribution_ref": "WO-DIST-2024-2026",
    "output_forms": ["合成工单", "排障对话候选", "故障描述", "处置记录", "复盘摘要", "标签组"],
    "quota_config_version": "QUOTA-FAULT-2027Q2-v1",
    "target_count": 6000
  },
  "output": {"dataset_ref": "DS-SFT-2027Q2/fault", "formats": ["jsonl"]}
}
```

表 8-19　工单与故障场景模拟生成工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 八要素组合违反约束 | 策略类 | 要素取值、违反的约束编号 | 该组合拦截不生成，计入 `constraint_blocks` |
| 故障名录中该故障无检出手段对应 | 策略类 | 故障条目、缺失项 | 该故障的场景不生成诊断类产出，仅生成描述类产出并标注 |
| 历史工单分布引用不可读 | 输入类 | 引用标识 | 任务不启动；长尾补齐失去参照基准时不以估计分布替代 |
| 场景模板版本与本体版本不配套 | 参数类 | 两者版本 | 不受理 |
| 某故障类的合成量超过配额 | 策略类 | 故障类、配额、已生成量 | 按配额截断；需要扩大配额的走策略会签 |
| 合成样本未带来源字段 | 执行类（条目级） | 样本标识 | 该条不入库；来源字段是合成样本进入数据集的必要条件 |

接口层面可核对的点：`synthetic_marks` 逐条存在且 `eval_use` 为假；`coverage_vs_history` 把长尾补齐部分与真实分布部分分开呈现，不合并成一条曲线。质量指标按表 5-12 验收。

#### 8.10 文本重写与多样化工具链

本工具的契约重点在保护项。改写的价值在于表达多样化，风险在于改坏术语、数值、条款编号这类不可变内容。契约要求入参传保护词表版本，出参逐条回传保护项校验记录与原文映射（字段见本章表 5-18），使任何一条改写样本都能回到原文逐字比对。

表 8-20　文本重写与多样化工具的输入输出契约

| 方向 | 字段 | 类型 | 必填 | 口径 |
|---|---|---|---|---|
| 入 | `selector.source_sample_ids` | 列表 | 是 | 原始样本标识集合；须为已通过质检与一致性校验的样本 |
| 入 | `params.styles` | 列表 | 是 | 启用的改写风格（六种见本章表 5-13） |
| 入 | `params.protect_dict_version` | 引用 | 是 | 术语保护词表版本（七类保护对象见本章表 5-15） |
| 入 | `params.rewrite_config` | 结构 | 是 | 改写配置四项参数（见本章表 5-16） |
| 入 | `params.semantic_check_channels` | 列表 | 否 | 语义一致性校验的三个通道（见本章表 5-14），缺省三路全开 |
| 入 | `params.max_ratio_per_source` | 整数 | 否 | 单条原文最多产出的改写条数，缺省按数据集配比上限推定 |
| 出 | `rewrites` | 列表（流式） | 是 | 改写样本，逐条含风格标记、原文引用与改写比例 |
| 出 | `protection_check` | 列表 | 是 | 保护项校验记录，逐条列出被保护对象与校验结论 |
| 出 | `source_mapping` | 列表 | 是 | 原文与改写文本的映射记录（字段见本章表 5-18） |
| 出 | `filter_report` | 结构 | 是 | 五道过滤的逐道通过与拦截计数（见本章表 5-17） |
| 出 | 表 2-1 公共字段 | 结构 | 是 | 由公共层写入 |

调用样例：

```json
{
  "client_request_id": "REQ-2027Q2-RWT-0208",
  "selector": {"source_sample_ids": ["SMP-STD-000911", "SMP-STD-000912", "……"]},
  "params": {
    "styles": ["口语化", "书面化", "简述", "详述", "换问法", "换视角"],
    "protect_dict_version": "PROT-2027.01",
    "rewrite_config": {"rewrite_ratio": 0.35, "min_edit_distance": 0.25, "keep_structure": true, "max_length_delta": 0.3},
    "semantic_check_channels": ["规则", "向量相似", "模型判别"],
    "max_ratio_per_source": 3
  },
  "output": {"dataset_ref": "DS-PRETRAIN-2027Q2/rewrite", "formats": ["jsonl"]}
}
```

表 8-21　文本重写与多样化工具的异常与回退

| 异常情形 | 错误类 | 返回要点 | 回退动作 |
|---|---|---|---|
| 原始样本未通过质检 | 输入类 | 样本标识、质检状态 | 不改写；改写不良样本只会放大问题 |
| 保护项被改动 | 策略类 | 被改动的保护对象、原值与改后值 | 该条拦截不产出，并记入拦截原因分布 |
| 语义一致性三通道判定不一致 | 策略类 | 三通道各自结论 | 该条进人工复核队列，不按多数通过自动放行 |
| 单条原文改写条数超上限 | 策略类 | 原文标识、上限 | 按上限截断，防止少量原文被过度复制稀释多样性 |
| 改写后与原文编辑距离低于下限 | 策略类 | 实测距离、下限 | 该条拦截，近似复制不计入多样化产出 |
| 增强样本占比超过数据集配比上限 | 策略类 | 当前占比、上限 | 停止该数据集的改写生成；需要调整配比的走策略会签 |

接口层面可核对的点有两条：取任一条改写样本，按 `source_mapping` 能回到原文并逐字比对；构造一条改动了术语主词条的改写，须被 `protection_check` 判为未通过并拦截。质量指标按表 5-19 验收。

本节十个工具的契约、样例与异常口径与工具链一（任务 T2A）、工具链三（任务 T2C）同源：六类标准调用、错误四分类、状态机与幂等口径取自 T2C 第五节，输出格式与入库口径取自 T2C 5.2，血缘字段取自本章表 2-1 与 T2C 5.3。三处若出现表述差异，以 T2C 第五节为准。

### 九、单元编号与节号对应索引

本节给出招标文件属于本任务的 85 个单元与本章节号的对应关系，便于溯源核对与生成需求书逐条应答矩阵（任务 T9）。连续的行续接单元（如要求正文被分行的情形）合并为一行列出。

表 9-1　单元编号与节号对应索引

| 单元编号 | 招标文件位置 | 要求摘要 | 本章回应节号 |
|---|---|---|---|
| b0989 | p65 · 3.2.3.5 | 多模态数据对齐类工具链（类标题） | 三、3.1 |
| b0990 | p65 | 类总述：图纸、工艺图、图像、视频关键帧、文本、传感器时序、运维事件的对齐能力；语义／时间／空间／业务四类关联；覆盖图纸结构化、关键帧与事件对齐、时序事件对齐、特征抽取、诊断说明生成 | 三、3.1、3.2 |
| b0991 | p65 · 3.2.3.5.1 | 设备图纸与工艺图结构化抽取工具链（工具标题） | 三、3.3 |
| b0992 | p65 | （1）从设备和工艺图纸中抽取结构化数据信息 | 三、3.3.2—3.3.6 |
| b0993 | p65 · 3.2.3.5.2 | 视频－文本对齐工具链（工具标题） | 三、3.4 |
| b0994、b0995 | p65 | （1）按事件触发、关键帧或人工标记抽取图像帧，结合画面 OCR 与视觉描述形成帧级文本说明 | 三、3.4.2 |
| b0996、b0997 | p65 | （2）关键帧与设备运行事件、工艺阶段时间戳对齐；输出帧时间戳、视觉描述、事件标签、工艺阶段、置信度 | 三、3.4.3 |
| b0998、b0999 | p65 | （3）对齐校验：识别时间漂移、描述缺失、画面不匹配 | 三、3.4.4 |
| b1000 | p66 · 3.2.3.5.3 | 传感器时序-运维事件对齐工具链（工具标题） | 三、3.5 |
| b1001、b1002 | p66 | （1）时序数据与告警、停机、维修工单、运维事件时间窗对齐；按报警前后、维修前后或指定滑窗切分 | 三、3.5.2 |
| b1003、b1004 | p66 | （2）重采样、缺失补齐、异常值处理、归一化、基线漂移校正、多测点时间同步 | 三、3.5.3 |
| b1005、b1006 | p66 | （3）片段特征抽取：统计指标、趋势特征、峰值、频域、时频域；生成诊断文本说明 | 三、3.5.4 |
| b1007 | p66 · 3.2.3.6 | 智能标注类工具链（类标题） | 四、4.1 |
| b1008 | p66 | 类总述：文本、图像、图纸、工单、多模态样本的自动化与半自动化标注；覆盖大模型预标注、主动学习、本体规则标注、一致性校验、复核裁决、标注质量报告 | 四、4.1、4.2、4.7 |
| b1009 | p66 | 输入与产出清单 | 四、4.2（表 4-1）、4.7 |
| b1010 | p66 · 3.2.3.6.1 | 大模型预标注工具链（工具标题） | 四、4.3 |
| b1011、b1012、b1013 | p66–p67 | （1）多任务预标注模板管理：七类任务配置不同提示词与输出 Schema | 四、4.3.1 |
| b1014、b1015 | p66 | （2）批量生成预标注结果，输出含标签、解释、证据片段、置信度、模型版本、提示词版本 | 四、4.3.2 |
| b1016、b1017 | p66 | （3）Schema 校验、字段完整性校验、置信度阈值控制；高置信抽检、低置信入人工队列 | 四、4.3.3 |
| b1018、b1019 | p66 | （4）批量任务调度、失败重试、并发控制、成本统计、模型调用日志 | 四、4.3.4 |
| b1020、b1021 | p67 | （5）预标注结果与原始样本、提示词版本、模型版本绑定，保障可追溯 | 四、4.3.5 |
| b1022 | p67 · 3.2.3.6.2 | 主动学习标注工具链（工具标题） | 四、4.4 |
| b1023、b1024 | p67 | （1）采样机制：模型不确定性、低置信度、边界样本、模型分歧、长尾类别、错误高发来源 | 四、4.4.2 |
| b1025、b1026 | p67 | （2）标注结果回流模型训练，形成预测—标注—增量训练—再采样闭环 | 四、4.4.3 |
| b1027 | p67 | （3）避免重复派单与样本泄漏；保留采样批次、模型版本、策略参数 | 四、4.4.4 |
| b1028 | p67 · 3.2.3.6.3 | 本体驱动规则标注工具链（工具标题） | 四、4.5 |
| b1029、b1030 | p67 | （1）本体驱动规则标注：基于设备、部件、故障、工艺、材料、质量指标、安全规则本体关系生成候选标签 | 四、4.5.2 |
| b1031、b1032 | p67 | （2）本体约束校验：父子类、互斥关系、必选属性、关系方向、同义词、别名、取值范围 | 四、4.5.3 |
| b1033 | p67 · 3.2.3.6.4 | 一致性校验标注工具链（工具标题） | 四、4.6 |
| b1034、b1035 | p67 | （1）多人、多模型、人机交叉标注；计算一致率、冲突率等指标 | 四、4.6.2 |
| b1036、b1037 | p67 | （2）复核与裁决工作流：记录标注、修改、审核、驳回、专家裁决、最终确认全过程，满足审计追溯 | 四、4.6.3 |
| b1038、b1039 | p67 | （3）新术语发现与本体回流：别名、新故障模式、新工艺术语、规则歧义提交本体更新流程 | 四、4.6.4 |
| b1040 | p67 · 3.2.3.7 | 数据生成与增强类工具链（类标题） | 五、5.1 |
| b1041 | p67 | 类总述：训练数据扩充、长尾场景补齐、表达多样化、稀缺样本构造；覆盖种子指令管理、指令进化、受控合成、故障场景模拟、文本改写、生成质量过滤 | 五、5.1、5.2 |
| b1042 | p67 | 输入与产出清单 | 五、5.2（表 5-1） |
| b1043 | p68 · 3.2.3.7.1 | 指令数据生成工具链（工具标题） | 五、5.3 |
| b1044、b1045 | p68 | （1）基于种子指令集批量生成指令响应数据，覆盖知识问答、推理分析、信息抽取、摘要、分类、工具调用、多模态描述 | 五、5.3.1 |
| b1046、b1047 | p68 | （2）种子指令管理：任务类型、业务领域、难度等级、输入输出格式、参考答案 | 五、5.3.2 |
| b1048、b1049 | p68 | （3）指令进化：难度提升、约束增加、场景迁移、任务组合、表达变化 | 五、5.3.3 |
| b1050、b1051 | p68 | （4）按领域、任务、难度、长度、来源、质量等级控制生成分布 | 五、5.3.4 |
| b1052、b1053 | p68 | （5）规则过滤、模型评分、人工抽检、重复检测，剔除低质量、幻觉、越权、格式错误样本 | 五、5.3.5 |
| b1054、b1055 | p68 | （6）基于领域本体、历史工单分布与业务规则生成故障场景，组合设备、部件、故障模式、现象、原因、处置流程、备件、安全约束 | 五、5.3.6（生成器）、5.4（产出形态） |
| b1056 | p68 · 3.2.3.7.2 | 工单与故障场景模拟生成工具链（工具标题） | 五、5.4 |
| b1057、b1058 | p68 | （1）生成工单描述、故障树、诊断推理、维修建议、复盘总结、多轮排障对话 | 五、5.4.2、5.4.3 |
| b1059、b1060 | p68 | （2）合成样本标识与来源记录：synthesis_source、teacher_model、template_version、采样参数 | 五、5.4.4 |
| b1061 | p68 · 3.2.3.7.3 | 文本重写与多样化工具链（工具标题） | 五、5.5 |
| b1062、b1063 | p68 | （1）文本重写与风格迁移：口语化、书面化、技术化、简化、扩写、压缩 | 五、5.5.2 |
| b1064、b1065 | p68 | （2）语义一致性校验：向量相似度、关键信息抽取、规则检查 | 五、5.5.3 |
| b1066、b1067 | p69 | （3）术语保护与事实保护：关键实体、数值、单位、工艺参数、故障结论、安全约束、业务规则不得改变 | 五、5.5.4 |
| b1068、b1069 | p69 | （4）改写比例、改写次数、相似度阈值、风格分布配置 | 五、5.5.5 |
| b1070、b1071 | p69 | （5）生成数据质量过滤：规则校验、模型评分、语义相似度检测、重复检测、人工抽检 | 五、5.5.6 |
| b1072、b1073 | p69 | （6）输出原文与改写文本的映射关系、相似度评分、改写策略、审核状态 | 五、5.5.7、5.5.8 |
| b1147、b1148 | p72 · 3.2.3.11 | 接口要求：六类标准调用（引用，条款详述在工具链三） | 八、表 8-1 及各工具契约表；详述见工具链（三）5.1 |
| b1157、b1158 | p73 · 3.2.3.11 | 验收要求：接口说明与输入输出样例两项（引用，五件套口径详述在工具链三） | 八、各工具调用样例与异常回退表；详述见工具链（三）5.6 |

### 十、本稿待补材料清单

本章的结构与论述已按招标文件逐条完成，以下材料需由相应方提供后填入，稿件中以 `【待填：…】` 标注的位置与本清单一一对应。

表 10-1　本章待补材料清单

| 序 | 待补内容 | 用于本章何处 | 需向谁索取 | 影响 |
|---|---|---|---|---|
| 1 | 备料分厂正式工序字典（现掌握口径二十八道，需确认正式版本与各工序的前后依赖、禁止条件） | 三、3.3.2 候选工序生成；四、4.5.2 工艺域本体 | 甲方工艺部门 | 未确认前按已掌握口径运行并记为待补，不影响结构 |
| 2 | 中性层系数台账（板厚、折弯角度、模具三维对应） | 三、3.3.2、3.3.5 展开长计算 | 甲方工艺部门与工装管理 | 缺项处输出为待补并给经验区间，不取默认系数 |
| 3 | 企业缺陷分类表与检出手段对应关系 | 四、4.3.1 缺陷描述任务；4.5.2 质量指标域本体 | 甲方质量管理部门 | 缺失时缺陷描述任务的标签体系无法封闭 |
| 4 | 故障名录与四档证据分级的正式定义 | 三、3.5.6 候选标签；五、5.4 诊断推理的证据分档 | 甲方售后服务部门 | 缺失时证据分档只能按工具内置分档，与业务口径可能不一致 |
| 5 | 热处理三级判定标准正式文本 | 四、4.5.2 质量指标域本体；五、5.5 规程类文本改写的保护项 | 甲方热处理工艺与质量部门 | 影响质量域标注口径与判据口径的同源性 |
| 6 | 设备型谱、传动比与额定转速参数表 | 三、3.5.4 频域特征的特征频率计算 | 甲方设计部门 | 缺失时频域特征只能按估算值并降级 |
| 7 | 工艺过程视频新增布点清单（点位、视场、分辨率、帧率、时钟同步方式） | 三、3.4.7 可用率分层统计 | 甲方设备管理部门，与硬件选型（T6）协同 | 缺失时视频－文本对齐只能处理安防既有视频，可用率受限 |
| 8 | 源系统只读接口的开通范围与协议文档（图纸、测点时序、工单、检验记录） | 三、3.3.3、3.4、3.5 的输入接口 | 甲方信息化部门，与数据资源采集接入（T12）协同 | 接口未开通时工具按离线样本包调试 |
| 9 | 历史服务工单的故障模式频次统计 | 五、5.3.6 分布约束；5.4.6 长尾类目配额 | 甲方售后服务部门 | 缺失时长尾判定只能依据本体类目，不能依据实际频次 |
| 10 | 术语保护词表的企业侧初始内容（主词条、别名、不可改写项） | 五、5.5.4 七类保护对象的识别 | 甲方各业务部门，与数据治理（T4A／T4B）协同 | 缺失时术语保护只能依赖本体节点名，别名覆盖不足 |
| 11 | 种子指令的业务骨干编写安排（参与人员岗位、投入工时、评审方式） | 五、5.3.2 种子指令库建设 | 项目实施计划，与项目管理措施（S1）协同 | 影响指令数据生成的起步时点 |
| 12 | 标注人员的岗位要求与培训安排 | 七、7.1 培训材料；四、4.2 协同档位分配 | 与数据加工生产二（T1B）、项目管理措施（S1）协同 | 影响质量验收中判定人员的资格约定 |

清单中第 1 至 6 项属于判据与口径类材料，它们决定标注口径与业务判据能否同源，建议作为首批索取对象。第 7、8 项属于数据通道类，决定工具能处理哪些输入。第 9 至 12 项可在建设过程中逐步补齐，不构成起步障碍。
