当前位置: 首页 > 科技观察

非科学AI小哥走红:他没有ML学位,却拿到了DeepMind的offer

时间:2023-03-21 19:46:54 科技观察

这两天,D??eepMind研究工程师AleksaGordi?的亲身经历走红了在推特上。不到半天的时间,点赞数就达到了431。关键是这个小家伙没有机器学习(ML)的背景,但是接触ML仅仅3年,就成功加入了DeepMind。他强调自己不是一个有“计算天赋”的人。这完全取决于他对机器学习的热情。在不耽误工作的情况下,他疯狂吞噬ML知识,同时保持自我消化和知识输出,最终成功落地。.他在评论中表示,这篇博文对很多DeepMinders找工作很有帮助。来看看这位非科普AI小哥所做的努力和准备吧。本科阶段的非专业学生,弟弟是电子工程专业的,计算机专业的课程重叠不多。2016年底,在他本科即将毕业的时候,他意识到自己想转行到软件行业。与硬件行业相比,他认为软件行业更开放,有各种黑客马拉松和数据马拉松,薪资待遇更丰厚。去做就对了。次年年初,弟弟开始自学Android,并在暑假期间在Telocate(一家德国小创业公司)实习,担任Android开发人员。这时候,弟弟和他在MSFT、Facebook、JaneStreet等公司实习过的软件工程师朋友聊天。对于他的一些朋友来说,算法和结构化数据已经是第二天性;对于小弟来说,大型科技公司不太关心他在EE方面的技能和知识积累,算法和数据结构才是硬通货。经过一番交流,小哥才意识到自己和一个“软件工程师”的差距。对于一个23岁的人来说,一个没有很多基础工程知识的16岁的人遥遥领先。△小哥幽默地跟朋友说自己落后了(其实他当时很绝望),小哥鼓励他慢慢接受这种不好的感觉,促使小哥下定决心赶快赶上。实习结束后,虽然他毕业后申请了电气工程硕士学位,但他仍然向往大型科技公司的工作机会。为此,小哥制定了软件工程的学习计划,本科的算法课也旁听了。小哥在应聘大型科技公司的同时,开始了疯狂的学习之旅。过程并不顺利。在经历了2017年底的Facebook面试和2018年3月、5月的两次微软面试后,小弟都没有被录用。幸运的是,在2018年2月,弟弟通过了为期3天的入学考试,成功报考了微软ML暑期培训班。△微软ML暑期培训班录取通知在微软ML培训班,他组的期末项目被评为最佳内部项目。8月初,弟弟去巴西实习。三天后,小弟弟接到了一个意想不到的电话。微软告诉他,他被举办暑期培训班的“HoloLensTeam”团队录用了!哥哥毫不犹豫地接受了offer,离开巴西,并于9月顺利加入微软成为一名软件工程师。至此,小哥开始了他的SE和ML生涯。不得不提的是,自从参加暑期培训班后,“去DeepMind”的挑战就在我的潜意识里生根发芽。加入DeepMind在当时对他来说就像是天方夜谭:他在培训班接触到的DeepMinders都毕业于牛津和剑桥。但转念一想,对于以前的他来说,微软也是遥不可及的,何不挑战一下DeepMind呢?2018年到2019年在微软工作期间,我努力学习SE,阅读了很多编程书籍,比如ScottMeyers写的C++;在业余时间,我学习了ML。2018年年底之前,弟弟在Coursera上学完了吴恩达的所有课程,参加了内部的MLhackathon,ML培训班,开始阅读相关研究论文。随着学习过程的深入,小弟在ML领域也越来越熟练了。2019年初,小弟第一次分享了一篇关于ML的博文。2019年底,弟弟转任机器学习工程师,被派去参加ICCV2019大会。△ICCV2019大会上,小弟在微软展台演示了HoloLens2机器学习课程。从ICCV2019回来,小弟被要求用PyTorch从头实现一篇论文。那时,他对PyTorch一无所知。幸运的是,通过完成这个任务,小弟弟再次飞速成长。对于其他方面的学习过程,我哥制定了一个学习框架。粗略规划后,一个“一年内学习AI子领域”+“每3个月学习一个子领域”的计划诞生了。万事开头难。学习的第一个AI子领域,NeuralStyleTransfer(NST),花了3个多月的时间。就这样,小哥优化了学习计划,即在每3个月学习一个子领域的学习周期框架下,穿插微学习周期。微学习循环有两种类型:1.输入方式:大量摄入信息。该模型的目标是通过博客、视频等方式深入了解子领域的结构,或者通过研究论文和书籍深入了解某个主题。2.输出方式:分享所学。制作YouTube视频、创建GitHub项目或撰写博客文章、更新LinkedIn、将相关内容分享到Twitter和Discord。当然,主业也不能落下。在如何兼顾工作和学习的问题上,小弟弟表现出了强大的意志力。他一直保持着近乎“疯狂”的节奏:起床后,写2个小时代码,然后散步;步行归来,在微软工作;下班后小睡30分钟;睡前再工作2-3小时。小哥把这部分经验总结为3点,就是毅力要强,心态要端正,休息是金。授人以渔,小哥详细介绍了自己学习NST、GAN等ML细节知识的方法论。不断学习阅读书籍和前沿论文是获取ML相关知识最直接的方式。在学习神经风格迁移(NST)、DeepDream、生成对抗网络(GAN)、NLP&Transformers、强化学习(RL)等知识的过程中,阅读了大量前沿和小众的论文,其中Transformers是相关的论文给小弟用PyTorch做一个流行的GAT提供了一些灵感。△GraphML对初学者友好,这个GAT很受欢迎,已经成为剑桥大学GNN讲座的推荐内容。除了沿着学习的“主线”前进,早在2020年初,弟弟就发现自己在数学方面有所欠缺。因此,他抽空阅读《Learning How to Learn》《Python Data Science Handbook》《Deep Learning》等,以加快学习进度。同时,学习和巩固相关知识也是非常必要的。补充CNN及其优化知识,实现vanillaGAN、cGAN(conditionalGAN)和DCGAN模型……查旧加新,不断巩固小弟的知识库。这是他学习GAN后训练的DCGAN模型的输出图:△从男人到女人(角度和肤色也会发生变化)在这个过程中,根据知识点的难易程度和实际情况,弟弟也将学习计划进行了改进和完善。比如调整学习时间。因为太有趣了,弟弟在NST领域学习的时间比原计划的3个月还要长。或者做一个总结。在学习GAN的同时,他开始在每个学习框架的最后写一篇博文来总结自己所学的内容。或者选择先熟悉后陌生的学习过程。RL是DeepMind取得突破性发展的领域。不仅与其他ML子领域不同,还有无数的论文和项目需要了解,比如AlphaGo、DQN、OpenAImanipulator等。面对这个问题,我从我最感兴趣的部分入手——计算机视觉(CV)-然后转向不太熟悉的主题。在做这件事的时候,我并没有闭门造车,而是定期与GraphML领域最优秀的研究人员之一、DeepMind研究员PetarVeli?kovi?聊天,或者与博文的读者交流,受益匪浅。消化后,即将离任的小哥提到,他在微软300多名同事面前演讲,是一次跳出舒适圈的手术。△当着300+微软同事的面,还是有很多尝试跳出舒适圈的。在保持知识输入之后,他也在消化知识并输出。他开设了自己的YouTube频道,制作了NST、GNN等系列视频,与网友分享自己的ML学习心路历程,在帮助自己深入思考的同时帮助他人。看这张图,是用我哥写的代码合成的NST图,你可以用他的GitHub项目创建。关于BERT和GPT系列模型的知识也在小弟的学习范围之内,Transformer可以帮助理解。他从头开始阅读NLP&Transformers相关论文。因为他会说英语和德语,所以他创建了一个英德机器翻译系统。小哥主要用OneNote来记录学习历程。△摘自哥哥的OneNote工作与学习两行进阶。在微软这边,我哥从事着各种SE和ML项目,比如为HoloLens2上的眼球追踪子系统开发眼镜检测算法,使用视频编码为每个VR/MR设备添加注视点渲染功能等。DeepMind给他开了门。2021年4月,通过Petar的介绍认识了猎头。在浏览了我的YouTube视频、GitHub代码库和LinkedIn后,我被猎头推荐并成功收到了DeepMind的面试通知。写到这里,哥哥强调了人际关系对于找工作的重要性,要和志同道合的人建立高质量的人际关系。△哥投的是DeepMind的简历,但是他在自己的博文中对这份简历提出了优化建议。DeepMind有两个团队:1.核心研发团队。更喜欢纯粹的研究,项目例子有AlphaFold、AlphaGo等。在这个团队中,研究工程师从事的其他项目可能涉及与研究科学家合作以实现某些研究想法。2.申请团队。完成的一些项目包括数据中心节能项目、改进谷歌应用商店的推荐系统、WaveNet、Android节能。我应聘的职位是研究工程师。能够加入DeepMind,意味着这个人必须有扎实优秀的相关知识储备。因为我没有发表任何论文,如果没有之前的项目和工作经验,小弟这次可能没有机会面试DeepMind。他告诉大家,再优秀的人也有可能被科技巨头拒绝,所以不要给自己太大的压力。小哥分享了自己准备的一些面试技巧。1.仔细研究每一位面试官。了解他们的专业背景,如果可能的话,看看他们的论文(至少是被引用最多的论文),这样你就可以提出相关问题。2.透彻理解简历中提到的每一项。以便您可以与面试官深入讨论。3.模拟面试。围绕着DeepMind的调性,我也认真研究了AGI,阅读了相关的前沿论文。面试DeepMind研究工程师一职,一共有初次沟通、面试、测试、编程考核、领导面试等步骤。提早准备好这些建议和计划,因为小哥还没来得及抱完佛脚,面试的日子就到了。第六轮,小哥不幸被淘汰。好在他技术过硬,被安排参加了孵化/应用部的面试。又经过一番充分的准备,offer来了。令人欣慰的是,后来的面试让小哥意识到孵化组的工作更适合自己。在7月30日的推特评论区,小哥对整篇分享博文进行了简洁的总结,帮助读者快速抓取有效信息点。当然,在原博文中,我也加入了很多他积累的ML相关课程链接,以及当前ML(比如GNN)的最新研究进展。有兴趣的不妨深入阅读原文。