它是什么
合成数据(synthetic data)指由模型生成、而不是从人那里或从网上收集来的训练材料[1]。关键在于来源,而不在于样子:一份合成语料读起来可能和普通文章、普通代码毫无区别,但它是模型写出来的,不是从网页上抓下来或由人标注的。这条区分之所以重要,是因为合成数据的成本结构和出错方式都与收集来的数据不同——瓶颈从「找到并清洗材料」变成了「把写材料的那个模型引导好」。
怎么工作
一条合成数据的流水线里有两个角色:负责写材料的生成模型,和在这些材料上训练的「学生」模型。生成模型可以被引导成特定的形状,比如写成先一步步讲清一个概念、再配上习题的章节,而不是像普通网页那样混杂着讲解、写了一半的代码和闲聊。学生模型再从这些被塑形过的材料里学习;真实文本与合成文本各占多少,由搭建训练集的人决定。
目前记录得最清楚的例子是 phi-1:一个面向代码、基于 Transformer 的语言模型,参数量 1.3B,由 Gunasekar 等人在 2023 年 6 月以《Textbooks Are All You Need》为题发表[1]。它的训练数据由两部分组成:从网上筛选出的 6B token「教科书质量」数据,以及用 GPT-3.5 生成的 1B token 合成教科书与习题[1]。训练在 8 块 A100 GPU 上跑了 4 天[1]。尽管规模不大,phi-1 在 HumanEval 上达到 50.6% 的 pass@1 准确率,在 MBPP 上达到 55.5%[1]。用同一套流程训练的、参数量只有 350M 的较小模型 phi-1-small,在 HumanEval 上仍有 45%[1]。作者还报告说,与 phi-1-base(在合成习题数据集上微调之前的模型)相比,模型出现了令人意外的新能力[1]。
从哪来
在这份记录里,这个概念的由来和那篇论文的主张绑在一起:在这个规模上,驱动能力的是数据质量,而不只是数据量或参数量[1]。实验设计里有一个细节值得记住:合成语料由 GPT-3.5 生成,而 GPT-3.5 与被训练的模型并不是同一个模型[1]。正因为生成者与学生不是同一个模型,作者把合成文本当作一种独立的监督信号,而不是自我训练(self-training,即模型在自己产出的内容上再训练)[1]。
今天用在哪里
笼统地说,合成数据适合用在真实材料稀缺、昂贵或不方便取得的地方:为模型制造可供学习的练习题,批量产出固定格式的材料,构造测试集。每次的流程大同小异——选一个生成模型,规定它写出来的东西长什么样,再决定成品和真实数据怎么混。
局限
学生只能学到生成模型写出来的东西,所以生成材料里的错误和文风习惯会被继承下来,而不会相互抵消。多样性同样受生成模型限制:合成语料往往比开放的网络更窄、更整齐。此外,用代码模型在某个规模上得到的结果,本身并不能说明合成数据在别处能帮上多少忙。phi-1 的作者把自己的发现表述为关于数据质量的一个主张,而不是一套通用配方[1]。
注释与来源
- Textbooks Are All You Needhttps://arxiv.org/abs/2306.11644
引用本页: 合成数据(Synthetic data). TellWorld, https://www.tellworld.net/zh/learn/synthetic-data. 更新于 2026-11-07