拒绝跟风,谈谈几种算法岗的区别和体验

这是一份小夕写给【准】算法工程师的手册和建议,

图片

大概是因为马上要开始秋招提前批了,小夕在知乎和微信后台收到了不少小伙伴的岗位/团队选择的求助。于是小夕这里写一篇扫盲贴,给即将毕业的师弟师妹们提供一个参考(后面再有师弟师妹问我这个问题的时候我就有文章可以甩了【奸笑】

如有描述偏颇之处,欢迎经验丰富的老司机们在评论区指出。

说起来国内的岗位名称,真可谓穷尽了眼花缭乱的高大上名词。经历过秋招的小伙伴一定都曽经历过岗位选择的困扰:

  • XX公司在招人工智能研究员,感觉很高端啊,怕怕的呢
  • XX公司在招NLP工程师,听起来跟java工程师没什么区别嘛

即将找工作的可爱的师弟师妹们千万不要被HR小姐姐们迷惑了,虽然岗位不分高低贵贱,但是不同的岗位工作性质和对能力的侧重点是很不一样的。

凡是以AI相关概念开头的岗位,无论是研究员/算法工程师/算法研究员/技术研究员/研发工程师/工程师,都可以统一理解成是等价的概念。其实本来是不应该等价的,但是实际上国内有大把的“研究员”岗位在做狭义的开发工作,疲于搬砖,毫无研究性质可言(哪家企业就不点名了,自己擦亮眼睛),也有一些不赶潮的企业比较偷懒,无论工作性质怎样,统一叫做“工程师/研发人员”。

参考知乎@霍华德的这个回答,互联网行业的算法岗主要分为三种

  • 业务导向的算法工程师(Development):最为典型的算法工程师,市场上招聘的大多是此类算法工程师,主要存在于业务部门。一些拥有独立业务的大厂技术部门(如百度NLP部门的百度翻译业务)也可能会有这种定位的小团队,研究院很少会有,除非公司真的缺钱了。这种岗位以快速解决业务中的算法问题为首要目标,创新成果可能写成专利。
  • 研究导向的算法工程师(R&D):主要聚集在大厂的技术部门,大厂研究院和大型业务部门也可能会有这种定位的小团队。这种岗位以重点攻克业务中的复杂算法问题为首要目标,研究成果一般以专利或论文的形式发表,也可能不发表。
  • 狭义的研究员(Research):主要聚集在大厂的研究院/AI lab,大厂技术部门也会有这种定位的团队或组,而业务团队很少会招聘真正意义上的研究员。这种岗位注重探索学术前沿,也会适当照顾业务线的长线需求,以打造业界影响力(paper为主要表现形式)为首要目标。

显然,这三类岗位,自上到下:

  • 市场需求依次递减
  • 不确定性(成果产出的难度)依次递增
  • 研究与创新能力要求依次递增

小夕在Research岗和R&D岗都呆过一段时间,暂时没有机会接触业务型算法岗的细节,因此这类岗位的相关讲解由某大厂核心业务团队的刷分上线小能手@兔子酱 提供。

在开始之前先声明一下,本文内容仅适用于一般意义的讨论,即观点和经历不可能复制到所有团队的所有人身。不同公司对AI lab定义不同,不同业务团队对业务算法工程师的定位和要求也有差异,同一家公司同一个团队的两个R&D也可能定位非常不同,因此本文的打开方式是为师弟师妹们进行一般意义上的科普,请勿拿个例较真噢。

Research

之前看到过一句话,无论一家公司再怎么宣称自己是科技公司,在“科技”之前,一定还藏着“商业”二字。因此,哪怕是谷歌、百度这种技术立命的互联网公司,也一定是先商业,后技术的。而Research岗,表面来看天然的与商业化相悖,往往产出与投入非常的不成正比。

对企业自身来说,需要对Research团队倾注大量的资源(金钱、人才、时间等)才可能换来可见的收益。而Research团队的产出也很难用金钱来衡量,这些或轻或重的科研成果会转化成业界的影响力,这对于吸引顶尖人才、发展长线战略是非常重要的。此外,投资长线研究项目也是一种社会责任感的体现,毕竟这种高风险高投入还有机会引发行业甚至全人类的巨大变革(大到Google的AlphaGo、微软的ResNet,细到百度的混合精度训练、Ring Allreduce)。

然而,对研究院绝大部分的重金投入,换来的收入增长和影响力却是微乎其微的,反映到Researcher个人上,更是能感受到 能力收益、付出产出 的巨大落差。Google等来Alpha Go和BERT,微软等来ResNet都不是一朝一夕的几块钱投入换来的。因此,处在Research岗上的人都无法回避的就是产出问题。高影响力的成果可能需要数年的前置铺垫,但是显然企业是很难给你这个试错时间的。哪怕企业的技术包容性非常强,你也需要考虑你自己的青春是否经受得起这份风险。

回想起跟着大佬和一群顶尖的小伙伴们做Research的那段时间,总时不时的要考虑一个无解的问题:ACL挂了的话这半年就是0产出?ACL中了但是短期也没法证明有什么影响力呀?想晋升加薪却发现根本没有拿得出手的产出?既没有给公司创造财富,又没有给公司带来影响力的提升,那么拿什么述职答辩呢?

这就是为什么Research团队成员大多是PhD。团队的每个人都是极其优秀的,一般都是Top2起步,尽管在做Research的日子里很享受智慧的碰撞和灵感的迸发所带来的愉悦感,但是现实的骨感就导致了工业界Research团队的高流动性——每每有能力超强的小伙伴因为投入产出远不成正比而离开,心里就感觉无比的难过。

因此,在盲目崇拜和跟风Research岗之前,需要首先问自己一个问题,**自己的能力和热爱是否足够承担的起这种高风险低产出的工作性质?是否真的已经对算法研究热爱到几乎放弃业务的程度了呢?**仅仅有一般意义上的“优秀”,是远不足以撑起这个岗位的,“优秀”只是Research岗的必要不充分条件。

Research&Development

R&D岗,或者说研究导向的算法工程师岗就相比Research岗温和了很多。小夕从Research岗的生活状态切换到R&D状态后,总结起来的体验就是

“体力劳动交换了一些脑力劳动,身体压力置换了一些精神压力,还多了一些镣铐”

与Research岗不同,研究向的算法工程师岗的问题需求往往来自于业务线,研究成果也是要直接反馈给业务线的,不把paper和学术影响力当作第一目标。与业务向的算法工程师岗也不同,研究向算法岗接触的业务需求(算法问题)大多是 挑战大,研究性更强,往往需要数个月的集中投入,但是一旦解决则会带来巨大的线上收益的。这里举几个NLP中的例子:

  1. 搜索业务中的智能问答/阅读理解问题:做的不好不会直接导致搜索引擎不能用,但是一旦做好了,就会给用户的搜索体验带来巨大的提升。
  2. 广告业务中的文本匹配问题:做的不好也能用,无非就是少赚点,但是一旦做好,就是高转化率带来的真金白银+用户体验提升了。
  3. 对话机器人业务中的闲聊问题:做的不好不会导致对话系统的核心服务直接挂掉,但是一旦做好,就会为用户带来极大的惊喜感和情感附加值。

这里要注意跟Research岗面对的问题困难度进行区分。Research岗往往要明显更困难一些,例如对话机器人业务,提给Research团队的需求可能就变成了“开放域对话理解”问题,这个问题一旦解决,绝对会给公司的对话业务带来翻天覆地的发展,甚至一举成为赛道的领头羊。但问题就在于,全世界都为这个问题头疼很久了。

由此可以看出,R&D岗相比Research岗要面临的不确定性小了很多,产出曲线平滑了很多。虽然R&D依然需要足够的创新能力和解决问题的能力,但是相比之下更容易获得与付出和能力相匹配的产出(除非遭遇了不靠谱需求)。

因此,对于一些业务线上提来的算法需求,可能由于问题难度不够大,或者你在该方向上的敏感度已经不错了,那么你能够熟练的通过几轮策略迭代就把问题的解决方案给探索出来了,进而给出一个可以上线的版本。相比Research的体验来说,算法问题的解决虽然会给业务方爸爸带来巨大的惊喜,不过对自身来说会多一些枯燥,少一些成就感,毕竟身上是有时间节点和线上性能(效率)的镣铐的,一些太天马行空的idea是不敢轻易去尝试的。此外,研究成果是要上线业务的,因此一套测试和部署流程下来,也免不了一些重复性的体力劳动。

除了这一段提到的镣铐问题和“创造性体力劳动的枯燥”之外,R&D岗的另一个问题就是你更难有时间去写paper了,一方面是排期原因(虽然你有几个月的时间探索策略,但是并不会给你留出写paper的时间),另一方面就是能解决业务重大问题的研究成果很可能是不方便对外公开的(虽然你感觉创新和突破也不算很大,但是竞品却很可能短时间内连这点突破都没做到,这就为业务带来了市场竞争力)。

既然问题需求是提炼于业务线的,显然研究导向算法岗相比业务算法岗来说,更加难以窥见业务的全貌。因此你可能为搜索或广告业务解决了一个重大问题,带来了可观的提升,但是你仍然不知道怎么去搭建一个简单的搜索引擎或广告系统。不过,从这个缺点也可以反向推理出来一个优点,就是你可以同时接触到企业各大业务线中的疑难杂症

因此,在跟风和崇拜研究导向算法岗之前,也不妨问自己两个问题,自己到底是有多大的能力和热忱来研究和解决算法问题呢?有没有到Research岗的程度呢?自己到底更爱业务,还是更爱算法?

Development

听完了小夕讲述Research岗和R&D岗的体验,下面就由@兔子酱 和@小鹿鹿鹿 来为大家讲讲业务算法岗的体验吧。

与前两种岗位相比,业务算法岗风险相对低,产出也比较可预期,除此之外还有一个很重要的优点是可以看到业务全貌。对问题有宏观的认识,对不管是后面做更细节的技术点的深耕,还是往管理方向发展都有很大的帮助。

顾名思义,业务导向算法工程师的首要目标就是解决业务问题,而对于一个商业价值明确的业务来说,大部分的业务部门使用的算法问题都是已经被学术界打磨很久的了,所以一般不需要像Researcher和Research导向算法工程师那样花大力气去做算法上的前瞻研究。这里我想强调一点,虽然我们基本不会花大力气开展算法的前瞻研究,但是业务导向的算法工程师也是离不开创新和智慧的,不是单纯的经验性的体力劳动,而是需要切换视角,更切合实际的从用户出发解决问题。

我们需要从实际产品中发现用户的痛点和难点,提出高性价比的解决方案并快速上线,通过真实的用户反馈来不断的检验算法的效果并调整策略,如此往复迭代。在这个过程中,相比算法的创新性,我们更加注意的是算法的可控性,可维护性和线上性能/推理效率的问题。毕竟复杂算法在标准测试集上几个点的提升,对实际使用产品的用户来说,很有可能根本感受不到效果的优化,却实实在在的感受到了复杂算法带来的长达数百毫秒的延迟。

R&D和Researcher往往从算法模型角度去解决问题。与之不同,业务算法工程师擅长更加开放和巧妙的解决问题,比如通过产品设计呀或者其他的一些方式来弥补和绕开算法瓶颈。这些都离不开对产品和业务的熟悉、对用户体验的理解和各种灵光一现的抖机灵。

在日常的工作节奏上,也是跟小夕所在的团队有明显的不同。由于业务团队需求多而明确,需要快速迭代,因此要求我们业务算法工程师要有比较高的编程效率,能快速解决手中需求,跟上持续高速优化的业务节奏。

总结一下,如果你更爱业务,想解决实际业务中的算法问题,那么就可以考虑跟兔子酱一样从事业务算法;如果更爱算法和研究,想解决挑战性和收益更大的算法问题,那么就可以考虑像小夕一样从事研究型算法工程师甚至风险系数更高的Researcher。希望大家根据自身情况理性选择,避免盲目崇拜和盲目跟风哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480802.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里P8架构师谈:分布式、集群、负载均衡、分布式数据一致性的区别与关联

服务器集群: 1.集群概念 集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统。服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。 2.集群的特点和优势 1)高性能 比如…

