一、合成数据为什么成了刚需

真实数据贵、难清洗、还涉及隐私。合成数据可以按需生成,还能控制分布。

但它有个先天问题:模型生成的数据,会带上模型自己的偏好和错误。

合成数据变成刚需,原因很朴素:真实数据不够、不好标、不能用。

不够是量的问题,不好标是成本问题,不能用是合规问题。

三个问题里,第三个最硬。有些领域的数据,压根就不能拿来做训练。

二、四种常见用法

一、指令扩充。少量人工写的种子指令,让模型改写成上千条变体。

二、难例构造。专门生成模型容易错的题,用来补短板。

三、格式对齐。把非结构化内容转成固定 JSON,省人工标注。

四、长尾补充。真实数据里稀缺的类别,用合成方式补齐。

四种常见用法:补数量、补长尾、补格式、以及补对抗样本。

补长尾最有价值,因为真实数据里长尾样本最少。补格式最省事,用来统一输出模板。

补对抗样本最容易出事。合成的对抗样本往往太理想,模型学会了对付它们,对付不了真的。

三、要防的三件事

第一,分布坍缩。模型生成的数据越来越像它自己,多样性一层层衰减。解法是保留一部分真实数据混着用。

第二,错误放大。模型有某个系统性错误,合成数据会把这个错误教得更牢。解法是抽样人工验。

第三,评测污染。用合成数据训练,又用合成数据评测,分数好看但没有意义。解法是留一份完全不参与训练的真实测试集。

要防的三件事,第一件是「分布漂移」。

合成数据天然偏向模型已经会的东西,越训越窄。表现是榜单涨、真实场景不涨。

第二件是「错误被固化」。老师模型答错的题,学生模型会学得更牢。

第三件是「格式泄露」。合成数据往往有统一的句式,模型学会了句式,没学会能力。

三件事的共同解法,是掺真实数据,并且定期用真实集做验证。

四、比例怎么定

经验上,合成数据占比不要一次拉太高。先三成,看效果,再往上加。

真实与合成的混合比例,比总数据量更影响最终表现。

比例怎么定?我的经验是三成到五成,不超过真实数据的一半。

比例越高,分布漂移越明显。超过一半,模型就开始「只会说合成数据那种话」。

还有一个变量是任务类型。分类任务可以高一点,生成任务要低一点。

五、一个可操作的质量检查

抽一百条合成样本,人工标三条:事实对不对、格式对不对、难度是否合适。

三条的通过率决定这批数据能不能用。通过率低于八成,先修生成提示词,别急着训。

质量检查我给一个可操作的版本,四步,一天能做完。

第一步,抽一百条,人工看三件事:对不对、像不像真的、有没有重复。

第二步,跑一遍真实评测集,看有没有掉分。掉了就说明分布偏了。

第三步,看长度分布和句式分布是否与真实数据接近。差太远,就是格式泄露。

第四步,把这一百条当固定样本,每次换配比都跑一遍。这套下来,能挡住八成问题。

六、一句实在话

合成数据是放大器,不是替代品。它能放大你的数据设计能力,也能放大你的疏漏。

一句实在话:合成数据不是省事的办法,是另一种费事的办法。

生成便宜,验收贵。谁把验收做成流程,谁就能用;谁只生成不验收,三个月后一定回滚。

我在项目里见过两次回滚,都是同一个原因:没人对数据负责。

所以第一件事不是写生成脚本,是定一个验收人。

一句实在话:合成数据的成本不在生成,在验收。

生成一千条是分钟级的事,验收一千条要几小时。预算要按验收来算。

不做验收的项目,三个月后一定回滚。我见过两次,原因都一样。

补一句成本观:合成数据应该按「验收成本」立项,不是按「生成成本」。

生成一分钟,验收五小时。预算算错了,项目一定中途停。

再补一句:合成数据最好留「来源标记」。出问题时能追到是真实还是合成。

不留标记,后面就分不清了。

再补一句:合成数据要「分批次」进。

一次全进,模型会偏。

慢慢掺,才稳。

延伸参考

概念对照可以去前端 Wiki 翻词条,解释都不绕。

前端 Wiki

留一句:合成数据最贵的部分,是留下来做验证的那一份真实数据。