我今年早些时候走了 Wells Fargo machine learning engineer 的面试流程。岗位在旧金山的风险与欺诈检测团队。分享一下,因为网上大多数 ML 面试内容要么是 FAANG 视角,要么很泛。银行不一样。
我原本以为: 狂刷 leetcode、很虚的 ML 系统设计、可能再来点统计。
我实际经历: 比我想象的更偏应用、更强行业场景。
流程概览: Recruiter screen。常规。 ML coding screen(60 分钟)。给了真实数据集(匿名化的交易记录),让我用 Python 做一个简单的欺诈分类器并评估。Jupyter notebook 环境。他们在意:我怎么处理类别不平衡、我优化哪个指标(我默认用 accuracy 的时候他们反问了我,这个反问很对),以及我会怎么把模型解释给合规团队听。最后这一点才是真正的考点。我提到了 XGBoost + SHAP values,他们就追问了关于特征重要性解释的后续问题。 ML system design(45 分钟)。怎么设计一个实时欺诈评分系统,要求 200ms 内出决策、能处理 concept drift,并且把所有东西都记录下来以满足监管审计?这是非常金融服务特有的问题。我讲了 feature store、模型服务基础设施、shadow mode 测试,以及一个难点:带标签的数据要几周后才到(chargebacks 很慢),导致重训不容易。他们似乎挺认可我提到 label delay 这个问题。 Behavioral panel。两轮。他们真的很想要 STAR-method 的答案,而且会明确说出来。他们问了和“不理解模型限制”的业务方协作,以及线上模型故障怎么处理。
最重要的是什么: 金融服务 ML 的领域知识。如果你做过 fraud、credit risk、AML 或任何相关方向,要狠狠强调。如果没做过,就花时间读一下这些问题。通用 ML 技能只是门槛。区分候选人的,是你是否理解欺诈检测里 precision/recall 的权衡会带来真实的业务后果。
定级最后给我的是他们称为 Senior Data Scientist II(WF 的 ML eng 头衔有点奇怪)。SF base 大概 $165k,奖金目标 15%,RSUs 分 3 年。不是 FAANG 的总包,但岗位 scope 很实。