小林是 AperData 的数据质检工程师。他的工作说起来很简单:数据交付前,按15项清单逐项检查,过不了的不交付。
说起来简单,做起来一点都不简单。因为每一批数据都不一样,每一批都可能在不同的地方出问题。
这是小林普通的一个工作日。三批数据要在today交付,他从早上九点开始,一项一项过。
上午九点:有三批数据要交付
到工位,打开电脑,小林先看了一眼today的交付队列。
三批数据。头一批是插接任务,5000条,客户是一家做工业装配的机器人公司。第二批是折叠任务,8000条,客户是一家做家庭服务机器人的创业公司。第三批是混合任务,12000条,客户是一家大模型公司,用来做 VLA 模型预训练。
三批数据,三个客户,三种任务类型,三种质量要求。但检查流程是一样的——15项,一项不落。
小林泡了杯咖啡,开始一批。

上午九点半:头批——传感器完整性,发现缺一路
头一批是插接任务。插接任务对传感器的要求——头部视角看整体环境和零件位置,腕部视角看插接瞬间的对准细节,夹爪状态记录插入过程中的力变化。三路缺一不可。
小林先跑自动化检查脚本。脚本遍历所有数据文件,检查每一条记录是否包含约定的全部传感器通道。
三分钟后,结果出来了。红色告警:有320条记录,夹爪状态那路是空的。
小林皱了皱眉。320条,占这批数据的6.4%。他翻了一下元数据,发现这320条全是同一个采集员采的,采集时间集中在上周三下午。
"大概率是采集员那天下午忘了接夹爪传感器,或者传感器中途断线了没发现。"小林在检查记录里写下原因,然后把这320条标记为"需补采",通知采集团队安排补采。
如果没有这一项检查,这320条缺力觉的数据就会混在5000条里交付给客户。客户训练的时候才会发现"这批插接数据里有一部分没有力觉",到时候要么整批退货,要么客户自己想办法补,不管哪种,都是信任损失。
头一批的first项检查,拦下了320条问题数据。
上午十点半:第二批——标注抽检,发现系统性偏差
第二批是折叠任务。折叠任务的标注相对简单——任务分段、成功失败标记、关键帧标注。但简单不说明不会出错。
自动化检查跑完了:传感器完整性通过,字段完整性通过,数据量核对通过,格式一致性通过,无效数据筛查通过——无效数据占比0.8%,低于2%的阈值。
接下来是人工抽检。小林从8000条里随机抽了40条(5%),一条一条复核标注。
前20条没问题。第21条,小林停住了。
这是一条"叠T恤"的操作视频。标注把任务分成了三段:拿起T恤、折叠、放置。但小林仔细看了一遍,发现"折叠"阶段的标注起点偏早了——手还在调整T恤的位置,没有开始折叠动作,标注就已经标记为"折叠开始"了。
小林又看了几条,发现同样的问题。不是个例,是系统性的——所有标注员都把"折叠开始"的时刻标早了,大概早了1到2秒。
"标注规则里写的是'手开始执行折叠动作时标记为折叠开始',但标注员可能理解成了'手接触T恤后就标记为折叠开始'。"小林在检查记录里分析原因。
这是一个典型的系统性偏差。抽检如果只看"标注对不对",可能发现不了——因为所有标注都错得一样,看起来"一致"。但小林的抽检不只是看"对不对",还要看"和规则是不是一致"。
结果:第二批标注准确率89%,低于95%的阈值。整批返工标注。
如果没有这一项检查,这批"折叠开始全标早了1到2秒"的数据就会交付给客户。客户训练出来的模型,在折叠任务上会"提前开始折叠"——手还在调整位置就开始执行折叠动作,真实环境里一测试就会失败。客户排查半天,发现是标注的问题。那时候,信任已经没了。
第二批的第七项检查,拦下了一整批需要返工的标注。
中午十二点:第三批——格式一致性,采样率不一致
第三批是混合任务,12000条,数据量大,采集员多,出问题的概率也高。
小林先跑自动化检查。传感器完整性通过,字段完整性通过,数据量核对通过。
然后是格式一致性检查。脚本检查所有数据文件的采样率、字段命名、目录结构、时间戳格式。
告警来了:有2500条数据,腕部相机的采样率是30帧,而约定的是60帧。
小林查了一下元数据,这2500条是两个采集员采的。他们的腕部相机设置里,采样率被改成了30帧——可能是为了省存储空间,也可能是误操作。不管什么原因,结果就是这2500条的腕部视频帧率只有其他数据的一半。
"30帧的腕部视频,在快速插接动作里会丢帧。客户训练的时候,这部分数据的动作轨迹精度会不够。"小林在检查记录里写道。
处理方式:这2500条不能直接交付。要么重新采集(如果任务还能安排),要么和客户沟通是否接受30帧的数据(大概率不接受,因为客户的训练流程是按60帧设计的)。小林先标记为"需处理",通知项目经理和客户沟通。
如果没有这一项检查,这2500条30帧的数据就会混在12000条60帧的数据里交付。客户训练的时候,模型在某些任务上表现忽好忽坏,排查半天发现是帧率不一致导致的。到时候,客户会觉得"这家供应商连采样率都管不住"。
第三批的第八项检查,拦下了2500条帧率不一致的数据。
下午两点:修复和返工
上午的检查结果汇总:
头批:320条缺力觉,需补采。其余4680条通过所有检查。
第二批:标注系统性偏差,整批返工标注。预计需要两天。
第三批:2500条帧率不一致,需和客户沟通处理方案。其余9500条通过所有检查。
三批数据,没有一批是"全绿"的。每一批都在不同的检查项上发现了问题。
下午,小林开始协调修复。头批的320条补采,他和采集团队确认了排期——本周内补完,下周一重新检查后交付。第二批的标注返工,他和标注团队负责人沟通了问题原因,更新了标注规则里的模糊表述,安排了标注员重新培训,返工后重新抽检。第三批的帧率问题,他和项目经理一起给客户发了说明,提出了两个方案:等重新采集(延迟一周)或者按9500条先交付、2500条后续补(客户同意了这个方案)。
协调完这些,已经下午四点了。
下午四点:全部通过,写质量报告
头批的4680条和第三批的9500条,today可以交付。第二批延迟到后天。
交付前,小林要写质量报告。不是写一句"质量合格"就完事,是把15项检查的结果逐项写清楚:
头批(插接任务,4680条):传感器完整性通过(补采320条后另行交付),字段完整性通过,数据量核对通过(4680/5000,剩余320条补采中),元数据完整性通过,时间同步通过(平均误差165微秒),标定有效性通过,标注准确性通过(抽检234条,准确率97.2%),格式一致性通过,无效数据筛查通过(占比0.6%),任务覆盖率通过,场景多样性通过,隐私合规通过,数据所有权确认通过,抽样验证通过(随机抽50条跑通训练流程),交付文档齐全。
第三批(混合任务,9500条):同样逐项写清楚。帧率不一致的2500条单独说明,约定后续补交付。
每一项都有具体数据,不是"通过"两个字就完事。客户拿到这份报告,可以自己复核任何一项——可以自己抽检标注准确率,可以自己验证同步误差,可以自己跑抽样训练。
这就是"把内部标准外部化"的含义——不是说"我们质量好",是把质量检查的每一步、每一个数据都公开,让客户能自己查。
下午五点:交付
下午五点,小林把两批数据和对应的质量报告上传到客户的私有部署环境,发送了交付通知。
一天的工作结束了。三批数据里,两批部分交付,一批延迟。没有一批是"原封不动直接发出去"的。
小林算了一下today拦下的问题数据:320条缺力觉、8000条标注需返工、2500条帧率不一致。加起来超过10000条问题数据,在交付前被拦了下来。
如果这些数据直接交付,会发生什么?客户训练浪费、项目延期、信任损失、可能还要返工补采——所有成本加起来,远大于today花在检查上的时间。
这就是质检的价值。不是"找茬",是"省钱"——省客户的钱,省自己的钱,省整个行业的信任成本。

