优化算法应用:从实验室到产业落地的坑与惊喜
前阵子去工业智能沙龙混饭吃,碰到一个做汽配制造的老板,吐槽起来一脸肉疼。花了小一百万上了号称「国内顶尖」的优化算法排产系统,跑了三个月,排出来的计划还不如干了二十年的老调度随手画的靠谱。
插单插不进去,设备故障调整慢,最后还是老调度带着人加班硬扛。钱打了水漂,老板现在提优化算法都摇头。
别迷信全局最优,产业里要的是「够用的好」
很多人陷入的误区就是,拿到问题就想求全局最优解,完全不管实际落地的约束。
实验室里的优化问题,都是给好参数、给好约束,算出来就行,哪怕跑十个小时出结果都没关系。产业里呢?快递网点要调度路线,你给我跑三个小时算出最优,今天的件都不用送了?车间排产,今晚必须出明天的计划,你给我跑十二个小时,工人明天喝西北风?
制造业车间排产优化算法运行界面截图
说实话,大部分产业场景,根本不需要百分之百的最优。你优化出来的路线比老司机省3%油钱,十分钟能出结果,那就是好算法。你花三个小时算出省5%的最优,那就是没用的垃圾。
去年我在顶刊上看到清华团队针对山地风场风电功率预测做的优化成果,他们没有追热点堆超大模型,反而把常用的粒子群算法做了针对地形特征的剪枝,砍掉了二十多个对局部风场没用的计算分支,最终预测误差比之前的最优结果降了7.8个百分点。模型大小只有原来SOTA模型的五分之一,在风场的本地服务器上就能跑,不用传数据去云端,延迟低,还安全。现在已经落地了三个内陆风场,跑了一年多,多发了快两千万度电,实打实的收益。
这才叫真的优化算法应用。堆参数拼论文指标的,都飘在天上呢。
优化算法应用的核心:找对真正要优化的目标
我听过最多的失败案例,根本不是算法不行,是目标从根上就错了。
前两年认识一个做电商仓储运营的朋友,他们一开始上分拣路径优化,定的目标是「分拣员行走路径最短」。算法跑出来之后,路径确实短了,分拣员每天少走快一公里,结果错发率涨了三个百分点,光退款赔偿就多花了十几万,反而亏了。
电商仓储分拣路径优化效果对比图
问题出在哪?目标只算了路程,没把错发率、分拣员的操作习惯、不同sku的分拣难度算进去啊!算法为了省两步路,让分拣员一会儿跑高货位一会儿跑低货位,来回换,手忙脚乱不出错才怪。后来他们把优化目标改成了「单位时间有效分拣合格包裹数」,还给不同分拣员的熟练度加了动态权重,错发率马上降回原来的水平,整体分拣效率还涨了12%。这不就成了?
不过话说回来,现在很多做优化算法的,根本不下场看实际场景。坐在办公室里拍脑袋定目标,客户说要降本,他就优化成本,把其他约束全扔了。最后出来的方案,成本确实降了,客户都跑了,有什么用?
前年拿诺奖的那个研究机制设计的经济学家,说过一句话我印象特别深:大部分优化问题的解,从一开始就错了,因为你要优化的东西根本不是真正该优化的。
你优化供应链,只盯着库存最低,那缺货率上来,客户跑了,再低的库存有什么用?你优化网约车派单,只盯着平台抽成最高,那司机都不跑了,没人接单,平台喝西北风?真的,这都是踩过真金白银的坑才摸出来的道理。
未来的方向:小模型+动态适配才是落地主流
未来的方向:小模型+动态适配才是落地主流
现在所有人都在卷大模型,好像什么东西都要往上凑。但优化算法应用这块,我反而觉得小模型+动态适配才是未来几年的主流。
为什么?你想啊,工厂的订单天天变,设备每个月都有调整,路边的快递点,今天这个骑手请假,那个区域加了三个小区,你一个几百亿参数的大模型,重新训练一次要花几十万,等你训练完,场景都变了,有用吗?
轻量的优化算法就不一样,能根据每天的新数据实时微调,成本只有大模型的零头,效果还不差。今年上半年华为在东莞的几个制造工厂推的智能排产,用的就是轻量化的遗传算法加人工规则约束,不到一个小时就能更新一次排产计划,突然插单、设备故障都能快速调整,应对不确定性的能力比原来的离线优化强太多了。
还有一个特别好的趋势,现在的优化算法不再喊着要取代老工人老调度了,反而开始主动把人的经验嵌进去。上周刷到港中文团队的最新成果,他们把人类资深调度员的隐性经验,通过对比学习蒸馏到了优化算法里,把经验变成了算法的软约束,最后算法出的方案,工人的接受度从原来的不到40%涨到了85%。你想啊,工人愿意用,这个算法才能落地,不然你算得再好,工人不用,那不还是一堆废代码?
之前碰到一个算法工程师,跟我吹他的算法能做到99%的最优率。我问他,你这个算法考虑不考虑突然停电?考虑不考虑物流车高速堵车?考虑不追求浇车间工人今天集体去做核酸请假?他说这些都是异常,不在优化的范围内。
那你这个算法,在产业里就是废的啊!产业场景哪有那么多理想的无干扰环境?全是乱七八糟的突发情况,能把这些乱七八糟的情况都兜住,能出一个让工人愿意用、能赚钱的方案,才是好的优化算法。
优化算法应用走到今天,早就过了拼论文影响因子的阶段了。能不能解决真问题,能不能帮用户赚到真金白银,才是唯一的评判标准。对不对?