一个做视觉检测的团队,卡住的往往不是模型结构,而是那几百张“镜头带水珠的雨夜”照片。采不到,标不完,等不起。这类长尾场景,正是合成数据被反复提起的地方。
它补的是分布,不是数量
常见的误解是把它当成“数据不够就多造点”。实际价值更多在分布上:真实采集天然偏向容易拿到的场景,罕见的光照、遮挡、材质组合被系统性漏掉。渲染管线、仿真器、生成模型能把这些组合造出来,还天然带标注,省掉一遍人工对齐像素的功夫。数量只是副产品。
怎么造,决定了它能用在哪
- 基于物理的渲染:调光照、材质、相机参数,标注精确到像素,代价是“像不像”取决于建模有多细,细到哪儿算够,往往没人说得清。
- 生成模型出图:外观丰富,但标注要靠额外流程补,容易带进不一致,图越漂亮越难查错。
- 域随机化:不追求逼真,而是把变化范围拉大,让模型学会忽略无关因素。机器人抓取一类任务常走这条路。
真正的麻烦在验收
造出来的图看着好看,不代表对训练有用。如果分布和真实场景错位,模型学到的是生成器的偏好,而不是世界的规律。所以通常要留一份纯真实的评估集,并且这份集合不参与调参,否则等于自己考自己。
另一个隐忧是闭环:用模型筛合成数据,再用筛出来的数据训模型。看起来很高效,偏差却会被一层层放大,而这个过程在指标上往往是静默的。
一个务实的用法
我不太相信“全部换成造出来的数据”这类说法。更可行的做法是小比例混入、分阶段放量:先在造出来的样本上预训练打底,再用真实数据收尾;或者只针对稀缺类别补。比例和阶段得靠实验定,没有通用答案。
另外,样本的元信息值得记录下来——用了哪版渲染器、哪些参数、哪天生成、谁筛过。不然半年后回溯,没人说得清这批样本是什么来历,出了问题也无从复现。这件事听起来琐碎,但比多造几千张图更要紧。
它帮不上的地方
需要判断人的意图、依赖细微社会语境的任务,仿真很难覆盖,硬造只会让模型学到一种过度简化的世界。对合规敏感的数据,造数据能绕开一部分授权麻烦,但不等于没有责任——如果生成内容本身就侵权,问题照旧。
回到那个雨夜。合成数据能让模型先见过水珠和反光,但它见的是被描述过的雨。真实世界里雨怎么下、镜头怎么脏,还是得靠真实样本去校准。把它当成扩音器,而不是替代品,大概更接近它现在的样子。