编译 | 王晔
编辑 | 陈彩娴
科研界的学历内卷早已不是新鲜话题,博士后文凭更被认为是进入高校任职不可或缺的条件之一。以至于青年学生有这样一种感觉:高校尚且如此,进大厂做研究也是博士以上学历最佳吧?
不过,近日有一位正在亚马逊担任应用科学家的华人研究者发表了一篇文章,亲述了他如何在本科毕业后仅拿着学士学位进入大厂做研究的经历。
一句话总结:很难,但也不是没有希望!
这位华人的名字叫 David Fan,2019年本科毕业于普林斯顿大学计算机系,辅修统计学与机器学习,本科期间曾受邓嘉指导,在ICCV上发表过计算机视觉相关的论文。此外,他曾在罗格斯大学物理系、罗格斯新泽西医学院、哈佛医学院与普林斯顿大学视觉与学习实验室等机构做过研究。
图注:David Fan(图源:个人主页)
据其主页显示,他在2018年8月加入亚马逊,先是在亚马逊网页服务(Amazon Web Service, AWS)担任软件工程师实习生,2019年8月转正,然后在2020年7月正式入职亚马逊担任研究工程师、2021年5月转为应用科学家。
他是如何做到的呢?AI科技评论对其自述做了不改原意的整理与编译:
我目前是一名应用科学家,在亚马逊担任全职的机器学习(ML)研究员,而且我并没有博士学位。在这里,我参与了研究创新难题,与聪明又上进的同事一起工作,在做我喜欢做的事情的同时,还能获得高额的行业薪酬。
了解到还有很多人对机器学习感兴趣,但网上关于如何从软件工程过渡到机器学习的指导却很少。所以,我发表了这篇文章,分享我从大学进入软件工程领域,再到后来成为机器学习研究员的历程,希望能够有借鉴指导意义。
虽然这篇文章只是针对我个人的经验总结,但我相信有一些要点是适用于每个人的。
1
大学四年(2015-2019)
我的大学之旅不是一条一成不变的直线,导致我对机器学习的研究起步较晚。
刚进入普林斯顿大学那会儿,我对计算生物学研究有着浓厚的兴趣,一直坚持研究该方向,直到大三。那时候,我突然意识到自己过于专注在生物领域了,我想发展能解决更多领域问题的技能。
于是,我开始对机器学习感兴趣,特别是具有现实应用意义的计算机视觉。
然而,那时我也只上过机器学习课程,缺乏实践经验。我的三段实习经历(罗格斯大学物理系、罗格斯新泽西医学院、哈佛医学院)也都是有关生物信息学和软件工程的,第一次独立提出研究的项目也是关于生物信息学的。
当时普林斯顿大学只有少数老师从事计算机视觉和深度学习方面的研究,他们的实验室也没有更多接纳本科生的空位了。
幸运的是,大四前的那个夏天(2018年),我与一位新聘用的助理教授(邓嘉)取得了联系,并成为了第一批加入他的实验室的学生之一。
2018年的夏天,我查阅论文、参加Kaggle比赛(座头鲸识别比赛)等自学深度学习,还有阅读文献、以准备毕业论文的构思。
在我第一次跟导师见面时,我就告诉他我想研究一个有望发表论文的项目,因为我知道无论是申请读研究生还是参加工业界的机器学习职位招聘,我都需要有论文发表成果。所以他就安排我与一名高年级的博士生一起做了一个3D视觉研究项目。
在课程都是满的情况下,我坚持平均每周拿出25个小时用来研究。虽然我对这个领域几乎完全陌生,但通过努力我很快就跟上了进度,这些工作也为我的毕业论文做出了重要贡献。
毕业周前夕,我们向 NeurIPS 提交了一篇论文,但遗憾的是,这篇论文被拒了。但那年夏天我们又进行了更深入的研究,这篇论文后来也被 CVPR 接收了。
2
进入亚马逊
毕业论文的研究经历重燃了我对研究的热情,我决定把机器学习研究作为我的事业。
当时我已经收到了亚马逊软件工程方向的应届毕业生offer。然而,我没有任何把握可以得到研究机器学习的职位。那时,我的论文尚未被CVPR 2020接收,所以我当时唯一发表过的论文是生物学和物理学方面的研究。我没有具体的成果可以证明我在ML研究方面做出过有意义的贡献。
于是,我决定先尝试加入机器学习基础设施团队,希望先在该领域获得一些工作经验,为以后的职业生涯打基础。
我认为,与大多数缺乏研究经验的工程师相比,我对机器学习软件生态系统的了解是我的优势;而与缺乏产出经验的科学家相比,拥有端到端交付的能力又能使我脱颖而出。
尽管亚马逊应届毕业生通常都是服从团队的职位安排,但我还是给招聘经理发了邮件,想通过网络联系进入亚马逊网络服务(AWS)的云机器学习部门。
后来,我加入了SageMaker组,该团队主要负责销售机器学习一体化云平台。在SageMaker,我为降低深度学习模型的实时推理成本和延迟工作了一年。我还为一项关键功能的发布做出了贡献,并撰写了随附的AWS官方博客文章。
相关链接:https://aws.amazon.com/cn/blogs/machine-learning/reduce-ml-inference-costs-on-amazon-sagemaker-for-pytorch-models-using-amazon-elastic-inference/
3
2020年6月:转折点
不久之后,我的毕业论文被CVPR接收并发表了。至此,我在大学毕业大概一年后既有了一篇顶级ML会议的论文,也有了一项新功能发布的成果。
研究按计划推进,此时,我有了足够的筹码与亚马逊的ML研究团队交谈。
有趣的是,在我即将晋升二级软件工程师时,我对原本的计划有了动摇。
由于我当时的团队不属于研究团队,所以如果我想做研究,就必须转到研究团队,但换团队就要重新调整晋升时间。当时我的朋友和同龄人都已经开始升职了,我不想成为最后一个升职的人。
我也开始怀疑,如果没有博士学位,我是否能够在机器学习研究上取得成功?
我与亚马逊的科学家以及一些有研究背景但最终选择从事工程的工程师一起喝咖啡、聊天,期冀从他们那里能够获得一些建议。
一方面,很多人告诉我,我唯一的选择是重回学校,读一个研究型的硕士,最好是博士。
另一方面,也有一小部分人给了我鼓励。他们说我可以进行内部调动,并且他们也知道一些成功调动的例子。
但总的来说,这些谈话加深了我的疑虑,因为如果我失败了,我不仅会丢掉早期的晋升机会,而且还会 “浪费”我生命中的几年时间。
经历自我思考后,我才意识到我的担忧在很大程度上是肤浅和琐碎的。当一个人需要承担更少来自家庭等的个人责任时,其实他更容易在人生早期进行诸如转换职业道路之类的冒险赌注。
我意识到我不会因为没能在研究中取得成功然后转回软件工程而后悔,但如果没有尝试ML研究我会非常后悔,因为我相信自己有能力可以取得成功。我的竞争好胜心又使我无法接受延迟晋升。
但幸运的是,我能够认识到职业发展是一场马拉松比赛,而不是四百米短跑。投资于长期成功而不是短期成功不仅会让我更快乐,而且还能更好地迎接ML变得更加无处不在的未来。
于是我开始在亚马逊内部寻找 ML 研究团队,并与一位刚在Prime Video成立新团队的经理取得了联系,该团队致力于用机器学习理解视频。
由于我没有硕士和博士学位,所以我不能直接面试应用科学家的职位,但我可以面试研究工程师。因此,我做了一个研究工程师的内部面试,包括一轮 ML 算法面试和一轮编码面试。
在这个过程中,我亲历了令人惊讶的学位偏见。虽然我通过了两轮面试,但后来我被告知,包括我的经理在内的一些人都因我没有硕士和博士学位而表示担忧。
尽管如此,我的转组申请最终还是得到了批准,并成为了团队的第一个员工。2021年5月,我开始全身心地投入到成为一名ML研究科学家的目标中。
4
从工程师到科学家
在以研究工程师的身份加入Prime Video后,我的下一步计划是通过内部调动成为一名应用研究科学家。
由于亚马逊的应用科学家大多拥有博士学位,因此我需要证明自己完全有能力独立完成普遍认为博士生或优秀硕士生水平才能完成的研究。然后我再对这些研究项目进行总结,并以晋升文件的方式收集同行的反馈,以便申请调动。
大多数应用科学家都是外部聘用的,很少有工程师能在内部成功转型,特别是学位上还存在偏见,因此,机会对我来说是很难得的。
很长一段时间我都感觉自己身处迷雾之中,因为没有人能指导我完成这个过程。
通过推测成为一名研究科学家的必备要求,并评估我距离这些要求的差距,我制定了一个规划图,争取在日常工作中少做工程项目,多做ML研究。
然而,事实证明,执行这个计划比预期要困难得多。尽管我的经理支持我争取成为一名研究科学家,但公司的业绩要求使我难以追求自己的职业目标。如果我作为一名工程师占用了公司太多的时间来做研究项目,这自然会导致我的工程成果比其他工程师少。从绩效评估的角度来看,这是非常不利的。
找到两者之间的正确平衡是一个微妙的过程,我需要经常与领导讨论要求和目标,并在工作之余投入大量时间从事研究项目。
幸运的是,我在新冠疫情爆发期间完成了这一转变,因为分心的事情和社交活动比平时少得多。如果不工作更长时间,我很可能无法收集到足够的研究数据和同行的反馈意见,更不可能转为应用科学家。
这期间,我参与的一个研究项目是与另一组的一位首席科学家合作,这位科学家能够提供反馈意见,为我的调组申请助力。在这个项目中我做出了新的贡献,帮助开发了一个最先进的用于电影场景分割的自监督模型并完成部署,这也是我的第二篇CVPR 论文,并在全公司进行了主题演讲。
论文链接:https://arxiv.org/pdf/2104.13537.pdf
在这之后,我写了一份转组文件,并通过了一位资深科学家的技术评估。
尽管我有所有的可交付成果来证明我符合应用科学家的要求,但由于要对我的文件进行内部审查,我的转组被推迟了。
直到2021年5月,在我进入机器学习领域3年后、也是我加入Prime Video11个月后,我转为应用科学家的申请终于被批准了!
现在,作为一名应用科学家,我领导着前瞻性的研究,这些研究有可能为Prime Video等产品带来新功能和优化。我用约一半的时间来开发和生产支持新功能的机器学习模型,剩下的时间花在可发表的研究和撰写论文上。
与我当工程师那会儿相比,我现在对自己的工作方向有更多的自主权和所有权,这也给了我更大的成就感。
机器学习研究是我现在梦寐以求的工作,我非常幸运能够通过做我喜欢的事情来获得报酬。
5
实用性的建议
如果你是一名学生并且确定对ML研究感兴趣,那么你目前所能做的最好的事情就是获得已发表论文的研究经验和共同作者身份,甚至是第一作者身份。
你也可以和有兴趣合作的教员交谈,看看是否有项目需要帮助进行实验。有时教师太忙、无法直接回答或指导你,在这种情况下,你可以尝试寻找在项目方面需要帮助并愿意与你合作的研究生。
学习额外的课程是有帮助的,但收益会递减,因为进行研究所需的大多数知识都是高度具体的,最好通过阅读相关论文和通过实践进行动手实验来学习。
如果你已经要毕业并且没有研究经验,那么可以进行一到两年以研究为中心的硕士学习。当你可以在行业工作中获得经验和报酬时,以课堂为重点的硕士课程并不是对时间的有效利用方式。
是否要攻读博士学位是一个复杂的话题,但基本上我不认为博士学位对于行业研究中的职业发展是必要的。只有当你想要有高度专注的时间来解决一个非常具体的问题,并且有兴趣之后成为一名教授时,博士学位才是一个不错的选择。
同样,如果您在行业中并没有研究经验,要么可以选择读硕,继续以研究为重点,要么你也可以像我一样尝试在内部进行转组,先加入一个研究团队,成为一名软件工程师,然后逐渐赢得更多的研究工作机会。
当你的学历不满足岗位要求时,内部调动比外部申请要更容易,因为招聘系统是高度自动化的,并且经过了优化、可以最大限度地减少误报。但第二个选择的缺点是,在公司内部发展时,你需要花时间来建立联系并赢得信任。
对你有利的一点是,工程经验对于可扩展性迭代实验很有价值,并且通常会让你比纯粹的科学家更有优势(尤其是经验方面)。
无论你在哪里,你都需要算力来做ML研究,而ML研究的计算量越来越大。如果你没有机会进入学术界或工业界的计算集群,我会建议你建立自己的PC,并做一些诸如ML 会议主办的竞赛之类的辅助项目,以跟上ML的发展速度,发展综合能力。我认为Kaggle比赛也是一个公平的学习选择,但不是培养综合能力的理想之选,因为这些项目通常与学术文献相关性不大,而是更侧重于现实世界的使用,与NeurIPS等ML会议主办的比赛形成了鲜明对比。
6
总结
回顾我在亚马逊至今的经历,我可以想到以下主要教训:
原文链接:https://medium.com/@davidfan/entering-industry-ml-ai-research-without-a-phd-e56761979c8f