先交代一下我自己。我是16年普通211硕士,第一份工作在某二线厂的广告部门,做点击率预估。那会儿还没多少人提大模型,我们用的还是LR+FTRL,后来才换的GBDT。一开始感觉算法工程师高大上,做了一年后发现每天都在跟特征对齐、样本延迟、线上预测不一致这些破事较劲。后来跳槽到一家短视频大厂搞推荐,职位听着好听,实际上PIP和OKR压得人喘不过气。再后来,为了不让孩子觉得爸爸跟个程序员植物人一样,我去了家百人规模的AI公司做端侧模型优化,算是把工作节奏和生活找回来了。平时刷到不少文章在讲算法工程师是不是快凉了,大家都爱讲结论,那我用自己的经历聊聊。
先说关于“调参侠”这个事。网上很多帖子说算法工程师就是高级调参师,因为现在的工具太强了,什么AutoML、超参搜索一上,人就是拖点数据集然后等结果。可实际情况是,大部分“调参”的消耗不在调参这个动作本身,而在排查那些让模型莫名其妙变差的脏数据。有一回我们模型的离线AUC从0.71掉到0.69,所有人都开始查特征重要性和超参数范围,查了快三天一点线索没有,后来才发现是上游数仓有个字段因为昨天数据量过大被截断了,导致接近12%的样本为空值。我那天凌晨三点盯着pandas的describe输出,才真正理解“垃圾进,垃圾出”是什么意思。你说这种经验是调参能总结出来的吗?它更像是工程事故的debug过程。所以在我看来,真正区分算法工程师水平高低的,不是谁手里transformer用得花,而是遇到模型效果波动时,谁能在系统层面更快定位问题。很遗憾,这也是我们行业里比较稀缺的能力,因为多数教程不教你排查这类问题。
再聊一个很多人不想面对的对比,大厂和小公司的算法岗完全是两种职业。在大厂做算法,你周围有完善的特征平台、模型平台、ab测试平台,你要做的就是把一个模块的指标提升一点点,然后晋升答辩的时候把故事讲圆满。我记得有次上线部署了一个双塔召回模型,增加向量召回之后,短视频人均播放时长大概提升了0.5%,已经很不错了。但因为业务盘子大,okr只算一点分,而且你即使做出了这一小步,后面的实时汇总逻辑又会遇到新的系统改造,无法持续沉淀。而在小公司,什么平台都没有,数据要自己写hive sql去拉,模型要打成服务去部署,甚至还得帮java那边写个接口。听起来很累,但正因为没有框架保护,你对整条pipeline的理解反而清晰了很多。我们去年做的一个工业设备故障预报算法,最开始用xgboost效果是挺好,但是到了现场部署的时候,因为设备采集的数据频率不固定,很多样本的时间戳错位,导致漏报率高达30%。如果还是在大厂,这问题根本轮不到算法研究,可在这里你必须去现场看接线盒、问老师傅,最后改成滑窗统计特征才把漏报率压到7%。这种经历让我意识到,算法工程师不是只跟数学打交道,很多时候需要从设备、业务、客户的角度反复横跳。
关于大模型冲击这波,肯定是要提的。去年ChatGPT刚火的时候,几乎每天都有同事在担心岗位被AI替代,后来各种“用大模型取代算法团队”的口号我也听过。但我的观点可能有点反直觉:大模型普及不是让算法工程师变少,而是让不会工程只会套模型的人变少。打个比方,过去用BERT做文本分类还能当个项目,现在一个开源模型加几次提示词就搞定了,普通调包侠根本没竞争力。可反过来,大模型实际落地时,需要处理检索、压缩、推理延迟、幻觉评估等一系列工程问题。我今年自己搞了一个RAG系统,调用开源大模型做文档问答,单次请求的P99延迟从原来API方案的2.9秒优化到1.1秒,做法无非是改embedding模型、粗排过滤和动态上下文拼接。这些环节哪个离得开经验?所以我判断,纯粹的模型训练岗位确实在减少,但懂系统、懂数据、懂部署的算法工程师反而被推到了台前。
最后我想说,如果你真的想在这个行当干得久一点,就别被那些“算法模型精通”的表象给迷惑。我在面试中见过不少候选人,能闭眼把attention公式写出来,但问到你们项目的样本是怎么来的、线上和线下的一致性怎么保证,就支支吾吾说不出细节。我会给这样的人打低分。因为算法模型是术,数据和工程是道,术可以用钱买到,道不行。另外如果你不到三十岁,建议去小公司折腾一两年,看看自己动手从无到有搭出一个有效模型是什么过程。哪怕失败,也比在大厂会议室里画PPT强。毕竟,算法工程师这个头衔迟早会像“网页设计师”一样被稀释,剩下的只有那些真正能够解决实际问题的人。