几个月前面了 JPMC 的 ML engineer loop,团队是 CIB(corporate and investment banking)tech division 里的 AI 和 ML 组。写下来是因为大多数 ML 面试内容都是 Google/Meta 那套,金融服务的侧重点不一样。
首先:搞清楚你面的是 ML engineer(做系统)还是 data scientist(做模型)。在 JPMC 这区别很重要,面试也不一样。我走的是 MLE track。
Phone screen 跟 hiring manager,30 分钟,主要聊背景和 fit。他很直接:他们用 ML 主要做异常检测、交易分类、文档 NLP(比如贷款协议、研究报告),以及越来越多的风控建模。他想知道我会不会觉得无聊。真实答案是:看你觉得什么有意思。如果你想做最前沿的 generative AI,这里大概率不适合;但如果你想在高风险领域做超大规模、可靠的生产级 ML 系统,其实挺有意思。
Technical screen 60 分钟,两部分:coding 和 ML system design。coding 是一道 Python 题,涉及对数据集做向量化操作(不允许用 NumPy,得从零实现)。ML system design 是:设计一个近实时更新的反欺诈模型。我覆盖了 feature stores、重训节奏、模型服务的延迟要求、drift detection。他们喜欢我把 explainability 作为受监管环境下的硬性需求来讲。
ML depth round。 这是我觉得最有意思的一轮。深挖具体话题:欺诈检测数据集的 class imbalance(聊了 SMOTE vs. cost-sensitive learning vs. threshold tuning)、时间序列交易数据的特征工程、怎么评估一个 recall 优先且 false negatives 很贵的模型。这些不是皮毛问题。他们想看你真的训过模型、处理过脏兮兮的真实世界问题。
Coding round。 LeetCode medium 风格,算法加数据结构。两题,60 分钟。
Behavioral round。 标准 STAR,三题。我记得的一题是:「Tell me about a time a model you deployed had unexpected behavior in production. What happened and what did you change?」(讲讲一次你部署的模型在生产环境出现了意外行为。发生了什么,你做了哪些改动?)
NYC 的 senior MLE offer 大概是 $160-175k base 加 bonus。equity 比科技公司少一些,但 base 挺稳。他们整个流程大概 5 周走完。