4. 制造领域数据采集与预处理

制造企业的知识资产天然分散:设备手册是PDF,工艺文件是Excel或Word,质检报告来自MES/QMS系统,维修记录躺在工单系统或班组微信群里。这些数据格式不同、术语不同、颗粒度不同,直接喂给RAG只会得到“检索得到但答不准”的结果。本章聚焦一条完整的数据管道:采集 → 解析 → 清洗 → 标准化 → 质量校验,目标是让多源异构数据变成可检索、可对齐、可追溯的知识单元。

一、核心原理:多源异构的三层差异

制造数据的“异构”不只是文件格式不同,而是三层差异叠加:

  • 结构异构:PDF手册是非结构化文本,Excel工艺卡是半结构化表格,MES质检数据是结构化字段,维修工单是“半结构化文本+附件图片”。
  • 语义异构:同一对象在不同系统中叫法不同,例如“主轴电机”在手册中叫“Spindle Motor”,在维修记录中叫“主轴马达”,在BOM中编码为“MTR-0012”。
  • 颗粒度异构:手册按“章节-步骤”组织,质检报告按“批次-样本”组织,维修记录按“工单-故障现象-处理动作”组织。检索时若颗粒度不统一,召回结果会忽长忽短。

因此,预处理的核心不是“把文件转成文本”,而是建立统一的知识单元模型:每个单元包含“对象标识 + 属性/参数 + 操作/现象 + 来源出处”。只有对齐到同一对象,后续的向量检索和答案生成才能跨源引用。

关键原则:先定“知识单元Schema”,再做采集与清洗。Schema决定了要抽哪些字段、保留哪些上下文、如何标注来源。没有Schema的清洗,只是把脏数据从A格式搬到B格式。

二、方法流程:从原始文件到可检索知识单元

下面给出一个可落地的六步流程,适用于设备手册、工艺文件、质检报告、维修记录四类数据。

  1. 采集与登记:按来源系统建立采集任务,记录文件路径、版本号、生效日期、责任部门。对PDF/扫描件先做OCR,对Excel做表头识别,对数据库做增量抽取。
  2. 解析与分块:PDF按标题层级切分,表格按“行=记录、列=字段”解析,工单按“故障现象/原因/措施”三段切分。分块时保留父级标题和页码,便于溯源。
  3. 清洗:去除页眉页脚、乱码、重复段落;统一单位(mm/m、℃/K);修正OCR常见错字(如“主轴”误识为“主抽”)。
  4. 标准化:将术语映射到企业标准词表,将设备编码、物料编码、工序编码统一为唯一ID;时间统一为ISO 8601格式。
  5. 知识单元组装:按Schema输出JSONL,每条包含object_id、object_name、doc_type、content、source、version、effective_date等字段。
  6. 质量校验:抽样检查术语映射准确率、分块完整性、来源可追溯性;对低置信度记录打标,进入人工复核队列。
制造多源异构数据采集与预处理管道 数据源 设备手册 PDF 章节 / 参数表 / 图 工艺文件 Excel 工序 / 参数 / 版本 质检报告 QMS 批次 / 样本 / 判定 维修记录 工单 现象 / 原因 / 措施 采集与解析 OCR / 表头识别 标题层级切分 表格行记录解析 工单三段切分 保留页码/版本 输出:原始文本块 + 来源元数据 清洗与标准化 去页眉页脚/乱码 单位统一 mm/℃ 术语映射标准词表 编码统一唯一ID 时间 ISO 8601 输出:规范文本块 + 标准术语/编码 知识单元 object_id object_name content source / version effective_date 输出:JSONL 可检索/可溯源 质量校验与人工复核 抽样检查术语映射准确率 · 分块完整性 · 来源可追溯性 · 低置信度打标 不合格 → 返回清洗/标准化;合格 → 进入向量化与索引

三、案例场景:四类数据的清洗要点

不同来源的数据,清洗重点差异很大。下表给出可直接对照执行的清单。

数据源 典型问题 清洗动作 标准化目标
设备手册 PDF 页眉页脚混入正文、图表标题断裂、OCR错字 按标题层级切分;过滤页眉页脚;OCR后处理纠错 章节-步骤-参数三级结构,保留页码
工艺文件 Excel 合并单元格、多表头、单位不统一、版本混乱 展开合并单元格;识别表头行;单位换算;版本去重 工序ID + 参数名 + 参数值 + 单位 + 版本
质检报告 QMS 批次号格式不一、判定值中英文混用、样本缺失 批次号归一化;判定值映射为PASS/FAIL;缺失标记 批次ID + 检测项 + 实测值 + 判定 + 时间
维修记录 工单 口语化描述、故障现象与原因混写、附件未关联 按“现象/原因/措施”分段;术语映射;附件OCR关联 设备ID + 故障现象 + 原因 + 措施 + 工时

以一个真实场景为例:某汽车零部件厂的“主轴电机过热”问题,在手册中对应“Spindle Motor Overheat”,在维修工单中写的是“主轴马达发烫”,在质检报告中体现为“温升超标”。若不做术语映射,RAG检索“主轴电机过热”时只能召回手册,无法关联到维修案例和质检数据。标准化后,三者统一到object_id: MTR-0012,检索即可跨源聚合。

四、误区与复盘

常见误区一:先向量化,后清洗。把原始PDF直接切块嵌入,会导致大量噪声向量污染索引。正确顺序是先清洗标准化,再向量化。

常见误区二:只做格式转换,不做语义对齐。把Excel转成JSON不等于标准化。没有术语映射和编码统一,跨源检索仍然失败。

常见误区三:忽略版本与生效日期。工艺文件有多个版本,若不加版本字段,RAG可能引用已作废的工艺参数,造成严重误导。

复盘建议:每批数据入库前,抽取50~100条做人工校验,重点看三项指标——术语映射准确率(目标≥95%)、分块完整性(标题与正文不分离)、来源可追溯性(每条知识单元能定位到原文件页码或工单号)。低于阈值时,优先修正词表和分块规则,而不是盲目增加数据量。

五、可执行的配置示例

下面是一个知识单元Schema的JSONL示例,可直接作为清洗管道的输出规范:

{
  "object_id": "MTR-0012",
  "object_name": "主轴电机",
  "doc_type": "maintenance_record",
  "content": "故障现象:主轴电机过热报警。原因:冷却风扇堵塞。措施:清理风扇并复位。",
  "source": "工单 WO-2024-0317",
  "version": "v1.0",
  "effective_date": "2024-03-17",
  "confidence": 0.92
}

清洗规则可以用配置文件管理,便于迭代:

# clean_rules.yaml
term_mapping:
  "主轴马达": "主轴电机"
  "Spindle Motor": "主轴电机"
  "发烫": "过热"
unit_normalize:
  "mm": "mm"
  "厘米": "cm"
  "℃": "°C"
chunk:
  max_tokens: 512
  overlap: 64
  keep_parent_title: true

实践提示:清洗规则和词表应版本化管理,每次变更记录影响范围。对于制造领域,术语映射表往往需要工艺、设备、质量三方共同确认,不能只由IT部门闭门造车。

总结来说,制造领域的数据采集与预处理,本质是一场“语义对齐工程”。采集解决“拿得到”,清洗解决“干净”,标准化解决“对得上”,质量校验解决“信得过”。四步都做到位,RAG才有可靠的知识底座。