我把系统打包开源了。在GitHub上建了个仓库,项目简介写的是:
本项目的核心算法来自一位不识字的养猪老人。感谢老王叔,他用了一辈子的时间教会我一件事——技术不能取代经验,但技术可以帮经验走得更远。
写完就合上电脑去喂猪了。当时想的是这东**概有十个Star就了不起了。
三天后发现事情不太对。手机震个不停,论坛私信爆了。有人截图了我的GitHub简介发到微博上,配了一句话:一个被大厂裁掉的程序员,回老家养猪,顺手写了个开源项目。项目简介里的感谢信,写得比我见过的所有PRD都好。
转发三千多。评论里最高赞是:这不比ChatGPT接地气?
我坦白一件事:我当时不知道ChatGPT是什么。我不是装的。我离开燕京以后就跟AI圈断了联系——或者说从头到尾也没怎么连上过。我在公司最后一次用ChatGPT的时候它还不能写好代码。后来出了什么GPT-4、GPT-5,我一概不知。我被裁的那段时间,全世界都在讨论AI会不会取代程序员,而我正好被裁了。按照因果推理的逻辑,很多人会把这两件事联系起来。但真相是:我不是被AI取代的。我是被比自己年轻且工资便宜的人取代的。AI在这件事里的角色,大概相当于一个背景板。
所以说比ChatGPT接地气——这句话与其说是在夸我,不如说是在表达一种对AI的普遍情绪。人们提到ChatGPT的时候带着一种它很强但它不是人的复杂心态。而我的项目让人舒服,不是因为技术好,是因为它感谢了一个不识字的老头。
这本身也是一种互联网奇观:在一个人人谈论AI的时代,一个感谢老农的程序员居然成了新闻。
县畜牧局的刘科长来找我,开了一辆白色皮卡。车身上印着XX县畜牧业服务中心。
他说他们局去年也搞过数字化养殖试点——智能耳标、AI预警、大数据平台——花了几十万,全部烂尾。采购价三十块一只的耳标,现在全在猪圈角落里长毛。
我笑了笑。我说我爸也买了,一万二。他说那还好,他们花了十几万。
两个人沉默了大概十秒钟。这种沉默我称之为被同一套逻辑忽悠过的人之间的默契。
然后他说想合作。全县三百七十六家养殖户的数据给我用,我把系统跑起来。
我说可以。但我有一个条件:系统要开源。
他愣了一下。开源?什么意思?
就是代码免费,任何人都可以看,可以用,可以改。我不卖软件,我卖服务。
他想了十秒钟,推了一下眼镜:行。反正我也听不懂。能用就行。
这个回答非常经典。它代表了一种基层干部面对技术问题时的通用策略——我不理解你说的是什么,但我信任你。这种信任的基础可能是我在论坛上的帖子,也可能是因为我爸是本地人。无论是哪种,它都比我在燕京经历过的任何一次战略对齐都更真实。
接下来的事我简要说一下。
我把全县三百七十六家养殖户的数据洗了一遍。那些数据的格式千奇百怪——有人把采食量写成吃多少,有人把体温写成摸着烫手,还有一家表里三列叫备注1备注2备注3,每列都有字,每列都跟别的列没关系。我花了两周写了数据清洗脚本。那个脚本比我之前写过的任何推荐算法都复杂——不是因为逻辑难,是因为真实世界的数据就是这么乱。在燕京的时候我处理的数据叫用户行为日志——干净、整齐、每一行都有人标注过。现在我才发现,那种干净是被人清理过的。那些清理数据的人可能也被裁了,就像我一样。
然后非域猪瘟来了。
去年十一月,隔壁县确诊三例。刘科长打电话过来,声音很急。我说系统里没有异常预警。他说你确定?我说我确定。
就在这时候老王走进来。他手里没夹烟。这是我认识他几个月来第一次看见他没夹烟。
向北,你去饲料房闻一下。
第三批豆粕。前天到的。我闻了——还是面粉味。
老王没说话。他抓了一把放在手心搓了搓,然后摊开手掌:你看这个颜色。
淡黄色。正常的豆粕也是淡黄色。我看了两个月饲料,眼睛已经训练到能分辨不同批次的色差了。但这一批,我没看出区别。
他把豆粕放在鼻子底下深深地吸了一口。皱了皱眉。
不对。这批有霉味。很淡。但是不对。
霉味。我没闻到。我的系统里饲料质量那一栏没有任何预警。
也就是说,按照我做的系统,这批饲料是合格的。
我蹲在猪圈门口,看着二十三头猪。它们什么都不知道。吃饱了,趴在栏里打呼噜。那头最大的母猪翻了个身,拱了拱旁边的小猪。小猪翻了个身,继续睡。
如果老王不在呢?
如果老王那天去镇上买烟了呢?如果老王感冒了呢——他的鼻子不通了呢?如果老王跟我一样,在燕京待了八年,鼻子被PM2.5训练成了另一种东西呢?
那时候谁来闻饲料?
我的系统里没有闻这个字段。不是我忘了加,是我不知道怎么加。你不能在数据库里设一个字段叫老王叔的鼻子说有问题。这个字段的类型是什么?布尔值?整数?还是字符串?
我在燕京的时候,每天跟数据打交道。我觉得数据是这个世界最干净的东西——它不撒谎,它不乱来,它老老实实待在表里。但现在我发现,数据之所以干净,是因为我们把所有脏的东西都过滤掉了。那些过滤掉的东西里,可能正好有最重要的那一个。
我叫林向北,清华计算机系毕业,在大厂写了八年代码。我现在蹲在猪圈门口,在一个老头闻了一把饲料以后,思考要不要相信他的鼻子胜过相信我自己写的一万多行代码。
这件事如果写进简历,HR会怎么看?具备在猪粪味中做出关键决策的能力?还是无法信任自己开发的AI系统?
我给刘科长打了电话。我说老王叔怀疑饲料有问题,但我自己的系统没检测到。我把这两个信息同时告诉他,让他自己判断。
这个做法很耍赖。我把决策责任推给了别人。但我想不出更好的办法。
刘科长没犹豫,连夜发了全县通知——暂停使用前天到货的第三批饲料。这个决定在局里引起了巨大争议。供应商告到县长办公室,说畜牧局没有科学依据就毁约。
天亮以后,隔壁县的检测报告出来了。疫情源头——饲料污染。用的就是同一家供应商的同一批豆粕。
全县零感染。
因为一个老头用手搓了一把豆粕,放在鼻子底下闻了一下。因为一个从燕京回来的程序员选择相信那个老头的鼻子,而不是自己写的AI。
这件事给我最大的冲击不是老王救了全县,而是一个更让人不舒服的事实:我的AI系统在饲料霉变这件事上,还不如一个老头的鼻子管用。我花了三个月、用了全县的数据、写了一万多行代码做出来的系统,在最重要的关口上输了。输给了一个六十年没出过县城、不识字的、每天抽五根烟的养猪老头。
但我没觉得丢脸。恰恰相反,我觉得这件事证明了一个我一直在想但从不敢说的道理:有些知识是用身体记住的,不是用代码描述的。你可以把老王的经验写成七十三条规则,但你在规则里漏掉的那条——打开袋子,先闻一下——可能才是最关键的。
老王后来跟我说,也不是每个养猪的都能闻出来。我是从小肺不好,对气味敏感。他说。
这个解释让我笑了一下。原来不是经验,是肺病。这么说我的AI输给了一个肺病患者,似乎更说得通了。
举报