无人车MLE跳槽经验分享

avatar 771859
yigedataozi
21277
38
个人背景
这次跳槽投了大约10家公司的MLE职位,主要集中在无人车领域和一些楼主自认为有趣的职位。 每天上班刷题看paper复习ML知识,度过了一个紧张的夏天。最终收获了两个offer。楼主比较懒,在收到心仪的offer以后就withdraw了剩下的面试。楼主有3年MLE工作经验,inspired by地里其他大佬的经验分享:instant.1point3acres.cninstant.1point3acres.cn,想分享一些mid-level的无人车和MLE职位的面试经验。

Timeline
今年4月开始3天打渔4天晒网式的刷题,7月初开始找朋友内推,自己投简历,一边刷题一边电面。8月把onsite集中放在两周以内。最近签了offer。

面试流程和结果
楼主投了无人车不同的和ML相关的职位。Perception, Prediction, Planning, Simulation都有。主要也想通过和不同的组接触来了解一些行业动态。

楼主面完Apple, Cruise, Waymo,和小鹏的onsite以后收到了Cruise和小鹏的offer。楼主比较懒,拿到offer以后就把Snap,Nuro和Nvidia的onsite给取消了。最后去了Cruise,主要和HM聊得比较开心,做的东西挺有趣。其实还有其他很好的无人车公司还没有机会投,比如Zoox, Argo AI, Pony AI等。

Aurora: phone reject
TikTok: 简历挂
Cruise: phone -> onsite -> offer
Apple: phone -> onsite -> reject
Xpeng: phone -> onsite -> offer
Nvidia: phone -> withdrawal
Waymo: phone -> onsite -> reject
Nuro: phone -> withdrawal
Snap: phone -> withdrawal
Facebook/Google: withdrawal application, 投了1月才联系来不及了

换工作的想法从年初就有了,断断续续刷了几个月一直到7月份投出简历有了电面才开始紧锣密鼓地准备面试。面试机会来自于朋友内推,自己海投,和联系Linkedin上面之前connect过的猎头。无人车公司基本很快就回复了,Snap回复也很快。Facebook和Google过了一个月HR才联系我,所以就没继续了。Google投的是Project Starline,Facebook是AR/VR,Snap是general hiring,面过了可以选不同的做ML的组

MLE 面试,phone一般是ML + coding。60 min的面试前面15-20 min是问简历上的ML 项目,这部分比较简单如实回答就好了,涉及confidential的部分可以给面试官讲,然后跳过,不会问很深。不过楼主也遇到了第一轮电面聊着聊着就聊到最新的paper了,然后就开始畅谈扯淡了,1个小时扯完了居然又安排了一轮coding电面。。。楼主建议聊简历不需要花太多时间,除非面试官很感兴趣一直提问,否则会挤占后面写题的时间。Coding部分主要是LC medium类似的题,也被考过手写linear regression。Onsite一般如下:
Coding 2 轮
ML depth (ML design) 1 - 2轮
ML breadth (Fundamentals, model, techniques) 0 - 1轮
Behavior 0 - 1轮
System Design 0 - 1轮 (只有Snap遇到了,而且除了ML Design还有System design,不过楼主没面onsite)
楼主下面会分别详细讲一下每轮的准备

Coding面试
  1. 这部分是最直接的了,就是刷题,按照section刷,重点刷DFS/BFS和Graph,个人经验无人车公司喜欢考察这部分知识。搜索算法还要掌握Dijkstra和A*。楼主参考了huahua的视频和他的分类。这里推荐下huahua的视频,确实做的很好。
  2. 关于语言的选择,楼主遇到过公司点名要求使用C++,大部分都没有要求。但是个人认为做无人车行业的ML,Python 和 C++是必须的,工作内容也逃不开。


