合成数据怎么用?大模型生成训练数据有哪些风险?
面试怎么回答
合成数据常用来扩充微调样本、基于文档自动构建评测集、生成不含真实个人信息的测试数据、生成边界和攻击样本,以及做表达方式的增强。风险是错误被当成真理、多样性不足和真实分布差距大、偏差被放大、反复用合成数据训练导致模型崩塌、用同一模型出题再评测自己分数偏高,以及可能复现真实隐私信息。我的控制方法是真实数据为主合成为辅;能验证的必须验证,SQL 要能执行且结果正确,问答要能在原文找到依据;生成时控制场景、难度和风格并统计分布;每批人工抽检,标记数据来源;上线判断基于真实问题的评测集,并对合成数据做敏感信息扫描。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
真实数据不够、标注太贵、涉及隐私不能用,于是越来越多团队用大模型生成训练数据和测试数据:生成问答对、生成 SQL 样本、生成模拟的用户对话。面试官问合成数据,想看你知道它能解决什么,也知道它的风险和控制方法。
合成数据的常见用途
- 扩充训练数据:为微调生成指令和回答样本,尤其是覆盖真实数据里少见的场景;
- 构建评测集:基于文档自动生成问题和标准答案,用于 RAG 评测;
- 隐私替代:生成和真实数据分布相似但不包含真实个人信息的测试数据;
- 边界和攻击样本:生成各种注入、越权、歧义的问题,测试系统的鲁棒性;
- 数据增强:同一个问题生成多种表达方式。
主要风险
- 错误被当成真理:生成的答案可能是错的,模型学会了错误的知识或 SQL 写法;
- 多样性不足:模型生成的数据风格趋同,句式、用词、问题类型集中,和真实用户的分布差距大;
- 偏差放大:生成模型自身的偏见和习惯被复制和放大;
- 模型崩塌:反复用模型生成的数据训练模型,多代之后输出的多样性和质量下降;
- 评测失真:用同一个模型生成测试题再评测它自己,分数会偏高;
- 隐私泄露:生成模型可能把训练时见过的真实信息复现出来。
控制方法
- 真实数据为主,合成数据为辅:合成数据用来补充覆盖面,不要完全替代真实数据;
- 可验证的就验证:生成的 SQL 必须能执行,结果和预期一致;生成的问答对,答案必须能在原文中找到依据;
- 多样性控制:生成时指定不同的场景、难度、用户角色、表达风格;生成后做去重和分布统计,与真实数据对比;
- 人工抽检:每批合成数据抽样审核,统计错误率,错误率高的生成方式停用;
- 标记来源:每条数据标明是真实、合成还是人工修订,训练和评测时可以分别分析效果;
- 评测集以真实数据为主:合成测试集可以用于扩充覆盖面,但最终的上线判断要基于真实问题;
- 隐私检查:对合成数据做敏感信息扫描。