合成数据训练大模型:优势、风险与质量控制方法
训练和微调大模型需要大量高质量数据,但真实数据往往面临各种限制:标注成本高、某些场景的样本稀少、涉及用户隐私无法使用、长尾情况难以收集。用大模型生成训练数据,即合成数据,正在成为解决数据瓶颈的重要手段。 很多模型的后训练阶段都大量使用了合成数据。但合成数据并不是免费的午餐,用不好会把模型的错误和偏见放大。
合成数据的主要用途
微调数据扩充
当你只有几十到几百条高质量的人工示例时,可以让强大的模型参照这些示例生成更多类似的样本,扩充微调数据集。例如为客服场景生成多样化的用户提问和标准回复。
覆盖长尾和边界情况
真实数据中罕见但重要的情况,例如特殊的投诉类型、少见的错误输入、对抗性的提问,可以通过合成方式定向生成。
构建评测数据
快速生成大量测试问题,覆盖不同的难度和类型,用于评估模型表现。但评测数据的最终质量需要人工把关,参见如何构建评测集。
隐私保护
用合成数据替代包含个人信息的真实数据,用于开发测试和模型训练,降低隐私泄露风险。需要注意,合成数据如果过度模仿真实数据,仍可能泄露原始信息。
偏好数据
生成同一问题的多个不同质量的回答,用于偏好对齐训练,参见 RLHF 与 DPO。
主要风险
1. 多样性不足
大模型生成的内容往往趋于“平均化”:相似的句式、相似的用词、相似的思路。用这样的数据训练,模型的输出也会变得单调。
2. 错误放大
生成模型本身存在的错误、幻觉和偏见会被写入合成数据,用这些数据训练的模型会继承甚至放大这些问题。
3. 模型崩溃
研究发现,如果模型反复用自己或其他模型生成的数据进行训练,而缺乏新的真实数据,模型的能力可能逐代退化,输出的多样性和质量持续下降,这一现象被称为“模型崩溃”。
4. 分布偏移
合成数据的分布可能与真实场景存在差异。模型在合成数据上表现良好,在真实数据上却表现不佳。
5. 许可与合规
部分模型服务的使用条款限制使用其输出来训练竞争模型,使用前需要仔细查看条款,参见开源大模型许可证解读。
质量控制流程
第一步:用高质量种子引导
准备一批由人工编写或精选的高质量示例作为种子,明确数据的格式、风格和质量标准。种子的质量直接决定了合成数据的上限。
第二步:设计多样化的生成策略
- 变换角度:指定不同的用户画像、场景、难度、语气来生成;
- 组合属性:把主题、问题类型、约束条件等维度进行组合,系统性地覆盖各种情况;
- 使用多个模型:用不同的模型生成,减少单一模型的风格偏差;
- 适当提高采样温度:增加输出的多样性,参见采样参数实用指南。
第三步:过滤低质量数据
- 规则过滤:格式错误、长度异常、包含禁用内容的样本;
- 模型评估:用大模型评委对样本质量打分,过滤低分样本,参见 LLM-as-a-Judge;
- 可验证任务的自动校验:数学题检查答案是否正确,代码检查能否通过测试。
第四步:去重
去除完全重复和语义高度相似的样本,避免数据集中某些模式被过度强化。
第五步:人工抽检
随机抽取一定比例的样本进行人工审核,评估整体质量,并根据发现的问题调整生成策略。
第六步:与真实数据混合
合成数据最好作为真实数据的补充,而不是完全替代。保持一定比例的真实数据,有助于避免分布偏移和模型崩溃。
第七步:效果验证
用独立的、基于真实数据的测试集评估训练效果,而不是用合成数据评估用合成数据训练的模型。
小结
合成数据是解决数据稀缺、覆盖长尾情况和保护隐私的有效手段,但存在多样性不足、错误放大、模型崩溃和分布偏移等风险。从高质量种子出发,采用多样化的生成策略,经过过滤、去重和人工抽检,并与真实数据混合使用、用真实数据验证效果,才能让合成数据真正发挥价值。微调数据的整体构建方法见微调数据集构建指南。