数据治理

非结构化与半结构化数据治理方法论:面向大模型问答训练数据集

1. 本章的适用范围

本章讨论的工作,是将已有的非结构化、半结构化数据加工为高质量的单轮问答数据集,用于大模型监督微调(SFT)。典型原始数据包括 PDF、Word、PPT、TXT、图片,以及其他可以提取文本内容的数据。

当前作业流程可以概括为:

原始数据
  → 解析为 Markdown
  → 切分为文本块
  → 从文本块生成问题
  → 根据问题和来源生成答案
  → 审核问答对
  → 导出训练数据集

现阶段可以使用 MarkItDown、MinerU、EasyDataset 等工具完成部分工作,也可以开发自有工具。本章讨论的是跨工具适用的治理方法:每一步要保证什么、可能引入什么错误,以及如何判断产物能否进入下一步。具体工具的选型、参数和程序接口属于后续实现设计。

最终交付的数据采用单轮对话格式:

{
  "messages": [
    {
      "role": "user",
      "content": "问题内容"
    },
    {
      "role": "assistant",
      "content": "答案内容"
    }
  ]
}

这份交付文件保持简洁。来源、审核、版本等治理信息应在生产过程中另行保存,并能与交付样本对应。

2. 核心概念:治理的是一条内容生产链

在这项工作中,“数据治理”指对原始内容及其逐级加工产物进行检查、修正、筛选和追溯,确保最终问答对适合训练。

一份文件可能产生一份或多份解析结果;解析结果形成多个文本块;文本块产生候选问题;问题再产生候选答案。因此,问答质量并不只取决于最后一次答案生成。上游错误会沿着生产链传递:

PDF 中的“不宜”
  → 解析错误,变成“不应”
  → 文本块保留了错误
  → 生成的问题和答案继续使用错误
  → 错误进入训练集

治理的基本方法是:在每一步识别本步骤可能引入的失真,在进入下一步之前作出处理决定;发现下游错误时,沿来源链回查原因。

这里要区分三个对象:

  • 加工产物:Markdown、文本块、候选问题、候选答案等。
  • 治理记录:产物来自哪里,经过了什么处理,检查发现了什么问题,最终如何处置。
  • 训练样本:审核通过后,按 messages 格式导出的问答对。

“成功生成”只说明加工程序完成了工作;“可以进入训练集”还需要质量判断。

3. 从最终训练目标倒推质量要求

最终目标不是获得尽可能多的问答对,而是让模型学到目标领域中准确、适用、表达恰当的回答方式。因此,一条候选问答至少需要满足以下要求:

质量维度判断问题
来源可靠能否找到支持答案的原始内容?
问题成立问题是否明确,是否准确保留适用对象和条件?
内容可回答来源是否足以回答这个问题?
答案准确每个关键结论是否有依据,是否与来源一致?
训练价值样本是否对应项目需要模型掌握的知识或任务?
使用适宜样本是否符合项目对敏感信息、授权和使用范围的要求?

这些要求反过来决定上游应如何工作。例如,最终答案需要回查依据,那么解析阶段就要保留内容与原文件的定位关系;最终答案必须保留例外条件,那么切块阶段就不能随意把规则和例外拆开。

4. 原始数据到 Markdown:保证内容保真

解析阶段的任务,是把不同格式的内容转换为后续可处理的文本。其质量目标是重要信息完整、阅读顺序正确、关键含义不变,并能回查原件。Markdown 排版是否美观不是首要标准。

需要特别关注:

  • 正文、标题、表格是否遗漏;
  • 多栏页面、跨页段落和幻灯片文本框的阅读顺序是否正确;
  • 数值、单位、否定词和规范性用语是否变化;
  • 表格中的行、列和表头关系是否保留;
  • 图片或图表中的重要信息是否未被提取;
  • 解析后的内容能否定位到原文件的页、章节或其他位置。

文件类型不同,风险也不同。扫描 PDF 可能依赖 OCR;Word 可能涉及标题和列表层级;PPT 可能涉及文本框顺序与图表;图片可能仅提取出文字,却丢失图形表达的关系。大型 PDF 还要求处理过程能够定位局部问题,而不能只给出整个文件“成功”或“失败”的结论。

这一环的通过标准是:

