← abcISO ← 返回目录

我没那么多弯弯绕。

08年我还在车间里搞工艺,一条摩托车减震器的产线,每天哗啦啦地过。那机器叫个啥来着,卧式加工中心,日本货,小日子搞得确实精,一个换刀时间就比国产快一半。但问题是,特么的太能换刀了,一把刀打几个孔就换,一天下来光刀库运动就得几千次,刀柄磨损快得很。

后来我干了ISO,搞审核,有一次在浙江一家汽配厂,我蹲在人家车间地上,手里捏着一把铣刀看。那天外面三十八度,车间里就是个蒸笼,汗顺着脖子往下淌,工装后背全湿透了。车间主任站在旁边,大嗓门,他嗓门更大:“老师,你说这刀不能用?刚磨的。”

我没吭声,把刀立在地上,从兜里掏出个卡尺一量,刀尖圆弧R0.8,刀杆上标的也是R0.8。但问题不是这个。

我把卡尺递给他:“你看看,刀杆装夹后,从主轴端面到这里——你量一下——实际悬长多少?”

他一量,脸就白了。刀杆底下的垫片少装了一组,悬长多了三毫米。多这三毫米,切削振动就大了一档。干活的时候不颤,但刀刃的寿命直接就降了。这就是个压缩包——你看着刀是那把刀,但实际上它的精度、刚性、寿命全被这三毫米给压缩了,压缩成一个不稳定的状态。

那阵子我正好在看大模型的量化压缩,心里就猛得一跳。这不一回事吗。

先说精度。工厂里有个老观念,觉得刀修得越锋越快越好,恨不得跟剃须刀片似的。但真干活的时候不一样。你铣铝合金,刃口必须锋利,R角大了就刮不干净,表面跟狗啃的。可你铣不锈钢的时候,你再磨那么快试试?三刀以内,崩刃。不锈钢吃的是刚性,刃口得钝一点,R0.5以上,靠挤压成形,不是切削成形。

这跟模型压缩里的量化是一个道理。原始FP32的模型,参数精细得像刚磨出来的刀,精度高,但跑不动,单张A100都得跑半天。量子化到INT8,就是给刀钝化了一下。一刀砍下去,不是切,是挤压——精度降了点,但推理速度快了三倍,内存占用降了六倍。

我去年审过一家做边缘计算的厂商,他们的人脸识别模型必须在树莓派上跑。那个搞算法的博士急得跟什么似的,FP32的模型在树莓派上推理一次要1.2秒,识别个门禁卡,等半天。他把模型量化到INT4,推理时间降到80毫秒,但准确率掉了2.7个百分点。老板不干,说两个点就是几百万的识别误差成本。

最后怎么搞的?把输出层和最后几层的参数保留在FP16,中间全量化。就像我们在不锈钢上开粗的时候,粗铣刀舍得钝,精铣刀还是留一点锋刃。这叫部分量化,那个博士拿着改动后的模型跑了一周的数据,最后准确率只掉0.3个点,但速度提上去七倍。

再一个说去重。

我刚干ISO那几年,审的设备全是各大车间的老底子。有个厂,三条产线,硬生生买了三家国产厂家的加工中心,理由是“对比采购价降低10%”。但实际用起来就麻烦了。每家机床的刀柄接口标准不一样,机内对刀方式不一样,热机参数不一样,得在刀库里备四套刀,刀柄、刀套、垫片、拉钉全部独立。仓库堆得跟杂货铺似的,光找一把对刀块就翻半天。

我干了一件事,他们车间主任到现在估计还骂我。我说,把你这三条线能通用的刀柄全改了同一标准,不管是BT40还是HSK63A,全部改成统一的接口。不统一的,把刀柄锥面磨掉半毫米,换个拉钉,强行统一。刚开始那师傅跳着脚骂:“改了,设备精度咋保证?”

我说了一句话:“你把所有刀柄全部打成同一个规格,你只需要管一把刀的寿命数据,而不是在四套系统里来回对账。这叫什么?这叫去冗余。”

效果是,刀库容量从三百把直接砍到一百一十把,换刀逻辑从“找对应的型号”变成“找最合适的刀”。效率提升还不算,单是刀具采购成本就降了40%。

大模型压缩里的剪枝其实就是这回事。参数量几千亿,但有大把冗余——那些神经元在网络里的作用就跟那把用了三年都没磨过的铰刀似的,占了个刀位,但从来不干活。你要是把那些连接权重接近零的参数全部剪掉,去掉后不影响输出,但模型直接缩水一半以上。

我去年审过一个做医疗影像的公司,他们的AI模型跑了半年,剪枝前有两亿参数,剪枝后六千万,在同样硬件的推理速度翻了将近三倍,诊断准确率还往上提升了一个点。把参数剪掉后,那些还活着的神经元里的连接权重变重了,学习变得更聚焦。这就跟在车间的机床刀库里淘汰掉那八十把从来没用过的刀,剩下那些真正干活用的刀,每把都磨得比原来更讲究。

然后说蒸馏。

我有个老客户,江苏的传动轴厂,干了很多年,师傅的手艺到了出神入化的地步。有个老铣工,姓刘,在厂里干了二十多年,闭着眼都能量出工差。加工一个复杂曲面,别人用五轴机床编三天程序,他直接用普通三轴加个分度头,磨两把特制铣刀,对着图纸看一眼,上去就干。加工出来的曲面精度,比五轴机床还要高一个量级。人家靠的是感觉、经验和手感。

后来老刘退休,厂里一下就塌腰了。新来的几个年轻师傅,学历高,会编程,但实操的时候怎么干也干不出那个精度。曲面永远差两丝,光洁度永远差一截。