ML coding/modeling面试

  1. 这一部分有可能出现在一轮coding里,也有可能出现在ML fundamental里
  2. 考察内容主要是implement一个基础的ML models,可能会套一个problem solving的马甲,但是和面试官交流结束后基本都是手写model。这里楼主准备的时候用numpy手写(别调包,面试的时候应该不会允许)了kmeans, knn, linear regression, logistic regression, softmax regressions,用pytorch手写了一个简单的MLP和ResNet,这里有几个需要注意的地方:
  3. Coding style可以学习sklearn的model,写一个class,implement fit, predict, loss etc. 这样写有助于break down the problem, 而且也给面试官展示出严谨的coding style。
  4. 写的时候尽量不要用for loop,input 自己assume都是batch input,model里面用numpy实现matrix multiplication。用了for loop面试的时候也会被问到能不能优化。
  5. 写MLP和ResNet主要是熟悉pytorch/numpy的API,楼主有一轮面试的时候面试官直接发来一篇paper的link,要求读其中一个section然后实现这个section里面的一个module。如果平常工作里不会每天写模型的话建议熟悉一下API。


ML depth (ML Design) 面试

无人车的ML主要集中在 Perception和Prediction,Planning有一小部分。最近Simulation也会有所涉及 (具体可以参考GeoSim)。

  1. 这一轮可能会deep dive你的简历,一直问到你回答不出来,也有可能会让你设计一个ML模块。举个例子:要设计一个Prediction system。
  2. 要明确设计的objectives和requirements,比如prediction可以是预测一个pedestrian未来5秒会不会停下,也可能是预测范围内所有agent的轨迹。需不需要预测agent的heading都是可以先提前和面试官沟通的。
  3. 分开讨论每个步骤,这里我喜欢先讨论model input,output,data type,ground truth data collection,metrics,最后再讨论model selection。(几轮面试下来这部分反馈都很好,大家可以酌情参考)

这部分会被问得很细,举个例子楼主说可以用ResNet当feature extractor,面试官会顺便问ResNet有什么优点。
这里放一个楼主参考过的资料:github.com

这部分如果有经验的话其实不用怎么准备,如果没有的话推荐读一些高引用的paper,比如Lidar Perception的point cloud encoder: VoxelNet, PointPillar。Prediction的VectorNet等这里就不展开了,各个领域都有明星paper,具体要准备什么看自己感兴趣的岗位

ML breadth
剩下的就是八股文比武了,比如什么是Batch Norm,什么是regularization, overfit/underfit怎么区分,怎么避免,label imbalance怎么办(可以考虑focal loss),模型如果inference太慢了怎么办。这部分就是要看知识的广度了,如果实在不知道就只能说不知道了(楼主自己也遇到过,有些东西确实见过学过,太久不用也就忘了,诚实的说忘记了就好了)。这里放一个楼主自己看过的链接:
d2l.ai

其他也有很多网课可以学习,这里就不展开了。大家要是有啥具体的问题可以评论,我看看能不能比划比划。

Behavior面试
楼主认为这一轮自己准备的比较水,由于大部分面试onsite前都见过HM,走个流程。HM就选几个很常见的问题问一问,楼主就如实回答了,没怎么准备。可以参考地里准备香蕉厂BQ的帖子。

总结:
  1. 个人认为Coding要求和SDE没有区别,会有medium/hard难度的题,也会有刚上来一头雾水很抽象的题。但是经过clarification和阐述自己的思路,一般都能得到Hint然后解决问题。
  2. 自己用numpy手写常见的model很重要!楼主遇到过手写linear regression,k-means,读paper写module。
  3. 针对不同职位可以适当做一些literature review,有助于ML Design。不需要SOTA,重点放在高引用的paper,理解初衷。(当然实际工作紧跟潮流还是很重要的,无人车行业日新月异,但是针对楼主这个级别的偏重engineering的职位的面试,个人认为这个不是必需的)
  4. ML breadth可以找小伙伴一起mock一下,重点在于清楚流利的表达。


这是楼主第一次在地里发帖。这次面试在地里看了不少经验分享的帖子和面经,收获很大。这次面试完了以后也想着回馈地里。大家有什么问题可以评论,希望大家都能面试多多,offer多多。求加米。
  • 341
38条回复