合成数据质量、污染控制与训练集治理
合成数据能快速扩展覆盖面,也能把教师模型的幻觉、偏见和评测答案成倍放大。面试中要讲清:哪些样本可以自动生成,怎样验证,怎样避免把测试答案和用户隐私带回训练集。
一、30 秒面试回答
我把合成数据视为候选样本来源,而不是天然真值。生成前定义任务 schema、覆盖目标、禁止来源和许可边界;生成后用规则、执行 oracle、检索证据、模型 judge 与人工抽检分层验证。数据集按来源、教师模型、Prompt、版本、许可证、风险标签和过滤结果记录血缘;去重、近重复检测和 benchmark 隔离防止污染。训练前按任务路由到 SFT、偏好对或评测集,并保留独立 holdout;上线后将真实 bad case 与合成样本分开分析,防止模型只学会迎合教师或评测器。
二、先定义哪些样本值得合成
| 目标 | 可合成方式 | 必须验证 |
|---|---|---|
| 指令跟随/格式 | 模板扩展、角色改写 | schema、约束与多样性 |
| 代码/工具调用 | 生成任务与参数 | 编译、测试、执行 oracle |
| RAG 问答 | 基于许可文档生成 QA | 证据可追溯、答案可支持 |
| 偏好数据 | 多答案比较、批评改写 | rubric、位置偏差、人工锚点 |
| 安全对抗 | 越狱/注入变体 | 不泄露真实攻击或敏感数据 |
不适合只靠生成解决的包括高影响专业结论、来源不明的私有事实和无法验证的长尾判断。此类样本需要专家标注、外部事实核验或不进入训练。
三、候选生成与质量漏斗
coverage plan -> generation -> hard validation -> semantic validation
-> dedup/diversity -> risk review -> dataset release- 硬校验:JSON schema、语言、长度、敏感词、许可证、代码测试、工具参数。
- 证据校验:RAG 样本的答案必须能指向固定版本证据;事实型样本不接受无来源断言。
- 语义校验:Judge 按明确 rubric 检查相关性、完整性和安全,但需用人工锚点校准。
- 多样性:按意图、难度、语言、边界和失败类型分桶,避免 10 万条同义改写。
- 人工抽检:优先抽高风险、低置信、模型分歧和新领域样本。
过滤原因本身要保存,例如 schema_invalid、unsupported_claim、near_duplicate,否则无法调整生成策略。
四、去重、泄漏与数据污染
污染不只是完全重复。至少检查:
- 文本 hash 去重与 n-gram/embedding 近重复。
- 训练、验证、测试、线上 benchmark 和面试题库之间的交叉重合。
- 教师 Prompt、参考答案或评测 rubric 被复制进训练样本。
- 真实用户对话、文档和日志是否有授权、脱敏及保留期。
- 多轮样本是否泄露其他租户上下文、密钥、身份或隐藏系统指令。
测试集必须独立、访问受控,并在数据发布前做 overlap report。若无法证明未污染,就不能把 benchmark 提升当成能力提升。
五、数据血缘与不可变发布
每个 dataset release 记录:
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 预算、训练步数、混合比例和随机种子下比较 baseline 与 baseline + candidate dataset;按任务、难度、语言和风险切片,并在时间后移或新构造的独立集上确认增益。高通过率的合成样本仍可能冗余、不可学习,或只是让模型更会迎合 Judge。
十一、撤回、删除与模型记忆的真实边界
删除请求应定位原始样本、派生合成样本、缓存、评测集、训练 run、checkpoint、adapter 和发布模型。能够保证的是未来不再使用、可隔离、可回滚或可重训;不能轻率承诺已训练模型“立刻完全遗忘”。
处置按风险决定:未发布 adapter 可撤销;已发布但影响范围可控时回滚 adapter/模型;高风险或广泛使用的数据可能需要重训。结合敏感串 canary、输出抽取测试和记忆风险评估验证处置效果,并保留审计证据。
九、项目讲法模板
我们建立了合成数据候选到发布的质量漏斗:样本带教师模型、Prompt、来源和许可证血缘;先过 schema、执行/证据校验,再做语义质量、去重、多样性和风险抽检。训练、验证、holdout 与 benchmark 严格隔离,并在发布前输出 overlap 报告。数据按 SFT、偏好和评测用途分开管理,模型上线后用真实 bad case 验证收益,避免把教师模型偏差和评测答案直接放大。
继续学习:合成数据与自我改进、偏好优化 DPO、LLM 数据标注与偏好数据运营、LLM-as-a-Judge 校准与发布门禁。