在过去大概四个月,我自己尝试面试了一些公司的MLE/AS role,因为我自己在准备的过程中发现其实能找到的资源非常有限,所以想着在这里分享一下我自己的心得。我大概会分两到三篇写完,这是第二篇。如果你没看过第一篇(主要讲解coding, ML Design),非常建议看完了再来看这篇:https://www.1point3acres.com/bbs/thread-901595-1-1.html。也非常感谢很多小伙伴对我的支持。. ----
说明:
我自己面的都是Sr role,有可能对于entry-level的面试要求会有一些不一样的。
不同公司本身面试也会不一样,请谨慎参考。
在 Google/Meta/Amazon/Microsoft/Apple/Tiktok/Pintest/Airbnb/Netflix公司里面,除了我工作过的公司(~5年ML经验),剩下的公司我都面过,除了一家剩下的都拿到了offer。公司不一样可能title上会有一些小的区别,但基本上都叫做MLE/Applied Scientist/Data scientist (modeling track)。在以下的说明中,我都会统称成MLE。.google и
Traditional ML algorithms. 这个主要分成几个方面:i) GLM like linear regression, logistic regression。GLM其实可以问的非常深如果你碰到一个统计PhD背景的面试官建议不要深聊... ii) random forest; iii) GBM熟透。当然还有很多别的传统算法像gaussian process, SVM, graph, clustering, etc。我自己基本上只准备这三个。因为它们最常被问到,然后如果你不熟悉会是比较明显的red flag。你往往需要非常认真的知道这些算法的每一个details。比如常见的问题包括:i) Logistic regression和naive bayes的区别; ii) random forest每个node怎么做split. iii) GBM中的gradient怎么定义, etc.
Algorithms in your specialized area. 这个会因人而已,毕竟每个人过去做的方向不大一样。当然更普遍的是NLP/CV/RL。我自己做NLP比较多,准备面试都会把stanford cs224n重新看一遍。 而对于NLP/CV之类的方向你需要懂deep learning和常用的模型。你需要了解: 1) 里面的deep learning的知识像dropout/activation functions, etc. 2) 模型的具体架构。像RNN/Transformer的架构和各自的优劣势。每一层大致是什么样的。
常用的ML concepts很了解像bias-variance tradeoff/overfitting vs. underfitting/regularization, etc。我甚至被直接问到过手写loss function然后手动计算gradient(当然这个uncommon)。
Probabilities and Statistics。我见到问这些问题的并不多。一般DS的面试会更常问到。但我自己作为面试官挺喜欢问别人的,因为这些基础决定着你是一个调包侠还是一个能在算法上有innovation的人。常见的问题比如一些跌骰子的概率计算; 给你一些visitors and conversations,怎么计算significance; 什么是type I/II error; 等等。
高级的回答:我的项目launch A/B test发现performance不好。然后我dive deep into it,首先check 有没有engineering bugs;然后check 模型performance是不是和offline metrics match;然后check feature distribution有没有shift。然后我发现了问题所在。然后我做了这几个change,然后重新上线了,performance improve x%。
这里面低级的回答显示了你没有problem solving/project planning之类的能力,非常糟糕。中级的回答虽然解决了问题,但没有显示出一个系统性逻辑性的解决问题方法。而高级的回答显示出了面试者quantitative and critical thinking的mindset。而往往你问题的回答其实对应于你自己平时解决问题的方法,所以平时工作的时候就应该多注意提升自己的软实力。当然即使是这里面的低级回答,这都是工作中经常遇到的情况,如果你能够换种方式回答就会显得很不一样。比如说:
我有个项目,刚开始的时候我通过分析方向有很好的潜力并且得到了leadership的support,并且在做的过程中跟leadership保持着持续的交通。但后来我们通过online的表现发现customer其实并不buy-in这个feature,并不能给business metrics带来很好的提升。所以跟leadership讨论之后,我们决定de-prioritize这个项目。虽然我感到很挫败,但我学到了A/B/C并运用到了后面的项目中,从而渐渐的能够更好的fail fast fail early。
.google и
亚麻AS每个组不一样 有的组AS own整个pipeline,从建feature建model到deploy,当然platform是engineer搭好的,特别大的ML org像search,有的组只负责feature,有的只负责algorithm,有的只负责experiment。。.google и
但是从tech stack的要求上来说,亚麻的AS就是Meta LinkedIn这些公司对SWE ML 或者MLE的要求。。