梅雨季的杭州,雨丝飘在脖子里凉得像冰。我帮导师整理屏峰校区旧器材仓库的纸箱子,最底下压着个2.5寸的希捷硬盘,银灰色的外壳掉了块漆,上面留着个浅棕色的咖啡渍,马克笔的字歪歪扭扭:2012秋 毕设 卷积神经网络(CNN) 跑不通 勿删。
把硬盘插进USB3.0的转接盒,指示灯闪了三下,转起来的声音像老座钟的摆锤,晃得人耳朵发痒。屏幕跳出来的第一个文件夹,大小是120G,里面整整齐齐码着当年的数据集、训练日志,还有写得烂到抠脚的Python脚本。
落灰的GTX580
我盯着屏幕上的训练日志,第一行的时间是2012年9月12号,凌晨3:17。那时候我刚读研究生二年级,跟着导师蹭ImageNet的比赛项目,实验室里攒了两块GTX580,单卡3G显存,跑那套刚拿了竞赛冠军的AlexNet架构,要把120万张图片喂进去练1000个epoch。
哪是什么训练啊,根本就是跟显卡的脾气较劲。机箱没有散热风道,显卡跑满了温度直接飙到95度,我特意从宿舍抱了两个台式小风扇对着显卡吹,风叶上还沾了我宿舍床上掉的猫毛。有次熬到三点多,我趴在桌子上刚睡着,机箱里的蜂鸣器突然叫得像防空警报——温度过高,系统自动重启,跑了三个小时的权重全没了。我当时直接把手里的机械键盘砸在桌子上,哐当一声把隔壁实验室睡懒觉的师哥吵醒,他推开门骂我是不是疯了,我指着黑屏的电脑半天说不出话。

那时候整个学术圈都在为CNN疯魔,说这东西能让机器看懂世界。可我看着那堆嗡嗡响的显卡,只觉得这是个实验室里的玩具——总不能把这两块半人高的显卡装到街上去,让它帮我认路,帮我开门,帮我妈妈看CT片吧?说实话,那时候我连毕业能不能找到工作都没谱,哪敢想这个架构会在十年后铺满整个城市的角角落落。
小区闸机的50块罚单
上个月我下班,邻居托我接她家刚洗完澡的柯基,毛蓬蓬的像个会走路的毛绒玩具。我牵着它过小区的人行闸机,刚走到快递站门口,手机就弹出来一条违停通知:“检测到未牵绳小型犬进入小区,罚款50元”。
我当时整个人都傻了,牵引绳就在我手里攥得紧紧的啊?找物业调监控才发现,摄像头的角度刚好对着柯基的后背,它那层厚卷毛把牵引绳挡得严严实实,闸机的识别模型根本没看到绳子。物业的小哥挠着头跟我解释,这个模型是2019年部署的,用的是MobileNetV1,轻量版的CNN,整个模型只有3.2M参数,跑在闸机那点可怜的ARM芯片上,连个注意力头都没有。训练的时候用的公开数据集里,长卷毛小狗配牵引绳的样本不到100张,认不出来太正常了。

我当时本来想吐槽,说你换个现在的多模态大模型啊,别说柯基,你就算牵只羊驼它都能给你认出来是宠物还是野生保护动物。可话到嘴边又咽回去了——换个新模型要多少钱?闸机的那点算力跑得动吗?万一哪天模型把穿了件老虎图案T恤的业主识别成了“携带大型猛兽进入”,半夜把辖区派出所的民警叫过来,谁担这个责任?
物业小哥最后给我退了罚单,说昨天已经给模型补了100张柯基的实拍图进去,下次再牵它过闸机,绝对不会再报错。我牵着柯基往快递站走,突然反应过来,这就是我们天天在用的CNN啊——它不完美,经常出小错,没有大模型那样天花乱坠的宣传,可它就安安静静蹲在闸机的芯片里,帮物业省了请保安的钱,帮我们挡掉了那些闯进来的陌生人,哪怕它偶尔会认不出你手里的狗绳。
CT室里的老黄牛

我妈去年体检查出右肺上叶有个3mm的小结节,我当时第一反应就是找在医院信息科的同学,把CT的原始影像导出来,用我们公司现在做的最新多模态感知模型跑一遍——我们那模型在肺结节识别上的准确率,比医院现在用的系统高两个百分点,毕竟是拿了上亿参数堆出来的。
结果同学带我去见放射科的王医生,他翻了翻系统里的模型版本号给我看:2018年,基于VGG16改进的CNN架构,专门针对肺结节的影像做了微调,累计跑了17万份CT影像,科室里每一个假阳性的误判,都记了整整三大本台账。
王医生泡了杯菊花茶,推了推眼镜跟我说,不是不想换新模型,是真的不敢。去年有个厂商带着最新的大模型辅助诊断系统来做测试,论文里写的准确率比他们这个老模型高5个点,结果测试的时候把三个良性的钙化结节识别成了早期肺癌,差点让三个患者挨了不必要的手术。那套新模型的逻辑是黑箱,为什么错,错在哪,没人能说清楚。
“我们这个老CNN不一样。”王医生指着屏幕上的影像,那个模型正慢慢扫过肺叶的纹理,把一个半透明的小结节圈了出来,标上大小和密度。没有万亿参数,没有花里胡哨的注意力机制,甚至连训练用的数据集都不到10万份的老CNN,反而成了这个科室里最被信任的存在。哪个卷积层把结节的边缘识别错了,我们能把权重导出来一层一层拆,错在哪,下次补什么样的训练集,门儿清。
那天我妈复查的结果是良性,就是个炎性假瘤,消两周炎症就消了。我站在CT室门口,看着那台安安静静跑着的老模型,突然觉得鼻子有点酸。
从仓库出来的时候,雨已经停了,我把那个旧硬盘塞在背包的侧袋里,路过学校的银杏道,几个抱着电脑的本科生在路边讨论,说现在谁还做CNN啊,都去搞Transformer,搞大模型,搞AGI,拿CNN写的论文根本发不到顶会上去。我没搭话,背着包往校门口走。
晚上回家,我把旧硬盘里的代码导出来,跑了个小demo,识别我放在桌上的柯基玩偶。模型盯着图片看了两秒,准确跳出来结果:柯基,置信度92%。哦,我想起来了,当年做毕设的时候,我偷偷往测试集里加了几十张我家以前养的那只柯基的照片,就为了让模型在最终答辩的时候,能准确认出我家的狗。
风把阳台的茉莉吹得晃了晃,花瓣落在键盘上。我们总觉得技术是要往前冲的,是要不断淘汰旧的东西,要追最新的概念,要拿最贵的算力跑最大的模型,要站在聚光灯下拿融资上头条。可那些被我们扔在仓库角落里的、跑起来嗡嗡响的、经常出点小错的CNN,其实早就变成了我们生活里的隐形骨架:闸机认得出你的脸,CT能找到毫米级的结节,快递柜能识别你是不是把取件码输错了,甚至你手机里的美颜相机,最早的磨皮算法也是从CNN的卷积层来的。
没人给这些老模型写赞歌。大家都在聊新的东西,聊能写论文能拿融资的新架构。可我摸着背包里那个落灰的硬盘,突然觉得,技术最动人的地方从来不是站在聚光灯下的那一刻,是它安安静静蹲在你看不见的地方,跑了十几年,帮你挡掉了那些可能发生的麻烦。哪怕它偶尔会把你的柯基认成没牵绳的流浪犬,哪怕它的算力小到可怜,哪怕它早就被学术圈的人当成了过时的玩具。
作者|大讲堂
排版|大讲堂
审核|白杨
大讲堂