视觉模型端侧化是这两年工业场景最实在的一条路:云端大模型当老师,蒸馏出能在产线边缘设备上跑的小模型。我们做过三条产线(外观检测、物料分拣、仪表读数),精度损失都控制在了 1.5 个百分点以内,分享下工程做法。

教师模型的选择。云端用大参数量模型(检测/分割类大模型均可),不直接部署,而是做两件事:第一,在产线真实采集的数据上跑推理,产出伪标签;第二,输出 soft label(带温度的概率分布),保留"这个样本有多难"的暗知识。注意数据闭环:教师只在和产线同分布的数据上可信,拿公开数据集训的教师直接蒸馏,学生到了产线光照下会系统性地错。我们的流程是先在产线跑两周采集"困难样本"(教师低置信、人工复核分歧大的),再进蒸馏。

蒸馏策略。logits 蒸馏是 baseline:温度 T 取 3-5,蒸馏损失和硬标签损失按 0.7/0.3 加权。想再进一步就加特征蒸馏:让学生的中间层特征去拟合教师的对应层,对小目标检测提升明显(我们仪表读数场景 mAP 涨了 2.1 个点)。难例挖掘别省:教师和人工标注分歧大的样本权重翻倍。训练策略上分两阶段:第一阶段全精度蒸馏,把精度上限先顶上去;第二阶段再做量化和剪枝,不要一锅烩,否则分不清精度掉在哪一环。

量化与剪枝。PTQ(训练后量化)INT8 在多数检测模型上精度损失小于 1%,先试 PTQ,不行再上 QAT(量化感知训练,成本高一个数量级)。剪枝用通道剪枝,剪 30% 通道后微调 10-20 个 epoch 恢复精度,剪枝和量化叠加时先剪枝后量化。实测数据:一个 YOLO 量级的模型,FP32 240MB,经过剪枝加 INT8 后 28MB,精度掉 1.2 个点,在可接受范围。

边缘部署与监控。部署目标分两类:工业智能相机(算力弱、功耗敏感,模型要压到 50MB 以内、延迟小于 100ms)和边缘 AI 盒子(算力中等,可跑多路)。部署 checklist:输入预处理和训练时严格一致(归一化参数写死进模型包,曾经因为均值差 0.01 掉过 3 个点)、NMS 等后处理阈值随场景可配、模型版本和标定参数绑定。监控比部署更重要:第一,输入分布漂移检测(每天抽帧算直方图和亮度统计,偏移超阈值告警);第二,教师-学生一致性抽检(每天抽 1% 帧回传云端用教师复核,分歧率超 5% 触发重训);第三,OTA 更新必须支持灰度和一键回滚,产线停线一分钟的损失比你想象的大。

一句话:端侧化的精度不是"蒸馏算法"决定的,是数据闭环和监控体系决定的。