标签名一样、字段能对上,只说明两批数据"看起来像同一个任务",不说明它们能直接拼成一个训练集。合并前真正要核对的,是标签定义、标注单元、字段语义、跨批重复、来源群组与时间边界、采样口径,以及来源和许可能不能逐行保留。这几项里任何一项没弄清,合并后出的问题往往不会在训练脚本里报错,而是悄悄进入模型和评估结果。
先说直接拼接会在哪几个环节出问题
标签同名不同义。 两个批次都叫"缺陷",判定边界可能不一样。合并后模型学到的不是一套标准,而是两套标准的混合,且混合比例由两批样本量决定。报告上看到的指标变化,很难归因到标注质量还是样本构成。
标注单元不一致。 一批按整图或整段给一个标签,另一批按框、按时间片给标签。直接合并会得到粒度不一的样本,训练时要么被脚本按某种方式强行对齐,要么被静默丢弃一部分信息。
字段能对上但语义对不上。 坐标体系、时间基准、编码方式、类别 ID 与类别名的对应关系,任何一项不一致,训练脚本都可能照常读入、照常跑完,只是读进去的东西不是你以为的东西。字段名相同是最容易让人放松警惕的地方。
跨批重复与近重复。 同一来源的样本可能同时出现在两批里。合并后如果沿用随机切分,验证集或测试集里就可能混进训练时见过的内容,评估结果被抬高,而流程上未必自动报错。
已有切分不能想当然沿用。 两批各自带过训练/验证划分,合并后这些划分是否还能用,取决于跨集重复、来源群组和时间边界核查的结果。如果核查后满足独立性,既有划分可以保留,尤其冻结的测试集不应轻易改动;只有不满足独立性、且原划分协议允许时,才重新划分。任何时候都不能把固定测试集混进训练。
来源信息可能被合并掉。 合并后如果只剩一句总的来源说明,就回答不了"某一行从哪来、按什么条件获得"。这不是合并必然丢的东西,但只要不保留逐行来源,它就丢了。
采样口径差异。 采集条件、场景、设备、时间窗不同,两批合在一起后的指标变化,可能来自分布差异而不是标注质量。这一点在合并前要作为已知边界记录下来,而不是合并后再猜。
一个假设例子:判断顺序比结论重要
假设某团队两批数据都有"缺陷"类标签。一批把细微划痕计入缺陷;另一批把划痕单列,缺陷只收结构性破损。直接合并训练,模型对划痕的判定会随两批样本占比漂移,而报告上看不出原因。这是假设情景,用来说明核对顺序,不代表任何真实数据集。
面对这种情况,合理的顺序是:先做标签映射与定义对照,确认"缺陷"在两批里各自覆盖什么、划痕归到哪里、映射不了的部分怎么处理;再做跨批重复与近重复检查,看两批之间有没有同源样本;然后核查来源群组和时间边界,判断现有划分是否还满足独立性;最后才决定是合并、分开使用,还是补采一批统一口径的数据。补采只是选项之一,不是唯一出路------标签对不齐也可以重新标注、做合理映射,或者干脆把两批分开使用、各自评估。
合格交付应该包含什么
一份可验收的合并交付,至少要能回答下面这些问题,且材料能追溯到原始行:
- 标签映射与定义对照表:每个原标签如何映射到统一标签,无法映射的样本如何处理,两批定义差异在哪。
- 重复与近重复检查报告:跨批是否存在同源或近似样本,检查方法是什么,结果怎么处理。
- 核验后的划分及依据:训练/验证/测试怎么分,是保留既有划分还是重新划分,依据是独立性核查结果和原划分协议;冻结测试集是否被动过,要有明确记录。
- 逐批来源与许可记录:每一行能追溯到哪一批、什么来源、按什么条件获得。
- 差异说明:列出无法统一的口径和因此保留的边界,供后续使用和评估时参考。
这些材料不保证合并后模型一定变好,也不代表任何一批已经通过质检。它们保证的是:合并这件事本身是可解释、可追溯、可复核的。
下一步可以怎么动手
先别急着写合并脚本。拿两批数据的标签定义文档(没有文档就抽样对照)做一张映射表,把"同名但边界不同"的标签挑出来;同时用来源标识或内容指纹做一次跨批重复筛查。这两步的结果会直接告诉你:是走"映射后合并",还是走"分开使用"或"补采统一口径"。划分方式放到这两步之后再定,冻结测试集在核查通过前不要动。