本命年结束了,但“AI 浩劫”才刚开始。我指的是我自己的浩劫。今天把最后一批树莓派4B从机架上拆下来,准备打包卖掉,看着这堆巴掌大的板子,心里有点不是滋味。它们是我2021年最后的倔强,用物理堆叠对抗算法焦虑的产物。
去年这时候,团队刚散,我一个人对着空荡荡的办公室,那种失控感比疫情封控还难受。手里接了个体育场馆数据监测的私活,要求7×24小时爬取全国上百个票务平台和运动APP的库存、价格、评论。单机跑?IP分分钟被拉黑,动态反爬的验证码像下雨一样。云服务器多开几个实例?成本报表看得我肝颤。那时候天天琢磨的就一件事:怎么用最低的硬件成本,把数据通道给我撑起来。
然后就想到了这堆“废铜烂铁”。说的就是树莓派。咸鱼上收的,很多是学生玩腻了的二手货,4B 4G版,三百多一块。一口气搞了十二块。核心思路特别简单粗暴:把采集任务拆成“种子生成”、“URL分发”、“页面抓取”、“数据清洗”四个环节,用Redis当消息队列。十二块板子分成三组,每组四块做负载均衡。一组专门跑调度器,从MySQL里读要监控的场馆列表,生成具体的查询参数,扔进Redis的“待抓取队列”。另外两组,每组四块板子,就干一件事——从队列里抢URL,用异步IO去请求,下来原始HTML再扔进“待清洗队列”。最后一块性能稍好的挂了个MongoDB,做去重和结构化。
难点全在细节里。比如电源,普通USB充电头带不动四块,得上5V3A的工业电源模块。散热,亚克力架子自己打孔,贴散热片加小风扇,半夜听起来像一群蜜蜂。最头疼的是网络,家里路由器扛不住这么多长连接,换了企业级垃圾,还得写脚本监控每块板子的网络延迟,自动踢掉响应慢的节点。日志统一用rsync拉到NAS上,用ELK堆栈看,哪块板子今天触发了多少次429状态码,一目了然。
那种快感很原始。不是云控制台上点几下鼠标开个弹性伸缩组能比的。是你亲手把电路板、散热片、网线拧在一起,看着它们跑起来,CPU温度曲线像心跳一样波动。深夜盯着监控屏幕,十二个SSH终端刷着日志,看到“清洗队列”长度稳步下降,而数据库里的记录数一条条往上蹦,那种对“生产流水线”的完全掌控感,是当时溺水般的焦虑里唯一能抓住的浮木。这套东西峰值一天能处理两百多万个页面,硬件成本不到五千块,电费一个月几十。
但现在要卖掉它们了。因为最近玩了一下GPT-3的API,写了个简单的提示词,让它模拟用户去票务网站“询问”有没有票。它返回的文本,经过简单解析,准确率比我那套精心调教的正则表达式和XPath规则高了不止一个档次。关键是,人家没有IP问题,没有验证码,它是在“对话”。我花了三个月搭的物理集群,引以为傲的分布式容错、自动重试、代理IP池轮询,在另一种维度面前,突然显得笨重、落后,像蒸汽机火车头望着天上掠过的喷气机。
本命年犯太岁,都说熬过去就好了。我熬过去了,团队解散的坑填平了,一个人也能用这套土法炼钢的系统交付项目,赚到钱。但新的浩劫来了,它不是流年不利,是技术范式的海啸。我把树莓派擦干净,装回盒子里。我知道,明年,不,从明天开始,我的战场不再是这些可爱的绿色电路板了。我得去学怎么跟一个没有实体、却无所不能的“大脑”打交道。浩劫刚开始,而我已经38了。














