什么是合成数据?
合成数据(Synthetic Data)是指由 AI 或程序自动生成的、模拟真实数据分布的训练数据。合成数据不来自真实的用户行为、自然发生的对话或人工标注,而是由"教师模型"或规则系统批量生成。
为什么需要合成数据?
数据匮乏:高质量的人工标注数据获取成本高昂,特别是中文领域的指令微调数据。隐私保护:真实数据可能包含个人隐私信息,合成数据可规避隐私风险。覆盖更全:合成数据可以有目的地覆盖真实数据中稀少的长尾场景。成本优势:合成数据的生成成本远低于人工标注。
主流合成数据方法
Self-Instruct:让 GPT-3 自己生成指令和回答,用自动化的方式构建指令微调数据集,是 Alpaca 等早期开源指令模型的核心技术。Evol-Instruct:WizardLM 提出的方法,通过"进化"的方式让指令越来越复杂,生成高质量的训练数据。反向翻译:将现有的回答反转成问题,扩充训练数据的多样性。数据增强:对已有数据进行改写、扩写、简化等变换,生成更多变体。
合成数据的风险
质量不可控:合成数据可能包含"教师模型"的偏见和错误。同质化:合成数据的多样性不如真实数据,可能导致模型"变笨"。自我吞噬:如果整个互联网充斥着 AI 生成的内容,用这些内容训练的下一代模型可能质量退化(Model Collapse)。合成数据需要与真实数据混合使用才能获得最佳效果。