Google/LinkedIn等MLE面试分享

avatar 94720
dennis
43855
42
Inspired by 这个帖子:instant.1point3acres.cn 同感于上面帖子在地里的情况,经验有可复制性,希望对你有点参考价值。格式上,也用上面帖子的逻辑,我觉得挺organized的。分享ML modeling和ML system design的面试经验。

5月到7月,面了一波,拿了L4和L5 MLE offer。分享经验来回馈地里。因为上面的帖子总结了coding + system + behavior的内容了,大佬们总结很全很好了,但我发现分享ML modeling和ML system design的比较少,分享这方面的内容。如果大佬们认为内容有错误,可以assume我是错的:)

我的背景是CS本科,到了美国念了研究生,到现在是5年工作经验。我这次的目标是Applied ML modeling的组,不做ML infra,也不是research scientists。FLAG是最想去的,准备他们是最优先的,而面试他们的次序,也安排在最后。

按照面试时间的timeline
Instacart:phone reject
Coinbase: phone reject
Discord: phone reject
Apple Ads: phone -> onsite -> reject

TikTok: VO1 -> VO2 -> reject
Snapchat: phone reject
Snorkel: phone -> onsite -> reject
DeepMind: phone -> reject
Salesforce: phone -> reject

Airbnb: phone -> onsite -> considering L4 offer
Google (Youtube): phone waived -> onsite -> L4 offer,还在argue L5中
FB: phone -> onsite -> E5 offer
LinkedIn: phone -> onsite -> Senior Offer
Uber: phone -> onsite -> withdrew

换公司的想法是从去年12月就开始的,开始准备起ML modeling和ML system design,刷题没开始。今年3月到6月是集中准备的时间,80%时间花在刷题上。

  • 面试机会:拿到面试机会的公司,几乎都是朋友内推的
  • 刷题:二刷从200多,刷到600多题


MLE面试的内容,phone基本是coding+ML。Onsite有以下部分,每个公司有侧重。
  • Coding:平均2轮
  • ML coding:0到1轮
  • System design:0到1轮
  • ML fundamental (model & techniques):平均1轮。概率和数学,放在ML fundamental里面,解一个概率题
  • ML system design:平均1轮
  • Behavior:1轮

重点讲一下ML modeling和ML system design的准备,我分成了4个部分
  1. ML coding:手写K-Means,手写一下KNN(e.g. 2NN),推一下Logistic regression的loss function(不需要coding)。准备的方法也很暴力,就是背下来。
  2. ML fundamental (model & techniques):复习一下deep learning specialization的课程,面试过程,被面的最多的,是specialization里面improving neural networking的那门课,象dropout和batch normalization。模型的问题,我是选了3个model重点准备的,logistic regression,linear regression,neural network。之所以选这3个,是因为logistic解决classification的问题,linear解决regression的问题,而neural network是进阶版的。另外,重点看了各种metric的用法和计算方法(e.g. Precision/Recall, MSE, NDCG)
  3. ML System design:我是以educative.IO的ML system design课程为template的,重点看了recommendation system的那一章。另外,我看了K姐的课程,地里“Learning”的页面上课程,machine learning mock interview(回放)
  4. 概率和数学:重点看了Data Science Prep的例题(datascienceprep.com

MLE 面试总结一下
  1. 没有用上的:重点准备了Object oriented design,concurrency等,没有被问到过。用Pytorch/Keras写一个2层的neural network model,没有用到
  2. 准备不足的:常见算法的实现(e.g. KNN, Naive bayes)
  3. 效果好的:刷题。MLE对coding的要求很高,和SE没有区别,问到hard的难度,也是正常的。推荐一题多刷。Deep learning specialization, educative.io ML system design课程为template的, K姐的课程对我面试帮助也很大
  4. 效果不好的:Github上的各种资源,没有章法,也不一定是为面试而准备的。Interview.IO,overlap了educative.IO的内容

因为准备面试的时间是有限的,如果下次再准备,我会这样分配时间
  1. ML coding:多花在常见算法的实现(e.g. KNN, Gaussian Naive bayes),和用numpy手写一个end2end过程,从场面数据生成、数据分析、classification/regression model、training、K Fold Cross Validation、serving
  2. ML fundamental (model & techniques):3个model和metric,附了4种基于classification情景选择的metric,在附件里图片
  3. ML System design,重点看这2个部分
  • ML问题:发现Regression的问题占大多数
  • 选择和分析metric,定义目标函数。附了基于Twitter情景,在附件里图片

Team-match和方向
和Google、LinkedIn等聊了10+个team match,从聊天中,也帮助我了解到未来工业界的一些方向。最近的Applied NLP方向,都喜欢用DNN去做entity embedding,象user embedding和product embedding。很多公司也开始研究multi-modal的,我也不是很了解。如果有这个experience,会在以后简历上更大概率显示出relevancy吧。另外,如果有志于往ML domain发展的,C++和python是不错的选择。

地里是个好地方,地里积极回馈对我帮助很大。希望这个帖子可以回馈地里,对大家找MLE起点作用。祝大家面试顺利,多拿offer,以后在公司里和面试中相互帮忙~

请加米,谢谢
  • 787
42条回复