一方面我是今年的应届毕业生,也面了几家公司;另一方面我在拿到return offer之后,也部分地参与了我实习所在公司今年的秋招;所以大概可以提供一个兼顾双方的视角。提前声明,我的描述只适用于部分985中上等高校学生和部分一线AI公司算法岗位招聘现状,如有不妥之处请大家指正。 概括而言,两种略显矛盾的供需不平衡同时存在,而且都很严重。一方面,有海量的同学跟随这股AI大潮转投算法岗,收到的简历量几乎是headcount的数十倍。另一方面,即使不断被HR小姐姐们要求降低录取bar,本着宁缺毋滥的原则,计划的headcount依旧用不掉。 于是展示在大家面前的现象就很有趣。学生群体里,大概都是如下的情绪:「kaggle类比赛打了一堆,连面试机会都拿不到」,「实验室里做的东西,怎么面试官都看不上」,「算法题也做不出来,数学题也做不出来」。 而researcher这边,完全是另一种反馈:「项目都是拿人家code来跑的,别说魔改了,code都没读明白,一问就露馅」,「没paper没项目就只能问你算法和数学了,再答不上来那培养成本也太高了」,「有不少也就刚够intern的bar,这full-time怎么再往下调bar啊」。
我认为这种现状是和AI领域的发展状况有关系的。现阶段的AI,尤其是Deep Learning,某种程度上是一个易上手难精通的东西。网络上有丰富的电子书、公开课、blog、code等资源可以帮助一个人入门DL,但看过一篇blog->看过原paper->跑过原code->通读过原code->从零复现过原paper,仅仅到这里,这个人和一开始就已经完全是两个水平了。而大多数人还没到这里就已经被淘汰掉了。同事面试时经常会遇到做keypoint但搞不清OpenPose细节,做detection连NMS都写不出来的学生,这样的学生也别怪竞争激烈,确实是没法要。 然而即便是做到这里都不一定意味着这个人能满足一线公司的需求,可能也就刚刚达到一线公司愿意给你个internship开始培养你的程度。一线公司需要的是能快速跟进业界新方法,并能根据产品线作出针对性改进的人。想达到这个能力,可能要阅读>50篇paper打底,且要么在实验室里扎扎实实地跑过一两年的实验,要么在公司里扎扎实实地锻炼半年以上;单凭做几场比赛拿个Top30,跑几个demo,是绝对达不到一线公司的需求的。 而且国内的高校除了几个实验室之外,大多数组里做的东西都很水,在一线公司researcher眼里就是搬不上台面。一方面,很多经费不充裕的实验室一个人只有一块GPU可用,甚至要几个人分时段用一块GPU,而多数一线公司research团队早就可以给intern配备4卡以上的计算资源了(比如我就经常独占几十块卡跑实验,我还不是用得最多的intern)。另一方面,即使是985中上等高校的很多实验室,无论是教师水平还是学长水平都too simple,sometimes naive,学生经常得不到准确和及时的指导。几个月下来,对自己做的项目的理解依旧令人捉急,这样积攒来的稚嫩经验显然是很难满足业界需求的。至于那些有知名度的实验室出来的学生,一线公司都是常年盯着,定向抢人,根本不愁出路。 因为DL的理论跟不上实践,很多东西其实是没有标准答案的,一线公司的research团队都积累了大量的经验性结论(包含但不仅限于调参);倘若学生没有一定量的实践经验,是很难招架得住面试官的几轮追问的,而这个经验限于高校教育水平和硬件条件,不是那么容易积攒的。但另一方面,倘若在面试过程中学生体现出了他是科学地设计了他的项目,从motivation到experiments都很有条理,有一定的思考深度和实现难度,能合理地评价实验中的pros&cons,是一定能得到面试官的青睐的。
我也思考过简历上的哪些东西可以切实地打动面试官。能做到以下至少一条的基本不用担心offer的问题;都做不到的并不意味着拿不到offer,但可能就是borderline的评价,淹没在茫茫人海中,要在各家公司的waiting list里徘徊一阵。 - 在某个子领域手握有含金量的顶会paper(最好是一作),或在比赛中做到接近state-of-the-arts水平;这类人总能扫荡special offer。我这里要表明一点,Kaggle和天池一类比赛除非拿到Top5,否则很难吸引一线大厂关注,因为这种比赛平时就很难吸引到该领域最强的那批人参加,大佬们随便拿个baseline都能Top10起步。但如果是顶会workshop这种级别的challenge(比如COCO),Top5乃至Top10的含金量都会高很多。
- 专攻某个子领域半年以上,且与面试的组的方向比较契合,了解该领域的最新进展,能复现常见方法并理解细节,对该领域的常见套路有自己的见解,能对该领域的新方法做出一定程度的评价,如果有paper不能是太烂的会议期刊。方向契合非常重要,一个做Detection的组多半是不会招做压缩感知的人的;目前一线公司多数产品线也不太需要做semi-supervised的人,因为一线公司主流业务的数据量都很大,远比实验室要大。
- ACM银牌中上游起步算法水平的本科生,同水平数学类竞赛奖项也有说服力。统计结果表明,同样是没什么有说服力的项目经历的人,培养一个数学水平高或算法能力强的人要容易很多。如果是研究生,那还是需要有一些靠谱的项目经历才行。
你会发现,能做到这些的人都已经是学生们口中的大佬了,数量真的不多,各家公司都在抢,甚至一家公司里不同组都会抢,根本填不满headcount;而且这批人基本在提前批就被一线公司捞干净了。 而更多其他的人,都处在borderline和weakly reject的水平;这也没办法,公司确实需要高于这个水平线的人。一个简单的例子,我所在的组里,如果是一个比较成熟的领域,经常是周一有个需求,周二拿出个方案,周四就要给出一个初版结果,根本不会有实验室里花半个月吭哧吭哧调模型的时间;没有上述水平垫底,怎么做得到呢? 而上述标准各自往下调,基本就是招intern的bar了;能做intern的时间越久,这个bar就越低;基本上每多3~6个月的实习期,bar就可以多往下调一档;当然也是有个底线。
关于顶会paper的事情额外多说一点。这些年顶会投递量大幅增长,但accept比例基本保持不变,再加上paper过多导致reviewer数量不足、质量也良莠不齐,这些因素叠加在一起导致有顶会paper不再是稳定的offer收割机。 面试就像现场rebuttal,现在面试中已经出现了不少虽然有顶会paper,但要么motivation很模糊,要么idea经不起推敲,要么experiments不完善甚至不科学,要么没有排除很多因素的影响,要么对比数据有猫腻,根本经不起追问。所以我上面强调有含金量,不能太水,更重要的是,要有自己的思考,而不是别人喂了你一个idea挂了个名就完事了。我被面试过很多次,也面试过很多人,相信我,一篇paper、一个项目,里面有多少干货,自己的实际贡献有多大,在面试时很容易就能试探出来。 而且不要坐井观天。有些人在很多国内高校实验室里做出来的东西,中了个CCF B/C类会议,或者侥幸中了个A类,觉得很满足;可是由于环境水平限制,没有对比,不知道自己做得其实有很多不足甚至硬伤,结果拿出去面试时被秒杀,然后在网络上在生活中宣扬面试问得太深太难,这种现象我也是见过几次了。而实际上,哪怕你做过的东西真的有很多不足(这很正常,谁还没个起步阶段),但倘若在面试时能表现出对自己做过的东西有清醒的认识,有正确的复盘,面试官是不会轻易否定这样的人的。 在一个优秀的环境里时常被大佬们challenge,其实是一种幸福,水平提升会非常快。积攒的干货多了,即使没有顶会paper又怎么样呢。
如果一线AI公司算法岗位暂时够不到,或者还剩一两年的时间打算冲击这样的岗位,该怎么做呢?我想这就像摆在你面前有一个你想够但是够不到的台子,你要做的就是搭一个梯子逐步地(而非一次性地)爬上去。 首先还是夯实基础。现在很多高校计算机系的数学和算法课程水到令人发指,跟着老师上完一学期课拿个75分的水平,跑来搞AI基本是不够用的。书该看就看,题该刷就刷。 挑实验室选导师要慎重。如果在一个实力不错的实验室,那就好好跟着老师干。这里实力不错的定义是实验室每年能稳定输出顶会paper(且不是凭借某个大神学长,而是实验室整体实力使然)。要是做不到,就尽可能出来实习,不要浪费时间精力在没有意义的项目上。要相信导师不放人并不是完全不可克服的阻碍。找不到太好的实习就先找一个次一点的实习,一点点提升。 尽可能专注于一个方向,不要方向ABC各做3个月,多数情况下都不如只做6个月方向A。如果可能,尽可能做基础的方向,做与业界需求贴近的方向。比如如果你做Detection的,那以后无论是Face Detection还是Text Detection你都能比较容易地上手,让你转做Segmentation也不会吃力,让你做Tracking也不会很难。学术界做的很多东西和工业界还是有差异,如果你很早就想好了要进工业界,那还是早做打算。 如果算法不太行,还想靠近AI行业,其实也有不少路可走。工程类岗位每年也有大量需求,DL框架的优化,分布式训练平台的开发,ARM/FPGA/ASIC平台的适配……有很多事情可以做。data management和QA类相关岗位也有不少需求,而且虽然要求不高但愿意干的人少,竞争还小。 无论是做什么方向,包括但不限于AI岗位,解决问题的能力、持续学习的态度、独立思考的意识,永远是最值钱的。具备了这些,没有什么技术类工作是永远够不到的。
update: 加个广告,旷视研究院Detection组常年招收full-time & intern,本组研究范围定义为category level的一切task,涵盖且不限于Detection、Segmentation、Keypoint、Skeleton、Tracking等,包括2D、3D、Video,近两年拿了COCO冠军若干项。有意者可投简历至yugang@megvii.com或wangjianfeng@megvii.com。对其他组、其他方向、其他岗位有兴趣者同样可以发简历过来。 (下午2点20发) |