• 欢迎访问:祀与戎,国之大事,在祀与戎。 手机号码:
  • 欢迎访问:祀与戎,国之大事,在祀与戎。
  • 欢迎访问:祀与戎,国之大事,在祀与戎。祀与戎
  • 祀与戎,国之大事,在祀与戎www.siyurong.com
  • 祀与戎,国之大事,在祀与戎。如果您觉得本站非常有看点,那么赶紧使用 Ctrl+D

算法工程师是不是一个「越老越吃香」的岗位?

思想观点 siyurong 4年前 (2022-10-01) 8次浏览 已收录 0个评论

是时候讨论一下越老越吃香这个话题了

越老越吃香第一定律:一个经验可以反复使用,反复创造价值,才有可能越老越吃香

如果你仔细思考所有职业所积累的经验,能符合越老越持续第一定律的职业其实非常稀少。

医生和律师是其中最典型的两个。医生看病的经验,用到一个病人身上产生一次价值,而且随着经验增长,慢慢积累出看疑难杂症的能力,产生的价值进一步被放大。律师给人打官司,越打经验越丰富,越能处理各种复杂情况,越了解最佳的应对方案。

算法工程师的问题在于大量的经验,被大模型、预训练取代,你懂再多trick和know how,可能都不如上线一个12层的变形金刚(transformer)。未来越来越可能分化为大模型训练师和拖拖乐工程师。

越老越吃香第二定律:技术壁垒高,且小众,才有可能越老越吃香

这个定律还没有总结的非常好。但我观察到这样一种情况。有些领域的工程师职业寿命比较长,如编译器领域、编程语言领域。这些领域往往门槛很高,且小众,人才供给少,已成为基础生态的一部分,有生之年看不到发生革命性突破的可能,那么这种领域老工程师的经验就非常有价值了,之前趟过的坑年轻人一样要趟一遍,根本不可能弯道超车。这种情况下,经验比体力重要,才可能越老越吃香。

分三个阶段来说吧

初级算法工程师

——关键词:高效执行机器——

算法入行的必经之路,所谓的 SQL Boy、调参侠、数据搬运工、炼丹师,都发生在这个阶段。

这个阶段的算法工程师,很多时候都是在和数据打交道。数据漏报、数据重复上报、埋点有误、多方数据统计口径无法对齐、反作弊口径定义和对齐、异常数据检测和排查、数据缺失处理、样本清洗、特征统计加工、线上指标下降问题排查、bad case 归因分析、数据标注…听起来是不是一点都不 fancy?对于一个负责业务落地的一线算法工程师来说,这些数据工作可能占了日常工作的很大一部分时间。

可就是这些一开始被你看不起的各种所谓 dirty job,这些你在实验室和学校接触不到的工业数据实践,这些在 paper、书本和网络永远不会教你的工作,正是你所累积的技术经验和宝贵的财富,它是驱动你往下一层级改造的主动力。作为一个算法工程师,如果从没有在底层有过基础的开发和数据分析的从业经验,将来站在更高层的时候很难作出对团队方向有利的决策。数据决定了模型的上界,特征和算法只是在逼近这个上界。

不了解你的业务数据特点,很难成为一个好的算法工程师。在业务实践中培养锻炼数据 sense,是一个初级算法工程师的必修课之一。

这个阶段的算法工程师,一般面临的业务问题也比较明确,比如提升召回效果、提升线上 ctr / cvr / gmv / 时长、提升搜索相关性、降低 bad case 率等等。这些明确的业务问题背后,在业界包括团队内一般都有比较明确的技术方向,相对应的就是一些比较明确的算法问题,比如信息流的 ctr 预估、用户兴趣建模、广告出价预估、相关性模型、物品召回、图文标签生成等。

这些不同的算法方向根据团队形态不同,往往会分的更加明细,比如召回方向的可能会有专门的团队,落到每个人头上就是负责其中一种召回策略:用户标签召回、行为序列召回、主题召回、双塔模型召回等。做排序模型的有专门的团队,可能是每个场景有专门的人负责,例如首页/频道页/分类页/热门页/子频道页等;也可能是每个方向的模型是专门的人负责,比如 ctr 模型、gmv 模型、时长模型等。机制策略也可能有专门的团队,每个人负责不同的策略方向。

