Skip to content

合成数据质量、污染控制与训练集治理

合成数据能快速扩展覆盖面,也能把教师模型的幻觉、偏见和评测答案成倍放大。面试中要讲清:哪些样本可以自动生成,怎样验证,怎样避免把测试答案和用户隐私带回训练集。

一、30 秒面试回答

我把合成数据视为候选样本来源,而不是天然真值。生成前定义任务 schema、覆盖目标、禁止来源和许可边界;生成后用规则、执行 oracle、检索证据、模型 judge 与人工抽检分层验证。数据集按来源、教师模型、Prompt、版本、许可证、风险标签和过滤结果记录血缘;去重、近重复检测和 benchmark 隔离防止污染。训练前按任务路由到 SFT、偏好对或评测集,并保留独立 holdout;上线后将真实 bad case 与合成样本分开分析,防止模型只学会迎合教师或评测器。

二、先定义哪些样本值得合成

目标可合成方式必须验证
指令跟随/格式模板扩展、角色改写schema、约束与多样性
代码/工具调用生成任务与参数编译、测试、执行 oracle
RAG 问答基于许可文档生成 QA证据可追溯、答案可支持
偏好数据多答案比较、批评改写rubric、位置偏差、人工锚点
安全对抗越狱/注入变体不泄露真实攻击或敏感数据

不适合只靠生成解决的包括高影响专业结论、来源不明的私有事实和无法验证的长尾判断。此类样本需要专家标注、外部事实核验或不进入训练。

三、候选生成与质量漏斗

text
coverage plan -> generation -> hard validation -> semantic validation
              -> dedup/diversity -> risk review -> dataset release
  1. 硬校验:JSON schema、语言、长度、敏感词、许可证、代码测试、工具参数。
  2. 证据校验:RAG 样本的答案必须能指向固定版本证据;事实型样本不接受无来源断言。
  3. 语义校验:Judge 按明确 rubric 检查相关性、完整性和安全,但需用人工锚点校准。
  4. 多样性:按意图、难度、语言、边界和失败类型分桶,避免 10 万条同义改写。
  5. 人工抽检:优先抽高风险、低置信、模型分歧和新领域样本。

过滤原因本身要保存,例如 schema_invalidunsupported_claimnear_duplicate,否则无法调整生成策略。

四、去重、泄漏与数据污染

污染不只是完全重复。至少检查:

  • 文本 hash 去重与 n-gram/embedding 近重复。
  • 训练、验证、测试、线上 benchmark 和面试题库之间的交叉重合。
  • 教师 Prompt、参考答案或评测 rubric 被复制进训练样本。
  • 真实用户对话、文档和日志是否有授权、脱敏及保留期。
  • 多轮样本是否泄露其他租户上下文、密钥、身份或隐藏系统指令。

测试集必须独立、访问受控,并在数据发布前做 overlap report。若无法证明未污染,就不能把 benchmark 提升当成能力提升。

五、数据血缘与不可变发布

每个 dataset release 记录:

text
source type + source ids/hashes + license + teacher model/prompt
+ generation time + validators + filters + human review + split policy

原始候选、过滤产物和最终训练集分层保存;不可通过修改历史 CSV 覆盖版本。删除/撤销请求要能反向定位使用过该样本的数据集、adapter、模型实验和评测报告。

六、SFT、偏好数据与评测集的边界

SFT 样本教“正确的目标输出”;偏好样本教“在多个可选回答中偏好哪个”;评测集只用于测量,不应回流训练。将同一个合成 QA 同时用于训练和评测会制造虚假的提升。对于偏好对,记录比较标准、候选来源、顺序随机种子与标注/Judge 版本,防止长度偏差和教师模型自我偏好。

七、发布门禁与线上闭环

数据发布前比较:领域能力、通用能力、安全、拒答、结构化输出、长尾切片和成本。模型上线后还要看真实任务成功、人工纠错和投诉;若只在合成集上升、线上无收益,应调查覆盖偏差、奖励投机或训练/评测泄漏。线上 bad case 可成为新候选,但要经过授权、脱敏、标注和独立 split,不能直接喂回训练。

八、高频问答

Q:怎样判断合成数据质量?

不只看数量或教师模型大小。按任务使用确定性规则、执行测试、证据核验、校准过的 Judge 和人工抽检;同时量化通过率、多样性、近重复、事实支持率和高风险漏检率。

Q:如何避免 benchmark 污染?

将测试/benchmark 与训练源隔离、限制访问、做 hash 与语义 overlap 检查;禁止将参考答案、Judge rubric 和线上评测样本回灌训练。发布报告显式记录污染检查范围与剩余风险。

Q:合成数据会放大教师模型偏见怎么办?

使用多来源教师、对抗生成和人工锚点;按人群/语言/任务切片检查偏差;让高风险样本进入人工复核。不要把单个教师的输出当作唯一真理。

九、污染检测不是二元判断

词面 hash、n-gram 和 embedding 相似度只能提供证据,不能证明“绝对未泄漏”。用已知泄漏/未泄漏样本校准阈值,并将检测结论分为:

结论处置
clean允许进入候选集,保留检测证据
suspected隔离,交由人工或更强检测复核
confirmed从训练/评测交叉集合移除,重跑报告
unknown不作为关键泛化结论依据,降低声明强度

除文本相似度外,还检查题目族、执行轨迹、教师 Prompt、参考答案和工具输出的重合。发布报告应写“在已定义检测范围内未发现显著重合”,而不是宣称不可能存在污染。

十、评测集有寿命,增益要证明泛化

holdout 一旦被用于反复调参、错误分析或 Prompt 优化,就不再是严格意义的 holdout,应降级为 validation。将公开基准、内部 golden、暗测集分别设置访问者、查询预算、轮换周期和 retirement 条件,并在报告中区分预注册指标与事后探索指标。

数据发布门禁还要验证“教学价值”:在固定 token 预算、训练步数、混合比例和随机种子下比较 baselinebaseline + candidate dataset;按任务、难度、语言和风险切片,并在时间后移或新构造的独立集上确认增益。高通过率的合成样本仍可能冗余、不可学习,或只是让模型更会迎合 Judge。

十一、撤回、删除与模型记忆的真实边界

删除请求应定位原始样本、派生合成样本、缓存、评测集、训练 run、checkpoint、adapter 和发布模型。能够保证的是未来不再使用、可隔离、可回滚或可重训;不能轻率承诺已训练模型“立刻完全遗忘”。

处置按风险决定:未发布 adapter 可撤销;已发布但影响范围可控时回滚 adapter/模型;高风险或广泛使用的数据可能需要重训。结合敏感串 canary、输出抽取测试和记忆风险评估验证处置效果,并保留审计证据。

九、项目讲法模板

我们建立了合成数据候选到发布的质量漏斗:样本带教师模型、Prompt、来源和许可证血缘;先过 schema、执行/证据校验,再做语义质量、去重、多样性和风险抽检。训练、验证、holdout 与 benchmark 严格隔离,并在发布前输出 overlap 报告。数据按 SFT、偏好和评测用途分开管理,模型上线后用真实 bad case 验证收益,避免把教师模型偏差和评测答案直接放大。

继续学习:合成数据与自我改进偏好优化 DPOLLM 数据标注与偏好数据运营LLM-as-a-Judge 校准与发布门禁

基于 MIT 许可发布