跳到正文

合成数据怎么系统构建?

模板/LLM/回译方法,质量控制与风险规避

原题:在缺乏足够真实标注数据的情况下,如何系统性地构建高质量的大规模人工合成数据?请描述常用方法(如模板生成、LLM生成、回译等)、质量控制手段及潜在风险规避策略。

模型训练 · 美团真题

回答与解析

合成数据前要先定义缺口。模板适合规则明确、槽位可枚举的任务;回译与改写适合保持语义的表达扩展;LLM可以生成开放指令、对话和解释;模拟器适合能执行验证的代码、数学或工具任务。不同方法产生的偏差不同,不能只追求数量。

Self-Instruct不是把种子指令做相似改写。它用一小组人工任务引导模型生成新的指令,并根据指令是否需要输入继续生成输入与输出,再通过相似度和启发式规则过滤,形成迭代数据。实现时要保留来源、生成模型、prompt和过滤版本,防止同一模板无限扩张。

质量控制应按可验证性分层。代码运行测试,数学重算结果,检索型答案检查权威资料和引用,结构化任务用schema与业务规则,主观写作用盲标gold和成对人评。多个模型给出相同答案只能作为弱信号,因为它们可能共享训练数据、知识盲点和表达捷径。

困惑度可以反映文本在某个语言模型下的可预测程度,却不是通用质量分数。低困惑度可能只是模板重复,高困惑度也可能来自专业术语。它可以用于异常筛选,但不能代替事实、相关性与任务正确性。强模型打分同样要用人工gold校准。

分布治理要保留真实数据锚点,并按来源、意图、难度、长度和语言检查覆盖。只按embedding分散也不保证业务多样性,还要限制单种子与单模板贡献,做近重复和基准污染检测。涉及用户或专业数据时,合成并不会自动消除隐私与许可风险。

我会用相同训练预算比较真实数据基线、不同合成配比和过滤方案,在完全真实且未参与生成的held-out集上评测,并按错误类型人工抽检。若合成数据只提升类似模板而损伤真实长尾,就降低权重或停止。合成是扩展覆盖的工具,不是事实真值的来源。

口语版讲法(约4分钟)

  • 选择适合任务的合成方式
  • 准确描述Self-Instruct流程
  • 建立多层验证
  • 控制分布与模板坍缩
  • 用真实holdout验收

合成数据前要先定义缺口。模板适合规则明确、槽位可枚举的任务;回译与改写适合保持语义的表达扩展;LLM可以生成开放指令、对话和解释;模拟器适合能执行验证的代码、数学或工具任务。不同方法产生的偏差不同,不能只追求数量。

Self-Instruct不是把种子指令做相似改写。它用一小组人工任务引导模型生成新的指令,并根据指令是否需要输入继续生成输入与输出,再通过相似度和启发式规则过滤,形成迭代数据。实现时要保留来源、生成模型、prompt和过滤版本,防止同一模板无限扩张。

质量控制应按可验证性分层。代码运行测试,数学重算结果,检索型答案检查权威资料和引用,结构化任务用schema与业务规则,主观写作用盲标gold和成对人评。多个模型给出相同答案只能作为弱信号,因为它们可能共享训练数据、知识盲点和表达捷径。

困惑度可以反映文本在某个语言模型下的可预测程度,却不是通用质量分数。低困惑度可能只是模板重复,高困惑度也可能来自专业术语。它可以用于异常筛选,但不能代替事实、相关性与任务正确性。强模型打分同样要用人工gold校准。

分布治理要保留真实数据锚点,并按来源、意图、难度、长度和语言检查覆盖。只按embedding分散也不保证业务多样性,还要限制单种子与单模板贡献,做近重复和基准污染检测。涉及用户或专业数据时,合成并不会自动消除隐私与许可风险。

我会用相同训练预算比较真实数据基线、不同合成配比和过滤方案,在完全真实且未参与生成的held-out集上评测,并按错误类型人工抽检。若合成数据只提升类似模板而损伤真实长尾,就降低权重或停止。合成是扩展覆盖的工具,不是事实真值的来源。

生成器与评估器最好不要共享完全相同的提示和单一模型,否则容易共同偏向某种格式。即便使用不同模型,也要用真实gold校准。对于高风险领域,合成样本只能补充表达覆盖,核心事实和标签仍需权威数据或专家确认,不能因为规模压力降低验证标准。

合成流程还要检测评测污染。生成模型可能已经见过公开基准,并把题目或答案复现到训练集。应对真实held-out做近重复和语义检索,记录生成种子来源。若无法确认隔离,相关基准只能作为开发信号,不能用于最终泛化声明。

关键一句:为什么多模型一致和低困惑度都不能直接证明合成样本正确。

核验来源

  1. Self-Instruct: Aligning Language Models with Self-Generated Instructions
  2. WizardLM: Empowering Large Language Models to Follow Complex Instructions

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设你要做一个金融客服的意图分类数据,但真实标注样本只有几百条,业务方又要求覆盖几十种理财咨询场景。你打算怎么用合成数据把这套分类模型撑起来?

  2. 问法 2 · 层层追问

    合成数据你一般是怎么搞的?……如果只有几条种子样本,怎么让它变出几万条?……那你怎么保证生成的数据质量,不会把模型带偏?

  3. 问法 3 · 直球架构

    请系统性地讲一下构建大规模人工合成数据的流程:你会用到哪些方法?质量怎么控制?有哪些潜在风险以及怎么规避?

同模块相关题目