算法工程师的发展路径

用户头像
Lucien
关注
发布于: 2020 年 05 月 13 日
算法工程师的发展路径

我在策划每届 ArchSummit 全球架构师峰会的时候,会去拜访业界专家,请他们给一些建议,聊聊自己的一些想法,以及给会议专题方向上给些指点。他们就提到,架构师这个岗位涵盖的范围很广,例如系统架构师、基础架构架构师,运维架构师、前端架构师等等,但是有一个千万不能忽视,那就是算法架构师。在AI大行其道的时代,很多高效率的应用程序,背后都是复杂的算法在发挥至关重要的作用,最典型的就是今日头条消息流、电商产品推荐等。所以要在会议上多讲讲算法实践,哪怕是调参的标准,也是值得分享的,尤其是要让算法架构师了解业务形态,也是对算法架构师有帮助的。



所以在每届会议上,都设置了算法应用专题。恰好在邀请网易云音乐蒋能学老师来分享算法议题的时候,看到了他分享的算法工程师发展路径的文章,这里引用,希望对刚入行的算法工程师有指引作用。



首先简述了“算法工程师“的来历,然后分析了算法方向的三点优势,最后根据我的理解介绍了这个职位的发展路径。



一、算法工程师的“诞生”



超过10年工作经验的软件工程师朋友可能会感慨,曾几何时,排序算法、加密算法等如今已不叫算法,当我们聊起算法时,已经特指机器学习和深度学习相关的算法,并有了一个新岗位:算法工程师。其实十多年前很多公司也有类似的岗位,比如百度有 NLP 工程师、搜索策略工程师、广告策略工程师、音视频工程师等,从事的工作与如今的算法工程师基本相同,比如用 LR 做广告 CTR 预估,自动分类聚类、音频识别等,不过当时不叫算法工程师。



在2010年之后,随着大数据和深度学习技术的逐步发展,推动了人工智能领域的快速发展,比如图像识别和音频识别,推荐系统、搜索系统、金融信用评分、广告推荐等,都取得了跨越式发展。行业对于懂常规机器学习、深度学习和增强学习算法方面的需求越来越大,这方面的招聘需求从2015年开始爆发,也不知道是哪家公司最新叫起,把这类岗位称作“算法工程师”,其实这个叫法非常不严谨,因为做这类工作的人不一定搞算法(也许是调参和洗数据),并且做后端开发的同学也不是不搞算法,比如压缩算法、高效查找算法等,但算法工程师这个称呼抢占了先机,并且迅速占据了大家的心智,算法工程师就这样“诞生”了。



从2015年至2018年,行业对算法工程师的招聘需求呈指数级增长,人才非常稀缺,很多学人工智能相关方向的硕士,应届毕业就能年薪30万起步,与后端工程师在待遇上拉开了不小距离,一直到2019年才得到一些缓解,我估计缓解的原因是2015年AI火爆之后,大量计算机专业的学生选择了机器学习相关方向,2-3年左右这批硕士正好毕业,市场供需关系进一步平衡。目前,算法工程师的待遇与后端工程师正在缩小,但相同工作年限的这两个岗位在市场上依然还存在一定的差距。



二、算法方向的优势



——商业价值大:



比如离钱最近的广告推荐算法工程师,能直接通过改进算法来提升广告的变现效率,效果能直接体现在公司的收入上,公司自然很舍得投入。也因为如此,业界很多机器学习方面的创新都是由广告算法方面的人所推动的。再比如推荐系统工程师,能通过改进推荐算法来提高用户留存率、提升用户时长等产品的关键指标,地位自然很核心,能受到公司的重视。最近几年音视频产品发展迅速,公司之间竞争激烈,音视频算法工程师的任务是从产品的底层关键指标上做改进,对提升产品的核心竞争力起到非常关键的作用。以上工作都具有非常大的商业价值,相对于后端工程师与商业隔了产品或销售,算法工程师能直接面向业务,这是很大的不同。



——门槛相对较高



首先,算法工程师需要有扎实的数学基础和坚实的算法理论基础,有了这些基础才能在这条路上走得远,才不至于遇到问题时只能瞎尝试,而不能根据问题的本质原理去精确定位问题。



其次,算法工程师需要有一定的编程能力,尤其是作为初级算法工程师不能指望让别人来动手帮你实现,需要自己动手去实现想法。



再次,最近几年发展迅速,业绩各种新论文层出不穷,需要花很多精力去学习更新知识。



还有一个更重要的门槛:业务机会。算法方向的实践性非常强,纯理论的东西与实际工作有很大的不同,如果没有一个合适的入门机会,很难跨越初级算法工程师阶段而直接进入中高级阶段。但这样的机会不多,需要正好在你职业发展的初级阶段遇到这样的机会,很少有人在其他方向已经发展到中高级了,回过头来再转成初级算法工程师。不过有一个特殊时期,就是在2011年左右算法行业的初级阶段,那时符合算法岗位的人少到可以忽略,想象一下2008年的高级Android或iOS开发工程师的数量,所以那时正是一个其他方向转向算法的机会窗口,作者比较幸运,在工程方向上工作了若干年后,在2011年左右还做了较多搜索推荐算法和广告算法相关的工作,顺利度过了初级阶段,之后由于实际工作的需要,在两个方向上都取得了一定的发展。



——就业机会越来越广



