合成数据不是"免费的训练集"
用模型生成数据来补样本,听起来很划算。它确实有用,但**用错了会污染评测与训练**,
而且问题往往到很久以后才暴露(模型学会了合成数据的偏差)。
三种合理用法
**一、扩充"格式与边界"样本**
让模型生成结构合法但内容多样的样本(空值、极短、超长、异常编码),
用来测**解析与校验**的健壮性。这类任务不依赖事实正确性,风险低。
**二、做"困难负例"**
针对容易混淆的类别,生成"看起来像但不对"的样本,用于训练/测分类边界。
注意:负例要**人工核对**,否则会把真样本误标为负例。
**三、做"检索与问答的干扰项"**
生成与问题主题相关但**不含答案**的段落,用于测检索的抗干扰能力。
三条红线(不要越)
1. **不要用合成数据当"事实"评测集** —— 模型生成的事实可能本身就是错的,
用它测"事实正确率"等于自证;
2. **不要用生成模型评测自己** —— 同一模型生成 + 评分会系统性偏好自己的风格
(要评就用**不同来源**的判据或人工);
3. **不要混入真实用户数据生成** —— 合成过程会把个人数据带进产物,
合规上等同直接使用原始数据。
必须做的两件事
这样评测差异能归因,也便于随时剔除;
合成样本的人工错误率通常明显高于真实样本。
一个务实的组合
```
评测集 = 真实样本为主(>=70%)
+ 合成样本补充边界与困难负例(<=30%,全部标注来源并抽检)
```
**评测的结论只能由真实样本决定** ✔;合成样本的作用是**把边界测厚**,而不是替代真实分布。
怎么验证合成数据有没有帮上忙
1. 用真实评测集做基线;
2. 加入合成样本**只用于训练/调参**,再看真实评测集是否提升;
3. 若只在合成集上变好、真实集没变 —— 说明过拟合合成分布,应减少合成比例。