Markdown 已可靠表达后续问答所需的内容;对于无法可靠表达的部分,能够识别并避免其直接进入问答生产。

5. Markdown 到文本块:保证语义完整

文本块是后续生成问题和答案时使用的内容范围。切块的主要风险,是把原本完整的含义拆散。

例如,一段规定先给出一般要求,随后列出适用条件和例外。如果文本块只留下前半段,后续生成的答案可能变得过于绝对。因此,切块应遵循以下原则:

  1. 语义完整:规则、条件、例外和结论尽量处于能够共同理解的范围内。
  2. 上下文充分:“上述情况”“该设备”等表述应能找到所指对象。
  3. 来源可追溯:能从文本块回到相应文档及位置。
  4. 覆盖合理:重要内容不遗漏,也不过度重复。

字符数或 token 数可以作为处理限制,但不能单独决定边界。条款、操作步骤、表格和长篇论述,可能需要不同的切分方式。

并非每个合格文本块都必须生成问题。目录、重复页眉、信息不足的片段,可以保留为解析结果,同时判定为“不适合生成问答”。

这一环的通过标准是:

不依赖猜测缺失上下文,就能理解文本块中准备用于提问的事实、规则或过程。

6. 文本块到问题:保证提问有价值且可回答

生成问题的目标,是覆盖项目希望模型掌握的知识与任务,不是让每个文本块产出固定数量的问题。

候选问题应满足五项要求:

  • 有依据:来源内容确实包含回答所需的信息。
  • 表述完整:脱离文本块后,问题仍能被理解。
  • 边界准确:保留来源的适用对象、前提和范围。
  • 有训练价值:符合真实业务中的提问需求。
  • 有差异性:相较现有样本,增加了知识覆盖或有意义的提问方式。

“为什么不宜采用某方法”与“采用该方法为何不合适”通常只是在重复同一知识点。相反,分别讨论适用条件、处理方式和原因,可能有不同价值,但前提是来源分别支持这些回答。

尤其要警惕问题中的错误预设。如果来源只说某方法适用于特定损伤,问题却问成“所有情况下为什么都应采用该方法”,即使尚未生成答案,问题已经不合格。

这一环的通过标准是:

这个问题值得模型学习,其限定条件准确,而且指定来源足以回答。

7. 问题到答案:保证每个结论有依据

答案生成的首要标准是忠于来源。可以对原文进行归纳、改写和组织,但不能将模型自行推测的内容写成确定事实。

审核时需要分别检查:

  • 是否直接回答了问题;
  • 每个关键结论是否得到来源支持;
  • 数值、单位、条件和例外是否保留;
  • “应、不得、不宜、可以”等用语的强度是否改变;
  • 是否为了追求详细而增加无依据的解释。

对于“为什么”类问题,来源必须提供原因或足以支持原因的内容。如果来源仅给出一条规定,没有解释原因,就不应仅凭该规定生成一段看似完整的原因分析。可以寻找并记录其他可靠来源;若仍无充分依据,该候选问答应退出普通问答数据集。

你提供的压力容器样本说明了这一点:答案列出了多项具体原因。判断其质量,需要逐项对照来源,而不能只根据答案流畅、详尽就批准入集。这里并不预判该样本的技术结论是否正确,因为我们尚未核对原始材料。

这一环的通过标准是:

答案回应了问题;每个实质性结论都有可核对的依据;原文的适用范围和表达强度得到保留。

8. 从合格问答到高质量数据集

单条问答都合格,也不代表整个数据集适合训练。还要检查整体分布:

维度关注的问题
知识覆盖目标主题、规则、流程、条件和例外是否得到覆盖?
重复程度是否存在大量仅改变措辞的近似问答?
任务分布是否只有原文摘录题,缺少项目需要的解释、比较和条件判断?
表达一致性术语、答案风格和措辞强度是否一致?
来源版本失效材料与现行材料是否混用,是否出现相互矛盾的样本?

覆盖度不能只按文件数、文本块数或问答总量判断。一份长文件可能贡献大量相似问答,却仍有关键章节未覆盖。应从项目希望模型学习的知识点和提问任务出发,观察样本分布。

如果要划分训练和验证数据,同一原始内容衍生出的相似问答应避免分散到两侧。否则模型可能在训练中见过一个问法,验证时遇到其改写,导致评估结果偏高。

