我做后端开发五年,说得直白点,就是天天跟CRUD死磕,偶尔优化下接口性能、排查下线上bug,日子过得像上了发条的钟,稳是稳,但越往后越慌。
尤其是去年,公司业务收缩,我们组裁了两个人,留下的人要扛更多需求,每天加班改代码、改需求,改到最后我都快忘了写代码的初衷是啥。有天凌晨两点,我对着屏幕上的接口报错日志,突然就腻了!一辈子跟增删改查打交道,把重复的逻辑写一百遍,这不是我当初学编程想干的事。
第一次接触AI大模型,是公司想做个智能客服插件,让我配合算法组对接接口。那时候我对大模型的认知,就停留在“能聊天、能生成文字”的层面,觉得都是算法工程师的活,跟我这写业务代码的没关系。直到算法组的同事让我帮忙排查接口返回异常的问题,我才发现,这东西跟我以前接触的所有业务都不一样。
以前写代码,输入输出都是确定的,传什么参数就该返回什么结果,出问题了顺着逻辑链路查,总能找到bug。但大模型不是,同样的提问,两次返回的内容可能差很远,有时候逻辑通顺,有时候又前言不搭后语。我问算法同事这咋排查,他笑着说:“这就是调参的魅力,没有绝对的对错,只有更优的结果。”
那之后我就有点上头了。下班回家不刷剧了,翻出大学时快忘光的数学课本,重新啃线性代数、概率论,对着网上的开源项目照猫画虎,试着跑通第一个简单的LLM微调案例。刚开始真的挫败,环境配置能卡我大半天,依赖包冲突、显卡显存不够,每一步都踩坑。有次调了三天的参数,模型生成的内容还是乱七八糟,我气得差点把电脑关了...这比改十个线上bug还折磨人。
最迷茫的时候是辞职全职转行那一阵子。以前做后端,好歹是个有经验的老鸟,到哪都能找到工作。但转AI,我就是个新手,面试的时候被问“注意力机制原理”“Transformer结构细节”,我都答得磕磕绊绊,好几次面试完都觉得没戏。家里人也劝我,稳定点不好吗?非要折腾自己。
转机是我帮一个朋友的小公司做了个定制化知识库问答模型。他们是做五金批发的,想把产品手册、售后问题都灌进模型里,让客户能自己查答案。我从数据清洗、标注开始,一点点微调模型,中间改了无数次prompt,调了不知道多少组参数,终于在两周后,模型能准确回答客户关于产品规格、安装方法的问题了。当朋友发来客户反馈说“比人工客服回复还快还准”的时候,我突然就找到了那种久违的成就感!不是改完一个bug的轻松,而是创造出一个能解决实际问题的东西的满足。
现在我做AI大模型应用开发快一年了,每天还是要跟参数、prompt、数据打交道,偶尔也会因为模型不收敛、生成效果差而烦躁,甚至还有点怀念以前写CRUD那种确定性的踏实。但我再也没后悔过转行。
其实程序员转行AI,哪是追什么风口啊,更多是想从重复的劳动里跳出来,重新找到对技术的热情。以前写代码,是在既定的框架里修修补补。现在做模型,是在不确定里找最优解,虽然难,但每一次调参后的进步,每一次模型达到预期效果,都让我觉得,这才是编程该有的样子!
当然,我现在也还在不断补知识,毕竟AI这行更新迭代速度实在是太快了,今天学的东西可能明天就过时了。但比起五年前那个对着CRUD麻木的自己,我更喜欢现在这个虽然偶尔焦虑,但眼里有光的程序员。
另外,作为过来人我深知在这个转行过程中的迷茫,刚开始我也不知道从何开始,都是靠自己一步步摸爬滚打出来的。今天写这一篇文章也是想感慨一下自己的来时路,同时呢,也给天南地北的朋友们指条明路,让大家可以少走弯路,也趁着今天周末在家,我把我当时学大模型的一些学习路线、笔记素材、视频教程等资源都上传到我的网盘了,如果你现在还没有一个清晰的规划,可以参考一下我的。