最近刚走完 Adobe machine learning engineer 面试,岗位是 Sensei AI team。"Sensei" 是他们的 ML 平台品牌。分享一下是因为 Adobe 的 MLE 面试信息在网上真的很少。
整个 loop 一共 6 轮,分两天完成 virtual onsite。
Coding(2 轮): 标准的偏 ML 的 coding。一轮基本就是数据结构题(完全不涉及 ML,就是算法),另一轮让我用 Python 从零实现一个简单的 gradient descent loop。不用库,只能用 numpy。他们会看我怎么考虑数值稳定性和 step size。
ML fundamentals(1 轮): 理论问得很深。bias-variance tradeoff、regularization、你会怎么在 L1 和 L2 之间选择、用概念层面解释 attention mechanism、什么时候用 transformer vs. 更简单的东西。他们还问了 model calibration,这个不是所有人都会准备。至少要知道 Platt scaling 的概念。
ML system design(1 轮): 设计一个 Adobe Stock 的内容推荐系统。从原始 event data 到 feature engineering、model selection、serving、A/B testing。我在 feature engineering 和 cold start 问题上花了很多时间,因为对 stock image 这种场景来说这确实很难。面试官似乎很喜欢我没有一上来就说「直接 train 一个 two-tower model」,而是先解释为什么。
Past project deep-dive(1 轮): 跟上面 DE 的 loop 很像:选一个项目,他们会往下追三层。哪里出过问题、你选的 metric 是什么以及为什么、你会怎么做得不一样。
Behavioral(1 轮): 标准 STAR。Adobe 在 behavioral 里非常看重跨职能协作。我被问到的是:讲讲你在一个 ML 项目里和 PM 合作的经历,当时他们想要的东西你认为技术上做不到。
model calibration 和 cold start 是我最庆幸提前准备过的两件事。那个从零写 gradient descent 的轮次,如果我进场前没至少做过一次,肯定会翻车。