未来几年AI相关领域还会加速发展,各大公司的业务都在All In AI,需求量会持续加大。总体来看,未来几年还是需大于求,当然,竞争也会越来越激烈。



三、算法工程师的发展路径



在上一篇文章中,我给后端开发同学往架构师方向发展画了一幅图,路径比较清晰,主要是因为后端工程师这个岗位存在了20年左右,相对比较成熟了,各大公司都有类似的路径。算法工程师岗位比较年轻,绝大部分从业者的经验都在十年以内,因此发展路径还不像架构师那么明确,但在大厂里面也形成了基本路径,如下图:





上面提到了算法工程师需要从初级算法工程师做起,基本不可能从中间起步,即使从管理岗转回技术岗,前提也是之前就是算法工程师,否则管理岗虽然可以管算法工程师,但转不了算法工程师的技术路线。



图中我标明了一条“算法工程”的技术路线,这个岗位跟算法工程师一样年轻,也是最近几年才出现的。简单来说,就是做算法的工程实现,像TensorFlow、Caffe、PyTorch等算法框架都是算法工程方向的架构师开发出来的。算法工程的同学需要有良好的算法基础,否则在这个方向上很难走远,当然也可以发展到一定程度转后端工程师(技能类似)。算法和算法工程方向在资深工程师以下是存在互相转岗路径的,尽管关注的点不同,比如算法工程师更关注算法的效果,而工程方向更关注算法的落地实现以及规模、效率方面的问题,但只要基础好,尤其是在同一个团队里做同样的业务,这种代价是可以承受的。但是,到了架构师层面和算法专家层面,互转的难度就非常高了。



下面我根据自己的经验和理解总结了四个能力水平的描述,可以参考其中的差别。在实际工作中,算法工作并没有想象中的高大上,实际问题也可能并不需要用到高深的算法,但情况会更复杂。



算法工程师



初级算法工程师最重要的工作是学会如何将所学的理论知识,以及各种比赛中的经验,应用于工业领域。在学校学习理论知识的时候关注的重点是对知识的理解,比如各种模型的特点和公式的推导;比赛场景则太单纯,比如各种样本数据都正常、特征清晰、待解决的问题定义非常明确。而实际工作场景要复杂得多,比如想要得到正常的样本就不是一件很容易的事情,特征数据的准确性也没有保障。初级算法工程师的工作大多数是与特征工程和数据相关的,能解决这类实际问题,代表着在这个岗位上站住了脚。



高级算法工程师



高级算法工程师熟悉所在业务领域的各种算法模型和现有工具的使用,显著特点是能独立负责面向技术指标的项目,比如扩大召回率、提升准确率、点击率、转化率等,能解决过程中遇到的问题,能够熟练地围绕目标进行调优,在各种组合中找到适合业务问题的方法。高级算法工程师面临的问题主要还是技术问题。



资深算法工程师



资深算法工程师一般负责一个高难度的子领域(Topic),比如产品中的某个核心推荐子系统。资深算法工程师能够从业务问题出发,独立作出系统性的分析,抓住问题的本质,通过引入业界算法模型,并根据自身的业务情况做出一定的修改和优化,通过这种微创新来解决问题。对于所负责的Topic如何向前发展起到决定性的作用。通常,资深算法工程师是落地执行和解决业务问题的关键角色,是连接业务和技术的关键节点。显著特点是面向业务问题和技术微创新。



算法专家



算法专家往往能独立负责一个产品或业务领域,比如中型公司的产品线算法负责人,或互联网头部公司的核心子系统骨干,比如大型广告系统CTR预估组的核心骨干,大型应用推荐系统组的核心骨干。算法专家一方面在技术上有很深的造诣,深刻理解算法背后的理论和原理,并有丰富的成功经验;另一方面又深刻洞悉业务问题的本质,能排除干扰抽象出业务的数学模型,然后通过灵感的火花把这两方面结合起来。显著特点是面向一个完整的业务和基于业务的技术创新。目前能达到我描述的算法专家水平的人,在业界很稀缺,罗列一下头部互联网产品有哪些,再数一下这些产品的哪些功能需要用到算法,就大致猜出了这个群体的规模。



再往上就暂时先不描述了,他们是算法前沿领域的贡献者,或者头部AI公司算法方面的领军者。



随着算法工程框架的不断完善,算法工程师的门槛比起前几年什么都要自己动手解决的阶段降低了不少,入行的人越来越多,同时诞生了“调包侠”和“调参师”,这意味着行业正在逐步走向成熟。对于立志要走算法专家路线的同学,要在扎实的专业知识基础上,在解决业务问题的过程中发展自己,时刻保持学习状态,对问题做深度思考。如果你能站在顶端,何必在意下面基数的大小呢!



作者十多年来专注于后端架构设计和广告算法两个领域,欢迎关注公众号【技术管理者】进行交流。

用户头像

Lucien

关注

还未添加个人签名 2016.01.08 加入

和团队小伙伴们一起组织 ArchSummit 全球架构师峰会(7月份深圳站&12月份北京站),日常坐标北京,微信ID:liangsha0301,关注架构、运维、工程效能等技术话题。

评论 (2 条评论)

发布
用户头像
非常好,坚持写,“写作”的这个短板就一定能很快补齐。
2020 年 05 月 13 日 21:27
回复
希望能推荐到首页,嘿嘿😁
2020 年 05 月 13 日 21:32
回复
没有更多了
算法工程师的发展路径