9. 质量判定:通过、待修复、剔除

每个环节发现异常后,都用两个问题判断:是否改变最终问答的事实或含义?能否依据原始材料可靠修复?

处理结果适用情况
通过内容可靠;存在的细小问题不影响含义和后续使用
待修复或复核有疑点,但能够回查来源并作出可靠判断
剔除关键依据缺失,或无法可靠恢复原意

质量判定要重视错误的影响,而非字面差异大小。“不宜”变成“不应”可能改变规则含义,应优先核对;多一个空行通常不影响训练价值。

自动检查可以提示疑点,但应区分“程序发现了可疑现象”和“已经确认存在错误”。也不宜让一个综合质量分掩盖关键错误:答案再流畅,只要核心结论无依据,就不能凭总分高而入集。更稳妥的做法是关键项设门槛,非关键项允许修复,分数用于安排复核顺序

10. 抽检与人工复核

数据量较大时,人工复核需要同时承担两种不同任务:重点发现问题,以及判断整批数据的质量

可采用三层检查:

  1. 全量自动检查:筛查格式、空内容、明显重复、来源缺失,以及关键数值或用语的可疑变化。
  2. 风险重点复核:优先审核扫描件、复杂表格、跨内容块作答、涉及数值或严格适用条件,以及自动检查标记的样本。
  3. 分层随机抽检:从未被标记的样本中,覆盖不同文件类型、主题、来源和生成批次进行抽查。

重点复核有利于发现和修复错误,但其结果不能直接代表整批数据的错误率。随机抽检才更适合判断整体情况。若同一文档产生大量相似问答,抽样时也要避免样本过度集中在这份文档。

审核人员应对照来源分别判断问题、答案和限定条件,记录具体错误类型。对有争议的案例,形成一致的裁定口径。发现某类错误集中出现后,应扩大对同类来源和同次处理结果的检查范围。

11. 溯源、修复与版本闭环

发现一条不合格答案时,应沿着生产链回查:错误来自原始材料、解析、切块、问题生成、答案生成,还是数据集汇总?修复应尽量发生在产生错误的环节。

例如,答案把“不宜”写成“不应”,应先核对原始文件和 Markdown:

  • 若 Markdown 已经写错,修复解析问题,并检查同批解析结果。
  • 若问题改写了原文,修复问题生成或审核规则。
  • 若只有答案写错,修复答案生成或答案审核规则。
  • 若不同来源本身存在差异,检查版本和适用范围。

修正一条样本,并不等于消除了同类问题。完整闭环包括:发现 → 归类 → 溯源 → 修复 → 复验 → 发布新版本

已经用于训练的数据集应保留为固定版本。后续修正以新版本发布,并记录样本变化。这样才能解释模型效果的变化,也能在出现问题时确定受影响的训练数据范围。

12. 用模型效果检验数据治理

生产过程中的审核通过率、重复比例、来源可追溯比例等指标,说明数据生产得怎样;模型训练后的测试,才说明这些数据是否帮助模型完成目标任务。两者需要结合,不能互相代替。

模型评估应重点观察:

  • 目标领域问题是否回答正确;
  • 条件、例外和措辞强度是否保留;
  • 换一种自然问法后是否仍能正确回答;
  • 依据不足时是否避免编造确定结论。

比较不同版本的数据集时,应尽量固定基础模型、训练配置和测试题,减少其他因素的影响。对于只做 SFT、没有检索能力的模型,还要区分两种测试目的:用已训练知识的新问法检验理解和表达;用未见材料检验任务迁移能力。不能要求模型凭空准确记住从未进入训练的数据中的专有事实。

评估发现的错误也要回流。例如,模型反复把建议性表述答成强制性要求,就要检查训练样本、生成提示词和审核标准中是否存在同类偏差。

13. 方法论小结

整套方法可以归纳为一条主线:

以训练目标确定质量标准;以来源关系贯穿加工过程;逐环拦截含义失真;以人工复核校准自动检查;以数据集分布控制整体质量;最后用模型表现反向改进数据。

它既适用于当前使用 EasyDataset 的作业流程,也可以指导以后自研工具。工具负责执行解析、生成和检查;方法论负责规定什么结果可信、何时可以继续、出了问题如何定位,以及怎样证明最终数据集有价值