一句话定义
测试时自适应(Test-Time Adaptation,TTA) 指模型部署上线之后,在推理阶段用现场采集到的数据做一点点在线调整,让模型适应当下的环境和数据分布,而不是把整个模型重新训练一遍。
调整的对象通常不是主干权重,而是那些「跟数据分布强相关、改起来又便宜」的部分,比如归一化层的统计量、量化器的缩放系数。
它解决什么问题
模型训练时见到的数据,和它上线后遇到的画面,很少完全一致。门店里的偏差来源集中在三处:
| 漂移来源 | 具体表现 |
|---|---|
| 光照 | 白天自然光、夜间射灯、生鲜区冷柜灯、改过灯的收银台 |
| 摄像头 | 型号、安装高度与俯角、镜头油污与老化 |
| 商品 | 换包装、换规格、季节品、临时堆头 |
这类偏差叫分布漂移(Domain Shift)。特点是:模型参数没坏,但它看到的输入「不在训练时见过的范围里」。
量化会让这个问题更明显。量化把每一层的数值范围固定成有限的格子,输入一旦超出标定范围,就被截断或压到最边上的格子——也就是饱和。离线标定用的范围越窄,现场偏离时的退化越快。
关键做法
- 在线更新归一化统计量:用现场输入的均值方差替换训练时固定的那一套。改动小,几乎不增加计算。
- 按现场分布重新校准量化器:重定缩放系数与零点,而不是沿用离线校准集的结论。
- 无标注自适应:现场没有人工标注,只能靠模型自身的置信度、预测熵或多次输入的一致性来挑样本、定方向。
- 单遍、无状态:只在当前这批数据上调整,不缓存历史样本、不回传梯度。这对端侧很关键——设备没有空间存历史数据,也不该把门店画面留下来。
用不上的时候(也是它的风险)
- 样本太少、噪声太大时,自适应会把模型带偏。持续拿低质量数据自我调整,可能出现「越调越自信、越调越错」的崩塌。
- 它替代不了重新训练。如果是一整类新品从没在训练集里出现过,自适应救不回来,还是得补数据。
- 必须留退路:现场调整要有记录和一键回滚,否则出问题时无法判断是模型变了还是环境变了。
- 有标注就优先用标注:能定期采一批真实样本、人工确认后做增量训练,比纯无监督自适应可靠得多。
参考
arXiv 论文 Test-Time Adaptation of Quantized ViTs via Single-Pass Quantizer-Aligned Recalibration(编号 2610.08358),讨论的正是量化视觉 Transformer 在部署之后,如何用单遍、与量化器对齐的方式做重新校准。
延伸阅读
- 门店换了灯、商品换了包装,识别率掉了怎么办 —— 这篇讲的是这件事对门店意味着什么。
相关词条
火眼识别提供端侧视觉引擎与设备管理平台,相关方案见 火眼识别官网。