论文浅尝 | Know-Evolve: Deep Temporal Reasoning for Dynamic KG

论文链接:https://arxiv.org/abs/1705.05742对于事件数据,需要动态更新的知识图谱来保存知识图谱中关系的时许信息。本文提出了 Know-Evolve 这种基于神经网络的动态知识图谱来学习实体在不同时刻的表示。在动态知识图谱中,事件由四元组表示&…

阿里P8架构师谈:Docker容器的原理、特征、基本架构、与应用场景

什么是容器? 一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软…

中国电网招聘 计算机岗位

1.解密2018国家电网校园招聘,院校、专业、待遇盲区统统扫除! 2018国家电网校园招聘国家电网作为国内乃至世界知名的企业集团,是令无数求职者心仪的工作单位。那么如何才能进国家电网工作呢?国家电网的待遇究竟有传说中的那么好吗&…

系统设计:github上学习如何设计大型系统的项目

https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md 系统设计是一个很宽泛的话题。在互联网上,关于系统设计原则的资源也是多如牛毛。这个仓库就是这些资源的组织收集,它可以帮助你学习如何构建可扩展的系统。

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

谈到并发编程就不得不提到NIO,以及相关的Java NIO框架Netty等,并且在很多面试中也经常提到NIO和AIO、同步和异步、阻塞和非阻塞等的区别。我先简短介绍下几个NIO相关的概念,然后再谈NIO重点掌握内容,以及Java NIO框架选型。 高并…