质检不是找茬,是省钱
很多人对质检有一个误解:觉得质检是"挑毛病",是"和采集团队、标注团队过不去"。
但小林的一天说明的是另一件事:质检是在帮所有人省钱。
帮采集团队省钱——320条缺力觉的数据,如果交付后才发现,采集团队要重新安排补采,可能要重新协调场地、设备、人员,成本是当场发现的好几倍。当场发现,当天就能补。
帮标注团队省钱——8000条标注系统性偏差,如果交付后才发现,标注团队要在客户的压力下紧急返工,还要面对"你们标注质量怎么这么差"的质疑。当场发现,可以从容地更新规则、重新培训、逐步返工。
帮客户省钱——10000条问题数据如果混进训练,客户要花几周时间排查问题、重新训练、调整模型。这些时间和算力成本,远大于数据本身的价格。
帮公司省钱——每一批有问题的数据交付出去,都是一次信任损耗。信任损耗积累到一定程度,客户就会换供应商。而获取一个新客户的成本,是维护一个老客户的五到十倍。
所以质检不是成本中心,是利润中心。它花的是小钱,省的是大钱。
而15项自查清单,就是把"凭经验找茬"变成"按步骤省钱"的工具。每一项都有明确的检查方法和通过标准,不需要判断,只需要执行。执行了,问题就在交付前被拦住;不执行,问题就在客户那里爆发。
小林的一天,就是 AperData 每一批数据交付的标准流程。
15项自查清单,不是写在文档里的摆设,是每一批数据交付前必须跑完的流程。大部分检查已经自动化——数据一处理完,自动跑完整性、格式一致性、无效数据筛查,有问题直接拦截,不进入交付队列。需要人工的抽检部分,有专门的质检工程师负责,每批必做,结果记录在质量报告里随数据交付。
客户拿到的不只是数据文件,还有一份完整的质量报告——15项检查的结果、抽检数据、准确率统计、已知的局限性和注意事项。客户可以自己复核,也可以拿着这份报告和其他供应商对比。
更重要的是,AperData 做了开放接口和私有化部署。客户不需要"相信我们的数据是好的",可以用自己的工具、自己的流程、自己的标准来单独验证。数据在客户自己的环境里跑,质量客户自己说了算。
小林的工作,就是这套体系的一个缩影——把"我们说质量好"变成"你可以自己查质量好不好"。
一天结束,小林关电脑的时候想了想today的工作。
三批数据,拦下了超过10000条问题数据。两批部分交付,一批延迟。没有一批是"全绿"的。
但这就是真实的数据生产。没有任何一批数据是"完美的"——总会有采集员忘接传感器、总会有标注员理解偏差、总会有设备设置出错。质检的意义不是"追求零问题",是"在交付前把问题拦下来"。
15项自查清单,就是那道闸门。
闸门这边,是各种可能出问题的数据。闸门那边,是客户的训练流程、模型迭代、产品落地。闸门的作用,就是不让问题数据流到那边去。
小林常说一句话:"我宁愿在交付前多花一小时检查,也不愿在客户那里多花一周返工。"
这句话,就是数据质检的全部意义。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049815/viewspace-3181595/ ,如需转载,请注明出处,否则将追究法律责任。