今年早些时候做了 McKinsey 的 MLE loop,岗位在他们的 QuantumBlack practice。想分享一下真实面试长什么样,以及和我预期的差别。
我以为会是重 LeetCode 加一些标准 ML 理论。结果更偏应用,而且非常看沟通能力。你可以把这当成好消息或坏消息,取决于你强项在哪。
流程
一共五轮:recruiter call、technical screen、三轮 onsite(ML technical、system design、PEI + case)。
ML technical 轮
建模:他们给了一个业务场景(给电信客户做 churn prediction),然后用对话方式把完整 ML workflow 走一遍。feature engineering 怎么做,怎么处理 class imbalance,train/val/test 怎么切,怎么在 accuracy 之外评估模型(他们明确问了这个,这里 precision/recall 的取舍很重要)。还问了这个场景下 XGBoost vs logistic regression,想听你讲真实推理,而不是「XGBoost 更好」。
有一道 model monitoring:'你上线了这个 churn 模型,6 个月后性能下降了,你怎么诊断和修复。' 我按 distribution shift、feature drift、label drift、pipeline 问题这些去拆。他们看起来满意。
没有实现型 coding,没有 LeetCode。唯一的 coding 题是:'写一个函数,从 predictions 和 labels 的列表里算 precision 和 recall。' 要求从零写,不能 import sklearn。很直接。
system design(ML systems)
怎么搭一个 ML training pipeline,每周用新数据做 retraining。要覆盖 feature store、模型版本管理、A/B testing 基础设施、rollback。我在共享文档里画了出来。他们会追问「训练数据里有坏记录怎么办」以及「怎么把模型版本和它对应的训练数据版本一起管理」。
case + PEI
yep,MLE 也要。case 是 lite 版:'一个客户的推荐模型相比旧的 rule-based 系统反而拉低了转化,可能是什么原因。' 这其实是披着 case 外衣的好 ML 问题。我给了比较实的答案(distribution shift、反馈回路、训练数据里的 position bias),效果不错。
PEI:准备了两个故事,两边都用上了。他们对影响会深挖。
结论
如果你是强应用型 ML、而且能讲清楚,McKinsey 真的挺有意思。如果你想刷两个月 LeetCode 然后躺进工作,那还是去别处吧。