具体业务和技术形态怎么分工,不需要初级算法工程师操心,那是更高层的算法工程师需要规划和操心的事。这个阶段的算法工程师的主要目标,是要使得自己具备能够高效执行具体任务落地的能力,这其中对动手能力的要求是最高的。

业界XX会议又又发表了一篇影响力很大的paper,实验效果宣称 ( chui niu ) 业界最牛;隔壁XX公司的XX团队又又又发表 ( PR ) 了最新的算法,声称效果提升巨大 ( 可能是 baseline 很低 );著名程序员大型交友网站某 hub 又开源了最新的模型代码,号称在多项任务中吊打当前各种主流模型。于是老大一句话,你去调研下人家怎么做的,回来落地实现下啊。

接下来就是发挥初级算法工程师能力的时候了。看论文、复现模型、跑实验、调参数、魔改网络、效果不好接着调。这个过程其实也是拉开初级算法工程师们能力的时候,有些人只是做到会用工具,调调 api,调调参数改改网络,或者直接 git clone 下载源码编码后改改直接跑,至于能否有效果完全看天,真真是在”炼丹”。最终没效果还要补充一句,论文作者们真的是在吹牛啊,这个算法在我们这里完全没有效果啊。然后换个模型重新炼丹来过。

有些人在这个过程中不断累积经验,尽可能去找这些方法的共性。以 ctr 模型为例,embedding 参数对自己业务数据效果是否敏感、网络层数的深度对效果的影响、不同正则化方法是否 work、bn/ln/dropout 等方法是否有效、当前的特征体系对于高阶特征交叉是否已经刻画足够、attention 到底收益有多大等等。这些如果能从更本质和通用共性的角度去分析总结,大概率在同样的数据分布上可以作为以后的先验判断,经验是可迁移的,不至于在每一次有新的模型出来就去盲目的做尝试。

判断这个阶段的工程师的标准,就是对于一个明确的算法目标,是否具备足够强的执行能力将其落地。初级的落地能力只是快速实现,更加高级和 solid 的落地能力,是能够 know how 的落地,有无效果都能做出比较 solid 的分析,并且能够为以后的迭代优化提供经验。

02

中级算法工程师

——关键词:算法选型和改造能力——

经过了第一阶段之后,对于明确的算法问题已经具备了足够的经验,这个阶段,需要自己根据在这个领域内的技术累积,对已有的算法问题,进行适当的改造和优化。

以用户画像为例,如果是刚搭建的团队,初期可能更多需要搭建的是整个模型框架,和上下游团队协作沟通,以最小的代价迅速搭建起线上可用的基础 baseline。比如最简单的基于统计的方法,根据用户主动行为的物品标签作为用户的统计画像标签,如24小时的统计标签作为短期兴趣,30天的统计标签并做时间衰减作为长期兴趣。这个阶段的算法工程师,如果不顾团队的现状,一上来就想做能够体现技术深度的各种模型,对团队的进展其实是负向的。确保算法能够快速落地并取得收益才是主要目的。

而团队发展到了一定阶段,有了一定的基础属性画像和统计画像之后,可以根据团队的人力做些深度的发展,从基础的统计,可以做无监督的隐语义理解 ( lda, w2c 等 )、有监督的双塔建模、加入特征的用户兴趣建模,到用户序列建模,甚至各种图方法知识图谱的手段。而具体选择哪些方法进行尝试需要中级算法工程师根据此前在初级阶段累积的经验做预判,例如假如还没有用户 embedding 的表示,将用户的行为序列作为 sentence 尝试在很多公司的业务都有过收益的 word2vec 可以作为 baseline;引入更多特征的双塔模型得到用户的行为 embedding 大概率能进一步提升效果。而如果用户有些社交属性关联,可以考虑图方法做进一步的挖掘等等。

