简介
人工智能在当前是一个有趣的行业,机器学习从业者现在在世人的眼中则是“酷孩子”。
但是,即使在这些“酷孩子”中,机器学习从业者群体之间也存在着明显的区别。
更具体地说,这种区别是研究解决方案的人和设计解决方案的人之间的区别。
话虽如此,但是这一区别并没有想象地那么明显。
本文旨在揭示机器学习研究员和机器学习工程师之间的一些关键区别。
突出这两种角色之间的差异,可以让你获得更好的学术和职业选择所需要的信息。
在继续进行之前,你需要注意的是,在本文中,我将使用“机器学习工程师和研究员”这个名称作为以下角色的总称:
计算机视觉工程师/研究员
自然语言处理工程师/研究员
数据科学家
机器学习工程师角色的主要工作包括在已实现的软件/硬件解决方案中实现机器学习算法和模型。
机器学习研究者角色的主要职责是促进机器学习的特定或尖端学科领域的发展。
机器学习研究员通常拥有博士学位。他们通常是具有很强的学术和研究背景的人。他们还拥有计算机科学相关学科的高级学位。
而大多数的机器学习工程师拥有硕士学位,他们中只有少数拥有博士学位。
为了了解机器学习工程师和研究员的学术背景,我在LinkedIn网站(https://www.linkedin.com/)上作了一番研究,我浏览了很多职位名称为“机器学习研究员”、“机器学习科学家”或“机器学习工程师”的人的个人资料。
机器学习工程师的可交付成果通常是一个机器学习模型的工程化解决方案,该模型能够以自动化、高效或创造性的方式执行一组任务。
对于一个机器学习工程师来说,最终产品或可交付成果可以是一个软件,其中的功能由机器学习方法提供支持。
而机器学习研究者的可交付成果通常是一篇写得很好的研究论文,其中包括为在特定机器学习相关任务中,为实现性能/准确性的特定提升或改进而进行的实验和调查研究的细节。
机器学习研究者的最终产品是对新发现、改进或分析的书面的研究成果,然后提交并被国际会议和科学期刊接受。
薪资可能是很多读者最感兴趣的关键区别。
机器学习从业人员的需求量很大,而为与机器学习相关的角色提供的薪水也反映了这一点。
例如,《纽约时报》在这篇文章中提到,顶尖人工智能研究人员的薪资已经超过了100万美元。
显然,在这个高要求的行业中,前0.01%的从业者获得了极高的薪水。
下面让我给出一些适用于大多数机器学习从业者的统计数据。
在英国,自2020年4月3日往前六个月内,机器学习研究员的平均工资为57,500英镑。
而与此同时,机器学习工程师的平均工资为68,750英镑。
因此在英国,两个机器学习的角色之间有明显的10,000英镑的薪水差别。
根据LinkedIn上110个来自美国的机器学习研究员的薪资数据,美国的机器学习研究员的平均基本工资为143,000美元。
而对于美国的机器学习工程师来说,这个数字降到了125,000美元。这其中包含了900多名机器学习工程师的薪资数据。
就我个人而言,根据我对人工智能行业中与我一起研究和合作过的人的观察来看,金钱动机并不是首要的。
接触和了解知识的机会似乎对我们这个团体更有吸引力,包括对我自己。
简单地说,年轻的机器学习工程师可能更关心吹牛的权利和影响力,而不是金钱上的激励。
不管薪水是否足够吸引人,谁不想成为一个FAANG公司的机器学习工程师或研究员呢?
当然,确实应该考虑到统计数据并不能准确地反映该行业的真实平均薪资,它们应该被用作指导,而非当作绝对事实。
机器学习工程师需要看到全局。而机器学习研究者需要更加专注的视角。
软件工程是一门学科,需要了解与产品,过程或管道(流程)相关的组件。这一点至关重要,因为工程师要负责集成多个组件。
以下是一个典型的机器学习工程师在项目期间要解决的一些问题:
了解机器学习模型使用的数据格式
了解从数据源接收到的数据格式
实现与数据池和数据库的连接,以便存储和访问数据。
了解最终产品将要使用的环境,因为这可以决定分配的资源级别,以确保高效的运行时间和最佳的运行能力。
另一方面,机器学习研究员的工作范围往往非常明确。机器学习研究员需要非常专注。
机器学习研究员无需担心机器学习模型或算法在各种环境中的性能如何。机器学习研究员的工作往往非常注重问题和特定领域。通常情况下,他们的任务是负责寻找解决问题的新方法或提高以前设计的解决方案的性能和准确性。
对于机器学习研究员的工作角色的描述和需求是精确的,并且集中在机器学习的特定领域。
机器学习研究员的典型职位要求包括:
拥有机器学习平台和库的知识,如TensorFlow、PyTorch、Keras等。
能够进行文献审查,并以精心编写的研究格式呈现报告和实验结果,以便提交给会议或科学期刊。
拥有机器学习特定领域的可靠知识,例如概率模型,高斯过程,强化学习等。
对机器学习的基本主题有深刻的理解,包括理论知识。
针对利基问题的最新技术的扩展。
机器学习工程师的典型职位要求包括:
了解云计算服务,如google Cloud Platform (GCP)和Amazon Web Service (AWS) 。
熟练使用JAVA、Python、JavaScript等语言进行编程。
具有将机器学习模型部署到生产环境中的经验。
具有在移动电话等边缘设备上部署机器学习模型的经验。
能够实施、评估和测试针对常见问题(如目标检测、语义分割和图像分类)的最新解决方案。
能够从已发表的研究论文中提取关键细节和信息,并将结果传达给项目相关人员。
具有执行数据挖掘脚本的经验。
7. 重叠部分
机器学习研究员可以进行工程设计,机器学习工程师也可以进行研究。
成为一名机器学习从业者还意味着精通现代的软件库和硬件。机器学习(如果涉及多个学科)的职位名称本身通常不能完整反映实际地职责分工。
我的研究表明,机器学习研究员在实际研究和工程设计之间的比重分配遵循70/30的比例。机器学习工程师则刚好相反,通常他们在工程和研究之间的比重分配为70/30。
同样,我还可以证明,对于一个机器学习工程师来说,研究和工程设计是分不开的,因为在我目前作为计算机视觉工程师的角色中,我花了大量时间将机器学习模型工程化为解决方案,比如网站或移动应用程序。同时,我也花了少部分的精力在PaperWithCode 或 ReseachGate上搜索寻找针对我正在处理的特定问题的已发表的研究论文。
结论
我必须承认,还有几个关键差别并没有在本文中提及,但是在谷歌中做一个快速搜索,你就能够得到相应的结果。
无论你选择走哪一条职业道路,都必须承认这两个角色都需要花费大量的时间和精力才能获得,记住一点努力总是有回报的。
为了进一步了解作为一名机器学习工程师的感受,我在下面链接了两篇文章,讲述了我作为一名初创企业的计算机视觉工程师的第一天和第一个月的经历。
我作为计算机视觉工程师的第一天的经历(https://towardsdatascience.com/my-first-day-as-a-computer-vision-engineer-8b59750c79a0)
我作为计算机视觉工程师的第一个月的经历(https://towardsdatascience.com/my-first-month-as-a-computer-vision-engineer-5813574d394a)