ML Engineer Coding 面试准备指南:NumPy、Pandas、PyTorch、模型 Debug 和 ML System Design
面向北美华人候选人的 ML Engineer coding 面试指南:拆解 NumPy、Pandas、PyTorch、classifier training、KMeans、bagging、data cleaning、model evaluation、ML debugging 和 ML system design。
ML Engineer 面试越来越不像传统 LeetCode,也不像学校机器学习考试。OpenAI、Anthropic、TikTok、Meta、Stripe、Snap、Apple、Microsoft、Amazon、Uber 这些公司的 MLE 面试,常常会混合考 ML coding、data cleaning、PyTorch、NumPy、Pandas、模型调参、系统设计、项目深挖和普通算法题。
很多北美华人候选人准备 MLE 时会犯一个错误:把它当成“刷题 + 背 ML 八股”。实际面试中,你可能需要现场实现 KMeans、bagging、classifier training loop,分析 missing data,解释 label noise,debug transformer 或 PyTorch tensor shape,甚至设计一个 RAG 或 model serving 系统。
这篇文章会把 ML Engineer coding 面试拆成几个可训练模块。
MLE 面试的常见组合
常见面试结构:
- general coding
- ML coding
- ML fundamentals
- PyTorch / NumPy implementation
- data analysis / Pandas
- model debugging
- ML system design
- project deep dive
- behavioral
不同公司侧重不同:
| 公司 / 岗位类型 | 常见重点 |
|---|---|
| AI Lab / AI Infra | PyTorch、model serving、debugging、systems |
| Ads / Ranking / Recommendation | feature、metric、A/B test、ranking design |
| Data-heavy MLE | Pandas、SQL、data cleaning、model evaluation |
| Startup MLE | end-to-end project、快速实现、product sense |
| Research Engineer | ML fundamentals、PyTorch、paper-to-code |
所以 MLE 准备不能只刷 LeetCode,也不能只复习理论。
ML Coding 考什么
常见题型:
- implement KMeans
- implement bagging / random forest core logic
- implement logistic regression training
- implement linear regression
- implement gradient descent
- implement softmax / cross entropy
- implement confusion matrix metrics
- train a small classifier
- write a PyTorch training loop
- debug tensor shape
- handle missing values
- analyze annotator labels
- evaluate offline metrics
这些题一般不要求你从零写完整 ML framework,但要求你能把 ML 概念翻译成可运行代码。
NumPy:矩阵和 shape 是基础
你至少要熟悉:
- array shape
- broadcasting
- indexing and slicing
- boolean mask
- matrix multiplication
axisargmax/argsortmean/sum/std- pairwise distance
- numerical stability
很多候选人 ML 概念懂,但现场写 NumPy 很慢,尤其卡在 shape。
练习建议:
- 不查文档写 softmax
- 不查文档写 cross entropy
- 写 pairwise Euclidean distance
- 写 top-k accuracy
- 写 mini-batch sampling
- 写 normalization
- 写 train / validation split
每道题都要打印或解释 shape。面试时你可以主动说:
“X is [n_samples, n_features], W is [n_features, n_classes], so logits will be [n_samples, n_classes].”
这比直接写代码更能减少误解。
Pandas / Data Cleaning:别只会 model.fit
MLE 面试经常给你一个表格数据场景:
- 某些 row 有 missing value
- label 来自多个 annotator
- feature 类型混合
- class imbalance
- offline metric 不稳定
- train loss / validation loss 异常
- 数据中有 duplicate 或 leakage
你要会处理:
isna- groupby aggregation
- train / test leakage
- one-hot / categorical encoding
- normalization
- outlier handling
- duplicate detection
- label distribution
- stratified split
如果题目是 binary classifier with annotator labels,你不能只说“训练一个模型”。你要先问:
- label 是否有 disagreement
- annotator reliability 是否一致
- positive class 占比是多少
- metric 是 accuracy、F1、AUC 还是 recall at precision
- false positive 和 false negative 哪个成本更高
- 是否存在 data leakage
这类问题很体现真实 ML 工程能力。
PyTorch:训练 loop 要能手写
你应该能熟练写:
- model definition
- forward pass
- loss function
- optimizer
- zero grad
- backward
- step
- train / eval mode
- no_grad evaluation
- device handling
- batch loop
最小训练 loop:
model.train()
for xb, yb in loader:
optimizer.zero_grad()
logits = model(xb)
loss = criterion(logits, yb)
loss.backward()
optimizer.step()
面试中不一定要代码完全 production-ready,但你不能混淆:
- logits vs probability
CrossEntropyLoss是否需要 softmax- train mode vs eval mode
- gradient accumulation
- tensor dtype
- shape mismatch
如果题目要求用 NN 预测两个 labels,你要先确认:
- 是 multi-class 还是 multi-label
- 两个 labels 是否独立
- loss 是否分开算
- output head 是一个还是两个
- metric 如何评估
ML Fundamentals:要能解释异常现象
常见问题:
- training loss 上升可能是什么原因
- validation loss 上升但 training loss 下降说明什么
- overfitting 怎么处理
- regularization 的作用
- learning rate 太大有什么表现
- class imbalance 怎么处理
- random forest 和 gradient boosting 的区别
- bagging 为什么降低 variance
- decision tree split criterion
- precision / recall / FPR / FNR
- confusion matrix
- ROC / PR curve
这类题不要求你像教科书一样推公式,但要求你能结合场景解释。
例如训练 loss 持续上升,你可以从:
- learning rate too high
- bug in labels
- loss sign 写反
- data preprocessing mismatch
- regularization too strong
- gradient explosion
- model in wrong mode
几个角度排查。
Model Debugging:按层定位问题
ML debugging 面试常见场景:
- model performance barely above random
- train loss diverges
- validation metric unstable
- model works offline but fails online
- inference latency too high
- prediction distribution shifts
- new data concept 出现后效果变差
一个稳定排查框架:
- Data: schema、missing、duplicate、label quality、distribution shift
- Split: leakage、time split、stratification
- Feature: scaling、encoding、feature availability
- Model: capacity、loss、optimizer、hyperparameters
- Metric: metric 是否匹配业务目标
- Serving: train-serving skew、latency、batching
- Monitoring: drift、calibration、alerting
不要一上来调模型。真实 MLE 面试里,很多问题根本不是模型结构,而是数据和评估。
General Coding 仍然重要
MLE 面试也会考普通 coding:
- tree
- binary search
- graph
- string parsing
- heap
- interval
- sliding window
- DFS / BFS
- stack parser
很多公司会在一小时里混合:项目经历、ML 八股、coding、system design。你需要有基本算法手感。
如果你 coding 速度偏慢,建议至少准备:
- 50 道 LeetCode medium 高频
- 10 道 string parser
- 10 道 graph / BFS
- 10 道 interval / heap
- 10 道 tree
ML 岗不是不考算法,只是算法不再是唯一信号。
ML System Design:把模型放进生产系统
MLE system design 常见题:
- design a recommendation system
- design a RAG system
- design a fraud detection system
- design harmful content detection
- design search ranking
- design feature store
- design model training pipeline
- design model serving platform
- design custom LLM fine-tuning system
- design data labeling / human-in-the-loop system
答题时要覆盖:
- problem framing
- data source
- label definition
- feature pipeline
- training pipeline
- offline evaluation
- online serving
- monitoring
- retraining
- failure cases
- privacy / safety
例如设计 RAG,不要只说 embedding + vector DB + LLM。你要讲:
- document ingestion
- chunking
- metadata and ACL
- embedding refresh
- hybrid retrieval
- reranking
- context construction
- hallucination mitigation
- evaluation
- latency and cost
- permission correctness
可以参考 AI Infrastructure Engineer 面试对比 和 ML Engineer Interview Prep。
Project Deep Dive:MLE 要讲数据和指标
MLE project deep dive 不能只讲模型名字。
你要准备:
- business problem
- data source
- label definition
- feature engineering
- model choice
- baseline
- evaluation metric
- offline vs online gap
- error analysis
- deployment
- monitoring
- retraining
- impact
面试官会追问:
- 为什么这个 metric
- false positive 成本是什么
- data leakage 怎么避免
- model drift 怎么发现
- 如果 label 有噪声怎么办
- 为什么不用更简单模型
- 线上 latency 怎么控制
- 这个结果对业务有什么影响
如果你只说“我用了 transformer,效果提升 5%”,不够。你需要解释为什么这个提升可信,如何上线,如何监控。
两周准备计划
| 时间 | 重点 |
|---|---|
| Day 1-2 | NumPy shape、softmax、loss、distance、metrics |
| Day 3-4 | Pandas cleaning、groupby、missing、label analysis |
| Day 5-6 | PyTorch training loop、debug shape、loss |
| Day 7-8 | KMeans、bagging、logistic regression |
| Day 9-10 | ML fundamentals、overfitting、metrics、tree/ensemble |
| Day 11-12 | ML system design 2-3 题 |
| Day 13 | project deep dive |
| Day 14 | mock interview,限时表达 |
如果只有一周,优先练:
- PyTorch training loop
- NumPy metrics
- Pandas missing data
- 2 个 ML coding implementation
- 1 个 ML system design
- 1 个 project deep dive
最后
ML Engineer 面试的难点在于跨界:你既要像 SDE 一样写可靠代码,又要像 ML practitioner 一样理解数据、模型和指标,还要像系统工程师一样考虑 serving、monitoring、latency 和 cost。
对于北美华人候选人,最好的准备方式不是死背题,而是把每个 ML 概念转成可运行代码、可解释指标和可上线系统。这样无论面试问到 NumPy、PyTorch、classifier、RAG、recommendation、debugging 还是 project deep dive,你都能给出稳定信号。
需要针对 MLE / AI infra 做 mock,可以看我们的 ML Engineer Interview Prep Coaching。
相关面试辅导
如果你正在准备类似面试,可以直接从下面的专项辅导开始。