厂商给的那个「误差」,是什么
模型压到低位整数的时候,会有一个数字衡量压得好不好:量化前后输出的差距,通常叫重建误差。数字小,说明压完的模型在数值上更接近原来的模型。
这个数字有用,但它不是在门店现场算出来的。它是用一批校准样本算出来的——样本从哪儿来,结论就偏向哪儿。
为什么「误差更小」不等于「收银更准」
- 校准样本通常是厂商准备的:光照标准、单件摆放、常见品类。在这批样本上误差小,说明模型对这批样本很友好。
- 门店的真实画面不是这样:果蔬堆在秤盘上、卤味盒反光、烘焙区是暖黄灯、傍晚逆光。这些情况在厂商的样本里经常根本没有。
- 更麻烦的是,一味把重建误差压得更低,可能是在校准样本上用力过猛,反而在真实分布上更差。arXiv 上就有一篇工作把这层意思直接写进标题——「重建损失更低反而更糟」(编号 2610.11226)。
所以一个看起来更漂亮的误差数字,未必对应更好的收银体验。
门店该看什么数字
把问题从「误差多少」换成下面这一组:
- 用谁的货测的? 要求用门店自己的商品、自己的收银台、自己的灯光条件。厂商样本可以作参考,不能当验收依据。
- 按品类拆开看。 无条码品类(果蔬、烘焙、卤味)单独统计,不要和有条码商品混在一起平均。有条码的商品本来就靠扫码,混进来只会把水搅浑。
- 按场景拆开看。 至少覆盖:商品堆叠、互相遮挡、反光包装、夜间光照、刚上架的新品。
- 看错误造成的损失,不只看次数。 认错成同价位的同类商品,和认错成价差几十块的商品,损失不在一个量级。
- 看最差的那一档,而不是平均。 平均值常被大量容易的样本拉高。真正决定门店体验的,是几个难品类在难场景下的表现。
校准数据这件事,要写进约定
模型压缩过程中的校准,是一道依赖数据的工作。门店不必了解技术细节,但要把边界谈清楚:
- 校准用的数据由谁提供、包含哪些品类和场景?
- 上线前是否允许门店参与测试、用门店自己的货?
- 效果不达标时,是重新校准还是重新压缩,由谁承担?
一句提醒
「误差小」是工程内部的语言,说的是模型压得好不好;「收银快不快、错不错」是门店的语言,说的是业务。两者相关,但不相等。验收时坚持用门店的语言提问,就能把大部分含糊的说法挡在门外。