作为该方向的负责人,需要根据团队发展阶段,进行合理的技术选型,并做适当的改造。例如该不该用序列模型,lstm、rnn、transormer、bert 等序列模型如何选择,位置特征如何设计融入等等。关于细节的参数调优需要具体执行的初级算法工程师进行实验,而大方向的技术选型以及改造方向,则需要中级算法工程师把握和指导。

技术深度绝对不是考察中级算法工程师的主要手段,判断这个阶段算法工程师的标准,主要是是否具备在某个算法方向,独立承担整个算法从选型、改造、应用到落地取得成果的能力。

03

高级算法工程师

——关键词:业务抽象能力——

前面两个阶段的工程师做的事情,严格意义上来说,都是在执行这个阶段的算法工程师定下来的算法指标。这个阶段的算法工程师,需要更多的是对整个业务的理解,去抽象和定义业务问题。比如当前阶段,业务是否需要专门的团队做用户画像,需要多少的人力做素材理解,rank 模型是否还有空间、需要投入多少人力持续优化等。如果战略目标制定不明确,影响的将是整个团队的努力。

对于更上层的管理层来说,算法团队的存在意义,绝对不是说一定需要有 ctr 预估团队,需要有用户画像团队和视频理解团队,需要有人做 nlp、有人做特征等等。整个算法团队存在的意义,就是能够最终从算法的层面,解决实际的业务问题。在某个阶段需要做的是提升用户点击率,可能需要有 ctr 模型方向团队和有用户画像方向团队等;在某个阶段引入更多的多媒体素材可能需要有团队做视频理解和图像理解;某个阶段需要做用户增长和留存,可能需要有团队做专门的数据分析影响用户留存的因素,有团队做留存模型有团队做增长模型等等。

这也就决定了不同时期,对于算法团队的目标是不同的,需要的人员配备也不同,而这些,都需要高级算法工程师去站在整个业务层面去理解和拆解,然后将目标层层传递到整个团队去。判断这个阶段算法工程师的标准,主要是对于所负责的业务,能否制定合理的算法可达目标,并带领团队完成实现。

04

结束语

——关键词:深耕岗位——

个人觉得,如果35岁了还处在第一阶段,也就是只能执行明确的算法模型,和刚毕业的年轻人比可以说完全没有竞争力,个人职业生涯的进一步发展会很受限。

如果已经进入第二阶段,不可取代性还是很强的,毕竟这个阶段的合理算法技术选型和推动落地能力,是很多刚毕业和工作不久的年轻算法工程师难以做到的。

如果已经到了第三阶段至少已经是业务方向的算法负责人了,都这种 title 了,考虑的是怎么往公司的中上层走了,根本不会担心年龄这种坎。

所谓越老越吃香的岗位,都有几个共同点

1.面对的问题比较固定,变化缓慢

2.面对的问题是永远无法根治,只能缓解的问题

3.解决问题的过程中,经验占比超过知识

典型的就是医生这个职业,人体构造导致疾病的原因,上千年变化都不大,很多基础疾病都伴随人类上百万年了,每年新增的疾病是很少的。绝大多数疾病无法彻底根治,只能缓解症状,只要能让病人自然衰老死亡之前不会病死就算神医了。疾病的复杂性导致很难清楚地分析明确所有导致发病的原因,也无法推理精确的治疗手段,所以经验就很重要。

由此推论,算法工程师不属于“越老越吃香”

算法工程师面对的问题是不断变化的,总有新的算法问题需要解决,很多问题是随着技术和业务发展才新出现的,比如 人脸识别算法是摄像头发明以后才有的,声音降噪算法是麦克风发明以后才有的,自动驾驶算法需要先发明汽车。未来不断发明新产品新业务,自然就需要新算法。算法是比较理性的,符合严谨的数学定律,是可以精确推导的,就算不能给出完美解也可以得到一个非常近似的解。由于问题变化太快太多,经验虽然有用但是用途受限,采用新算法新模型有时可以轻易打败经验,比如 计算机视觉领域,用深度学习做物体检测识别,轻松打败多年的传统模式识别的经验。