我当时正在给他们做管理体系优化,提议做一件事:让老刘在退休前三个月,每次干那些关键曲面的时候,旁边架一台摄像机,把他的每一步操作录下来。对刀、进刀、退刀、磨刀的角度、看切屑的颜色、听声音判断负载,全部录下来。再让工艺科的人把这些视频整理成标准操作流程,把关键数据——比如某把R5的球头刀在加工某个曲面时,主轴的负载阈值是11%到13%,超出这个范围就停机——全部写进数控程序。

这就叫蒸馏。把老师傅脑子里那套“说不出来但就是知道怎么干”的经验,蒸馏成一个可复制、可执行、可程序化的操作手册和代码。

大模型里的知识蒸馏也是一样的道理。一个大模型,参数量几百亿,像个老师傅一样,知识丰富但计算代价太高,推理一次上百万亿次的浮点运算。你把它的输出分布拿出来,作为一个小模型(学生模型)的训练目标。学生模型结构小得多,参数少得多,但它学的是老师模型的知识分布,而不仅仅是硬标签。这就像年轻的数控编程员,他们学的不是“加工这个零件”,而是“老刘加工这个零件时他每一步决策的逻辑”。

蒸馏后的学生模型,推理速度比老师模型快五到十倍,占用的显存只有原来的十分之一到五分之一,但最终的检测准确率只下降一个点左右。我审过的那家做自动驾驶的公司,就是把他们的BEV感知大模型蒸馏成三个小模型,分别装在视觉、雷达和超声波三条路径上,总算力和存储节省了百分之五十好几,但感知准确率还有97.2%,只比原来大模型的98.5%掉了一个点,但功耗和延迟都降下来了。

炖刀的笔记——量化是把刀钝化但用得久,剪枝是把不用的刀扔掉省刀位,蒸馏是把老师傅的脑子复制给新师傅。

母题一:精度不是越高越好,稳定才是。

我干了这么多年,见过太多人——搞模具的、搞加工的、搞模型的——都在追求一个“看起来很美”的参数。加工机床的导轨精度要0.005毫米,但实际干活的时候机床热变形都已经让这个精度失去意义了。FP32的模型参数精度高到小数点后八位,但实际被量化以后,你需要的只是一个稳定输出的概率分布。干了十年,我学到的最痛的一个道理是,在一个非理想系统里追求绝对理想参数,本身就是一种浪费。适应系统,才是真精度。

母题二:大就是好,但小也是好。

大参数模型牛逼,但跑到终端设备上就趴窝。大机床牛逼,但小刀杆在小机床上干小零件反而高效。以前我觉得要搞就搞顶配,现在我知道,匹配比顶配重要。一个边缘设备上用580亿参数的大模型推理,卡成PPT,还不如用蒸馏过的小模型,150毫秒一次,稳得很。

三年前我在东莞审一家做刀具涂层技术的,看到他们一台设备上同时装了三种不同规格的刀柄转换套,不通用,但通用不了。他们老板挠着头跟我说,没办法,客户需求五花八门。我让他试了一个月,把常用的六种转换套压缩成三种,剩下的全部做成标准可调式螺母。一个月后反馈,换刀时间缩短了一半,因为操作工不用再琢磨这个零件该用哪种转换套,直接拧可调螺母完事。

压缩的本质不是削减,是优化。把不必要的东西去掉,把必要的东西一致化、标准化、可复制化。这和技术没什么关系,和人一样。

说到底,你看到一个模型压缩包,看到的是一堆参数、权重和浮点数。我看到的是那把立在地上的铣刀,悬长多了三毫米的代价;是那个车间主任举着卡尺白了脸的样子;是那个做完量化的博士拍着桌子跟我说“老板让我一个点都不能掉”的时候,我建议他保最后几层不动,他眼睛亮了。

车间和算法,操作台和代码,刀还有模型,其实都是拧在一起的一个东西。都在想着一件事:怎么用最小的代价,把活儿干好。

笔记:记住这三个字——量化、剪枝、蒸馏。对应着车间里的钝化、淘汰、传承。

母题三:压缩是把刀刃磨到恰到好处,不是磨到最锋利。

你可以有一万把刀,但只用一个刀库。这话是我师傅当年对我说的。当年我不懂,现在我懂了。DeepSeekMoe里的专家小模型,三百多个专家模型共存于一个框架里,每个token只激活几个最相关的,其他的挂在框架里休眠。这不就是车间里那个一个刀库装一百把刀,但我干活时只从里面调出最合适的五把来用吗。不用的刀在刀库里等着,不占用计算资源,但你随时需要随时调动。

我审过的那家边缘计算的厂商,最后把他们的方案推广成了一个产品——四个小模型共用一个推理框架,每四个小模型里轮流激活一个,整体功耗只有原来大模型的百分之三十,但处理能力覆盖了全部应用场景。

这就是我理解的压缩包。不是把东西搞没了,是让你用得更好。

车间里那台卧式加工中心,原来一天换刀几千次,刀柄磨损快。后来我搞了个技改,把常用刀具按使用频率排序列在一号刀库里,不常用的统一放在一个备用刀库里。换刀逻辑从“随机抽取”变成“根据加工特征调取”,换刀次数骤降百分之四十,刀柄寿命延长将近一倍。

这就叫结构化压缩。车间能干的,模型也能干。

我坐在这想,其实不管车间还是代码,人的活儿无非两件事:怎么把东西做出来,和怎么把这个过程变简单。压缩包只是这条路上一个不大不小的工具,但用好了,比花几百万买新设备强。

大模型读过全世界所有的书,但没淋过一场雨。它知道雨的统计定义,但不知道雨打在脸上是什么感觉。

← 第7章:梯度下降与登山者…第9章:涌现——当规模改变性质… →