logo
22

Synthetic Data & Augmentation

⏱️ 30分钟

Synthetic Data Augmentation

Synthetic data 最容易被误解成“数据不够就让模型多编一点”。这很危险。真正有效的 synthetic data,不是为了把 dataset 变大,而是为了把 coverage 变合理、把 eval 变更有杀伤力、把模型盲区更早暴露出来。

所以这页的重点不是教你批量生成文本,而是 AI engineer 怎么把 synthetic data 用在更靠谱的 augmentation workflow 里。

Synthetic Data Pipeline


先说结论:先补 coverage,不要先追规模

很多 team 一缺数据,就先追 10 倍、100 倍扩充。
更稳的顺序应该是:

  1. 找出真实数据缺口
  2. 明确要补哪类 case
  3. 生成后做 verification 和 dedup
  4. 最后才考虑规模化生产

如果 coverage 没想清楚,synthetic data 只会把偏差放大。


Synthetic Data 最适合用在哪

场景为什么适合
eval set 扩充补 edge case 和 rare case
safety / refusal 测试生成 jailbreak、policy 边缘样本
格式化 extraction批量生成结构相近但内容多样的输入
locale / style variation补不同语言和表达方式
low-resource task bootstrap先快速搭一个可训练/可评估起点

它最值钱的地方,通常不是训练主数据,而是评估和覆盖补洞。


最常见的错误用法

错法后果
让同一个模型生成再评估很容易自嗨,误判质量
只做 paraphrase看起来很多样,实际信息量很低
不做 provenance后面不知道哪批数据污染了结果
train / test 混源leakage 后评估会失真

Synthetic data 不是越多越强,失控后反而会让你更难判断真实能力。


一个更稳的 Generation Pipeline

gap analysis
  -> generation prompt
  -> judge / filter
  -> dedup
  -> difficulty tagging
  -> split and version

这个 pipeline 里最容易被跳过的是 middle steps。
但恰恰是 judge、dedup 和 tagging,决定了这批数据能不能用。


常见的生成方式

方法适合做什么
paraphrase补表达多样性
template expansion补实体、行业、locale 变量
adversarial generation补攻击样本、边界样本
source-grounded generation基于真实文档生成 Q&A / citation case

其中最靠谱的往往是最后一种。
因为它最接近真实任务,也更容易做 correctness check。


Verification,不能靠“看起来没问题”

Synthetic item 至少应该经过:

检查项为什么要做
format validation保证结构能进 pipeline
faithfulness check确保没有偏离 source
safety filter避免带入不该有的内容
manual spot check自动 judge 也会漏
duplicate control避免虚假多样性

如果没有这些,后面你看到的提升可能只是 dataset contamination。


Provenance 和 Versioning 很关键

每条 synthetic sample 最少记录这些字段:

  • source
  • generation model
  • generation prompt version
  • judge result
  • tags
  • difficulty
  • split

没有 provenance,后面一旦出现坏样本、奇怪提升或 regression,你几乎没法追。


难度分层比平均分更重要

AI engineer 用 synthetic data 时,最值得做的是 difficulty tagging。

难度层例子
easy常规格式、常规表达
mediumparaphrase、轻度歧义
hard多约束、长上下文、边界 case
adversarialinjection、诱导、格式破坏

这样你才能知道模型到底是普遍提升了,还是只在 easy case 看起来变好了。


什么时候别急着继续扩 synthetic data

情况为什么
真实数据 pipeline 还没整理好你会一直在 synthetic 上兜圈
judge 机制不稳扩得越多,噪声越大
bad case 都没复盘生成再多也补不到点上
团队没有版本治理数据越来越难维护

Synthetic data 是放大器,不是替代真实数据治理的捷径。


Practice

拿你现在一份 eval set,先不要扩 10 倍。
先回答这 4 个问题:

  1. 缺的是哪类 case
  2. 哪些 case 值得用 synthetic 补
  3. 生成后怎么 judge
  4. 如何记录 provenance

这 4 个问题想清楚后,再开始批量生成。

📚 相关资源