先说结论:不是

我们目前的职业有两种,分别是:

1.技术发展更新的速度大于经验增长的速度的职业

2.经验的增长速度大于技术发展更新的速度的职业

很不幸,算法工程师正好是第一种。只要技术在不断快速更新,技术人只有通过不断学习大量新技术,才能赶上技术时代的潮流的技术,也就是说 :技术发展更新的速度远大于工程师经验增长的速度,那么这类技术一定不是越老越吃香。当一个两三年前刚毕业的应届生,通过熟悉各种传统机器学习算法,cnn,lstm,transformer等模型拿到了算法工程师的offer,可工作的时候各种新技术依然是层出不穷,VIT,Clip,GPT3等新架构又出来了,那么工程师在工作的时候不仅仅需要应对工作当中的具体业务场景,还需要下班自学各种新技术。你之前拥有的经验可能是LSTM在对应业务场景下的经验,一旦学术界新的模型架构一出,你之前的经验就几乎全部作废!!!现在公司需要的你是transformer/Bert架构在当前业务场景下的经验!!!

同时,比工程师更年轻,学习能力比你更强,大学里的小鲜肉也在疯狂学习。他们富有精力,对各种新技术,新架构手到擒来,和学术界(最新技术)联系紧密,年轻人可以凭借自己对各种新技术的把控,轻松应对工作当中的各种业务场景,直接把你干趴下。你对于业务场景经验的增长速度根本不可能大于技术发展更新的速度,通常你之前的经验往往还会因为技术不断更新的原因,直接全部作废!!!这样你就会被逐步淘汰掉。这也是互联网大厂经常出现“新员工倒挂老人”的现象的原因,算法工程师到了35岁,甚至不到35岁,不转管理就100%失业!!

越老越吃香的技术我们大家都知道的有,医生,律师,公务员等等。对于这三个职业而言,都是经验的增长速度大于技术更新的速度,到职业发展的中后期,top10%的医生和律师,随着自己在从业经验、人脉、资源的积累,完全可以凭借自己的口碑和名气包揽全行业90%的客户。就算医生会用到新的仪器,新的医术,但这些新的技术都是很好学习的,稍微在之前的积累之上有所精进即可。不会像算法工程师一样,几乎完全弃用之前的技术,从头推倒来一遍的情况,今天编程语言用python,明天用R,c++。今天我用pytorch,明天又变成了tensorflow,keras,或者一些更新的框架,一旦年龄变大,又要照顾家庭,自身学习能力逐渐走低,你跟不可能跟得上最新技术的变化!!另外,IT界也不存在什么资源积累之说,谁技术强谁就行,谁技术不行跟不上时代的潮流了,自然也会被公司慢慢淘汰掉。

那算法工程师有没有什么方法变得越来越吃香呢??我认为是有的,那就是不要把自己限制在不断精进技术的怪圈里,因为你的技术再怎么精进,紧跟时代潮流,也是不可能搞得过年轻人的。而是在工作当中不断锻炼自己的领导力,演讲能力,组织大家推动项目的能力,站的高,看得远,你不仅仅知道这个技术干啥用的,你还知道这个技术怎么能够给公司带来更大的盈利。同时学习各类商业运作的知识,那么你就可以通过跳槽/内部晋升等等方式,最终成功走向公司中高层管理层,就有一定几率走向人生巅峰!想要有一碗铁饭碗,越老越吃想是万万不可能的,一旦你选择了体制外这条路,不管你的技术多么的强,都要做好随时失业的准备,这次互联网大裁员的浪潮我相信大家都有所耳目。同时在商业的世界里,能不能给企业带来效应,能不能给公司赚钱的能力才是体制外之人真正需要钻研的。

今天我的分享就到这里了!欢迎大家补充!


祀与戎 , 版权所有蜀ICP备14023000号-6丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:算法工程师是不是一个「越老越吃香」的岗位?
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址