我走了 Amex 的 MLE 流程,面的是他们 fraud detection ML platform team 的一个 senior 角色。一共 6 轮,确实很多。写下来是因为 Amex 的流程里,ML 相关的细节资料很少。
Amex 的 ML 组织是真正存在的,不是那种随便挂几个 data scientist 就说有 AI 的公司。他们有专门的 fraud ML、credit risk ML、个性化/推荐、以及 NLP/文档处理团队。我面这个岗位是做 fraud signal modeling,更偏生产系统。
第 1 轮(recruiter): 常规,但他们会问你对 MLOps 和 model serving infra 的熟悉度,不只是建模。提前知道一下。
第 2 轮(ML fundamentals phone screen): bias-variance tradeoff,precision vs. recall 以及分别在什么情况下更在意(对 fraud 很相关:false negatives 会带来欺诈损失,false positives 会损害客户信任),class imbalance 处理。我被具体问到如果 fraud rate 是 0.1% 的数据集该怎么做。我们聊了 SMOTE、class weighting、threshold tuning,以及在不平衡场景用 precision-recall curve 分析而不是 AUC-ROC。如果你要做 fraud ML,这些要会。
第 3 轮(ML system design): 设计一个 feature store 和实时推理 pipeline,用在交易发生时的 fraud scoring。延迟约束:<100ms。我讲了离线特征计算、低延迟特征服务(Redis、Feast)、model serving 层(TorchServe 或 Triton)、A/B 测试和 shadow scoring 来做模型上线。他们很喜欢 shadow scoring。他们也追问:如果模型在两次 retrain 之间变 stale,你怎么办?
第 4 轮(coding): Python,重点是数据处理和一个小的模型评估脚本。一道 LeetCode 风格题(medium),加一个数据任务。不难,但时间紧。
第 5 轮(behavioral,ML 相关): 「Tell me about a model you built that underperformed in production vs. evaluation.」(讲一个你做过的模型在生产环境里比离线评估表现更差的例子。)他们想知道你有没有上线过真实东西、有没有碰到现实的坑。准备一个「事情没按预期工作」的故事。
第 6 轮(senior ML leader): 更偏聊天。他们问我对 model monitoring 的理念,以及我会用什么阈值来触发 retrain vs. rollback。
offer 我拒了(我接了另一个角色):$190k base,18% bonus,一些 restricted cash units。工作本身看起来确实挺有意思。Amex 的 fraud ML 不是玩具问题。