机器人数据集中的去重:规模与信号之辨
去重决定了一个机器人数据集到底值多少。近似重复的示范会撑大规模、并泄漏进评测,悄悄抬高成功率分数。
两个实验室各自发布了一个五万次示范的数据集。一个是五万次各不相同的尝试。另一个是五千条真实轨迹,每条被回放并轻微抖动了十次。在标题数字上,它们看起来一模一样。你在它们之上训练出的策略却不会一样,而你从中报告出的基准分数,可能悄悄地是错的。
去重(deduplication)是数据工作里最不光鲜、却最有分量的活儿之一。文本和图像团队都吃过苦头才明白:近似重复的文档会撑大语料、浪费算力,而最糟的是,它们会越过训练与测试的边界发生泄漏,把报告出来的准确率抬高。机器人数据集也害着同样的病,只是形式更难诊断。
这里的主张是:原始示范数量是一个虚荣指标;在一个机器人数据集报告出它有效的、去重后的规模之前,它的标题数字几乎不能告诉你一个策略会从中学到什么。
重复从何而来
机器人数据以文本永远不会有的方式制造近似重复。遥操作员会从同一个起始位姿把同一个任务重复几十遍,因为收集量就是这么攒出来的。脚本化的复位每一回合都把物体摆在完全相同的位置。数据增强会用微小的扰动克隆一条轨迹,这对训练有用,但如果这些克隆体横跨了你的评测划分,就会造成灾难。而当许多数据集被汇集到一起时,就像在 Open X-Embodiment 里那样,同一批底层轨迹可能会经由不止一个贡献者进入。
这些都不是造假。它们是务实采集自然产生的废气。问题在于,它们都在不增加「数量」本该代表的东西(对新情形的覆盖)的情况下,把数量撑大了。
这里还有一个激励问题。一个更大的数字更容易拿去宣布、也更容易拿去销售,于是压力就朝着报告原始总数、而非独特数量的方向倾斜。这件事不需要任何人撒谎就会发生。那个容易衡量的指标,会悄悄变成那个被引用的指标。
重复为何害你两次
第一重代价是训练浪费。模型会花费容量和算力去重新学习它早已见过的轨迹,损失曲线看上去很健康,而策略什么新东西都没学到。你为一个大数据集付了钱,得到的却是一个小数据集的多样性。
第二重代价更糟,因为它是隐形的。如果一条训练轨迹的近似重复落进了你的测试集,你的评测衡量的就是记忆,而不是泛化。报告出的成功率上去了,真实世界的成功率却纹丝不动。那些诚实地写过机器人评测的团队,包括像 LeRobot 这样开源栈的维护者,一再回到这个污染风险上,因为对连续轨迹而言,一个干净的训练与测试划分是真的很难保证。
这也搅浑了扩展叙事。当一个数据集翻倍而策略没有变好时,容易得出的结论是扩展已经停滞。而真正的原因往往更平淡:新增的那一半大多是重复,于是有效数据集几乎没有增长。去重,正是让你能把真正的平台期,与一个记账假象区分开来的东西。
| 重复类型 | 典型成因 | 如何检测 | 主要风险 |
|---|---|---|---|
| 精确回放 | 同一条轨迹被存了两遍 | 对状态序列做哈希 | 数量虚高 |
| 操作员重复 | 同一任务、同一起始位姿 | 轨迹嵌入距离 | 虚假多样性 |
| 增强克隆 | 一条示范的扰动副本 | 溯源元数据 | 训练测试泄漏 |
| 跨数据集重叠 | 汇集共享来源 | 来源与哈希匹配 | 重复计数 |
一个机器人数据集诚实的计量单位,不是记录的小时数,也不是登记的示范次数。而是一个策略能从中学习的、真正不同的情形的数量。
衡量独特性比听上去更难
在文本里,一个重复往往是一段近乎精确的字符串,哈希就能抓住它。而一条机器人轨迹活在一个连续的、多模态的空间里:关节状态、图像、力,全都随时间展开。同一次抓取的两次示范,可能在每一个原始数值上都不同,但就学习目的而言却是同一个样例。反过来也成立。两段视觉上相似的片段,可能编码着不同的接触动力学。
所以机器人的去重,实际上是一个「在正确的空间里衡量相似度」的问题。务实的做法是把每条轨迹嵌入,在那个嵌入空间里聚类,并估计覆盖度,而不是数行数。有些团队会从状态访问的角度来推理:数据集究竟触及了相关状态空间的多大部分,这也是近期 机器人研究 中反复出现的主题。像 DROID 这样的大型遥操作项目和 RH20T 这样的富接触采集之所以有用,恰恰是因为它们被构建为在场景和物体上铺开,而不是把一件事的重复堆起来。
把两件工作分开会有帮助。精确去重移除逐字节相同或被回放的轨迹,它便宜又安全。语义去重才是难的那件:判定两段看上去不同的示范其实在教同一件事。它没有一个干净的阈值,门槛设得太激进,就会抹掉真实的变化。多数团队最终是对着一个下游指标去调它,而不是在抽象层面去定。
去重不等于删减
把这一切听成「删掉你的数据」会是个错误。盲目地移除每一个近似重复,可能会丢掉有用的信号,因为对一个困难的、富接触的动作,少数几次重复确实能帮到策略。目标不是一个更小的数据集。而是一个更诚实的数据集:知道哪些样本是冗余的,据此给它们加权,并且绝不让一条训练轨迹和它的孪生体分坐在评测划分的两侧。
加权通常比删除是更好的做法。把一簇近似重复降权,让它大致只算作一次;在重复确实有助于某个困难技能的地方保留几份副本;把彻底删除留给精确回放。这样得到的,是一份反映真实覆盖、而非采集习惯的训练配比。
读那个真正重要的数字
下次当一个机器人数据集带着一个大数字被发布时,去问一个更小的数字:去重之后,它包含多少个真正不同的情形?一个答得上来的数据集,正在做那件难的事。一个答不上来的,是在报一个虚荣指标,而虚荣指标经不起真实机器人的检验。最终胜出的团队,将在有效多样性上竞争,而不是在日志的大小上。