当前位置:首页 > 科研成果库

技术组合优化不是拼乐高:江宁一间厂房里的三笔隐形账

2026-10-30 23:25:59小研科研成果库7

去年秋天,江宁一个做精密件质检的厂子,夜里十点给我打电话。产线没停,盒子先停了。

边缘 AI 盒子过热降频,推理延迟从 80 毫秒跳到 300 多毫秒。相机还在拍,光源还在闪,盒子开始装死。现场工程师的第一反应很朴素:换相机、换模型、加风扇。听着都对。可装上以后,整机还是抖。为什么?因为他们一直在做单点选型,没做技术组合优化。

说白了,技术组合优化不是挑一个“好部件”,而是在一堆互相牵扯的技术选项里,选出一组能一起干活、还能在约束里喘气的组合。相机、光源、模型、量化策略、推理框架、批大小、散热曲线、后处理阈值,单看都像乖孩子,凑一桌就开始掀桌子。

先别急着换硬件,账本摊开看看

那间厂房的问题很具体。节拍要求端到端不超过 120 毫秒,盒子表面温度压在 65 摄氏度以内,误检率不能把人工复核拖爆,成本不能再加。四个约束,像四根绳子。你拉相机曝光,光源得跟着亮;光源一亮,发热上来;风扇狂转,噪声和积灰又来了;模型输入分辨率提上去,精度好看,延迟和功耗一起抬头。牵一发动全身,对吧?

他们原来的做法是单点追指标。模型 mAP 涨了 1.2 个点,大家挺高兴。结果延迟翻倍,风扇曲线拉满,盒子表面温度上去,降频。降频一来,延迟抖动,产线开始误判。你看,单点账本漂亮,系统账本烂了。

后来我们做了一件事:把组合摊开。先写硬约束,不商量。节拍、温度、成本、误检上限。再把可调项列出来:曝光时间、增益、光源频闪相位、模型输入分辨率、量化策略、批大小、风扇曲线、后处理阈值。离散项枚举,连续项先粗网格再局部随机。别一上来就全空间扫,那个空间大得能装下新街口晚高峰。

我们拿历史图片做离线回放,记录每组候选的延迟、温度、漏检、误检、人工复核率。注意,不是只看模型精度。要看端到端代价。技术组合优化的核心,是把代价模型和约束一起放进搜索里,不是让每个部件各自表演。

工业视觉质检边缘AI盒子散热风扇功耗测试现场图工业视觉质检边缘AI盒子散热风扇功耗测试现场图

最后找到一组“没那么激进”的参数:分辨率降一档,int8 量化,批大小 2,风扇曲线提前介入,曝光缩短,后处理阈值跟着调。延迟稳在 90 到 110 毫秒,表面温度 63 摄氏度左右,漏检没恶化,误检略抬了一点,但后处理阈值拉回来,人工复核率没炸。成本没加。现场工程师能记住,能复现。这个才叫落地。

组合空间不是菜单,是带刺的网

很多人把技术组合优化理解成自动调参。差得远。自动调参常在一个模型里找超参,技术组合优化跨部件、跨层、跨约束。只调模型不调曝光,等于只换鞋不系鞋带。跑两步就掉。

它的骨架其实不神秘。先定义决策变量:哪些能选,哪些能连续调。再定义目标函数:延迟、漏检、误检、能耗、成本,加权也好,多目标也好。然后写约束:温度、节拍、预算、维护人力。接着做搜索。离散组合多了,用剪枝;连续参数多了,用代理模型先拟合近似代价,少跑真机;候选出来以后,留验证集,上线再走影子模式。别把离线回放当真理,产线光照一变,样本一偏,模型就给你脸色看。

工业相机光源与算法分辨率组合调参产线场景图工业相机光源与算法分辨率组合调参产线场景图

难在哪?耦合。相机曝光长一点,光源可以暗一点,发热少一点,但运动模糊风险上来;模型量化狠一点,延迟降下来,细小花纹的召回可能掉;批大小提上去,吞吐好看,单帧延迟抖动也上来。你说这是调参?不,这是在带刺的网上找落脚点。

还有个常见误解:以为组合优化会给出一个唯一答案。工程里很少。多目标下常常是一串互不支配的候选带,也就是帕累托前沿。有人要低延迟,有人要低误检,有人要少维护。你得把偏好说清楚,别让算法替你背锅。

技术组合优化帕累托前沿多目标权衡示意图技术组合优化帕累托前沿多目标权衡示意图

真正难的是把代价算进去

真正难的是把代价算进去真正难的是把代价算进去

代价模型不能只算推理时间。端到端节拍、温度、功耗、标注成本、换型时间、故障恢复、现场工程师的学习成本,都得算。那间厂子后来加了一条:参数面板不能超过两屏。多了,夜班没人敢动。听着土,管用。

评估噪声也要认。历史回放很便宜,但产线有反光、有粉尘、有换料。离线指标漂亮,线上可能翻车。怎么办?灰度,小批量,影子推理,盯 P95 延迟和抖动,不盯平均值。平均值会骗人。P95 一抖,产线就抖。

风险也摆在那儿。搜索过头,容易拟合离线数据;供应链换一款相机,原来的组合可能失效;模型漂移,后处理阈值就得重看;安全相关的强实时场景,别盲目搜,先做失效分析。技术组合优化适合多部件耦合、约束多、评估可回放的场景。需求还没稳定、数据脏、单点瓶颈已经明摆着,硬上组合优化,纯属给自己加戏。

回到江宁那间厂房。账本上省下来的不是硬件钱,是停线风险,是夜班工程师少拍桌子。技术组合优化像算账,不是施法。别急着换盒子。先把组合摊开,把约束写死,把代价算清。多大事啊。