论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)

本文转载自公众号:徐阿衡。论文:A simple neural network module for relational reasoning(2017)github代码: https://github.com/siddk/relation-network这篇回顾下 DeepMind 2017 年发表的关系推理方面的工作,Relational Networks(RNs)。关…

拒绝无脑试错:写给萌新的“科学炼丹”入门手册

近期在订阅号后台和文章评论区review了一下大家的问题,发现很多小伙伴现在已经把机器学习、深度学习的理论基础打好了,但是真正要解决一个现实中的算法问题的时候经常两手抓瞎,一顿毫无目的乱试,甚至认为模型表现不好一定是调参不…

箱线图和散点图叠加图形的绘制——R language

前几日偶然从科学网上看到了一副特别漂亮的统计图形,如下图(摘自博文:http://blog.sciencenet.cn/blog-397960-456174.html)所示:感觉美翻了都,刚好在学习R,又遇到课题组有一些数据要处理,就花了大约一天的…

企业战略咨询方法:学习SWOT分析

文章目录概述分析目标分析内容分析步骤几个例子1. Mbalib网站的SWOT2. 复杂的、全面的SWOT分析3. 一个SWOT矩阵4. 另一个SWOT矩阵5. POWER SWOT分析法概述 SWOT分析是企业战略咨询常用的方法。然而,仔细搜索比对网上资料和各类管理咨询书籍,分析的目标、…

肖仰华 | 知识图谱与认知智能

本文转载自公众号:知识工场。肖仰华教授1万5千字雄文带您深度剖析知识图谱与认知智能,对知识图谱技术与落地应用中的一系列关键问题做了系统梳理与解答。肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识…

Spring Cloud的核心成员、以及架构实现详细介绍

微服务架构系列 高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别 阿里P8架构师谈:微服务技术架构、监控、Docker、服务治理等体系 阿里P8架构师谈:Dubb…

调参侠的自我修养——深度学习调参秘籍

这是一篇写给萌新的“科学炼丹”手册 前言 近期在订阅号后台和文章评论区review了一下大家的问题,发现很多小伙伴现在已经把机器学习、深度学习的理论基础打好了,但是真正要解决一个现实中的算法问题的时候经常两手抓瞎,一顿毫无目的乱试&am…

NLP通用模型decaNLP诞生,一个模型搞定十大自然语言常见任务

然而近日,Salesforce发布了一项新的研究成果:decaNLP——一个可以同时处理机器翻译、问答、摘要、文本分类、情感分析等十项自然语言任务的通用模型。Salesforce的首席科学家RichardSocher表示:我们的decaNLP就好比NLP领域的瑞士军刀&#xf…

咨询报告生成:使用python生成pptx格式的报告

已经有人做了,思路和自己想做的一个模式差不多,见模式一: 先做好ppt模板用python计算数据,生成图形用python调用模板,将图形插入pptx页面中,生成分析报告 模式二与模式一的差别在第三步:使用R…

产品技术人必备干货:产品开发流程(完整版)

产品技术开发流程 “ 产品开发流程涉及的人员从产品经理到设计师、前端、后端等等一系列人员,这篇文章主要关于产品开发的完整流程,希望对产品技术人员有一定的参考价值。 一:产品概念设计:MRD 产品开发流程步骤第一步&#xf…

论文浅尝 | 用异源监督进行关系抽取:一种表示学习方法

Citation: Liu, L., Ren, X., Zhu, Q., Zhi, S., Gui, H., Ji, H., & Han, J.(2017). Heterogeneous Supervision for Relation Extraction: A RepresentationLearning Approach. Retrieved from http://arxiv.org/abs/1707.00166动机现有的关系抽取方法严重依赖于人工标注…

SQuAD文本理解挑战赛十大模型解读

教机器学会阅读是近期自然语言处理领域的研究热点之一,也是人工智能在处理和理解人类语言进程中的一个长期目标。得益于深度学习技术和大规模标注数据集的发展,用端到端的神经网络来解决阅读理解任务取得了长足的进步。 转载:https://blog.cs…

万字长文,知识图谱构建技术综述

文章来源:丁香大数据 前言 知识图谱,即一种特殊的语义网络,它利用实体、关系、属性这些基本单位,以符号的形式描述了物理世界中不同的概念和概念之间的相互关系。为什么说知识图谱对于信息检索、推荐系统、问答系统中至关重要,我…

查理·芒格:分享12个顶级思维模型

网络资料整理,另见:https://blog.csdn.net/UFv59to8/article/details/79695476