---
name: machine-learning
description: 机器学习工程出题：特征与数据、经典模型与深度学习、训练与调参、评估与线上监控、模型部署与 MLOps。岗位或简历涉及机器学习工程师、MLE、算法工程（推荐/搜索/风控/CV/NLP）时加载。
keywords: [机器学习, machine learning, mle, 算法工程师, 深度学习, 推荐算法, 特征工程, 模型部署, mlops, xgboost, 特征平台, 模型监控, 数据漂移, 在线推理, tensorrt]
layer: domain
---

## 岗位职责与考察重点

机器学习工程师的职责是把数据和模型变成稳定产出业务价值的系统：构造特征、训练与迭代模型、评估与实验、部署到线上、监控效果并持续更新。真实面试里最常被问的不是"XGBoost 和 GBDT 区别"这类可背诵题，而是：离线指标涨了线上没涨怎么办、特征在训练和线上不一致怎么发现、模型上线后效果衰减怎么处理、以及针对候选人项目的完整链路追问。面试官最在意三件事：一是对数据与特征的敏感度（泄漏、偏差、分布变化），二是评估是否严谨（切分方式、指标选择、与业务目标的对齐），三是工程闭环能力（部署、监控、回滚、重训）。

校招侧重基础：常见模型的原理与假设、过拟合与正则、损失函数与优化器、评估指标含义，以及一两个项目的诚实复盘；社招侧重系统：特征平台与训练-服务一致性、A/B 实验与线上归因、推理性能与成本、MLOps 流程与团队协作。推荐/搜索/广告方向额外考召回-排序架构与样本构造；风控方向考样本不平衡与可解释性；CV/NLP 方向会追模型结构与数据增强。2025 年以来大模型影响明显，面试官常追"这个任务为什么不直接用 LLM"。

## 主题

### 特征工程与数据泄漏
- 阶梯：特征怎么来、怎么选 → 类别特征编码、数值分桶、交叉特征各解决什么 → 离线 AUC 0.95 线上效果很差，怎么排查是不是泄漏（时间穿越、标签泄露、目标编码未做 out-of-fold）→ 特征数量与线上延迟、存储成本的平衡
- 好题：你的模型离线 AUC 0.95 上线后几乎无效，列出你会按顺序检查的泄漏来源，以及每种怎么验证。
- 危险信号：不知道什么是时间穿越；对"AUC 过高"没有警觉；目标编码直接用全量数据
- 期望信号：按时间切分并检查特征时间戳；单特征重要性异常高时先怀疑泄漏；有特征上线前的一致性校验

### 训练-服务一致性与特征平台
- 阶梯：为什么线上线下特征会不一致 → 特征平台（在线存储、离线存储、point-in-time 正确性）的设计 → 上线后发现某特征线上 30% 为空怎么定位 → 实时特征的新鲜度 vs 计算成本与延迟
- 好题：线上某特征缺失率 30% 而训练集里只有 2%，可能的原因有哪些？你怎么设计机制让这类问题在上线前就被发现？
- 危险信号：训练和线上分别写了两套特征逻辑；没有特征分布监控
- 期望信号：同一份特征定义代码离线在线共用；point-in-time join；上线前做训练集与线上抽样的分布对比

### 经典模型选型与原理
- 阶梯：线性模型、树模型、神经网络各适用什么数据 → GBDT 为什么在表格数据上强、树模型为什么不需要归一化 → 模型效果卡住了是数据问题还是模型问题怎么判断 → 简单模型 + 好特征 vs 复杂模型的维护成本
- 好题：表格数据二分类任务，XGBoost 和一个精心调过的 MLP 效果相当，你会选哪个上线？依据是什么？
- 危险信号：无条件选深度学习；说不出树模型的偏差方差特性；不知道类别特征在不同模型里的处理差异
- 期望信号：从数据规模、特征类型、推理延迟、可解释性、迭代成本综合判断；有基线模型习惯

### 深度学习训练与调试
- 阶梯：loss 不降怎么查 → 学习率、batch size、归一化、初始化的相互作用 → 训练 loss 正常但验证集震荡、NaN、梯度爆炸各自的排查步骤 → 调参预算与收益，什么时候该停止调参回去看数据
- 好题：训练到第 3 个 epoch loss 突然变 NaN，你按什么顺序排查？哪些改动是治标、哪些是治本？
- 危险信号：调参只会试学习率；不知道 gradient clipping、混合精度溢出这类原因；没看过梯度范数
- 期望信号：先检查数据（异常值、标签错误）；查学习率 warmup、精度溢出、除零；小数据过拟合验证 pipeline

### 评估指标与实验设计
- 阶梯：准确率为什么不够 → AUC、PR-AUC、F1、NDCG、校准各适用什么场景 → 离线指标涨了线上 A/B 没涨怎么归因 → 代理指标与业务目标的偏差，多目标怎么权衡
- 好题：推荐模型离线 AUC 提升 1.5%，线上 A/B 点击率无显著变化，你怀疑哪些原因？下次怎么让离线评估更能预测线上？
- 危险信号：只会看 AUC；不知道样本不平衡下 AUC 的误导性；离线评估用随机切分而非时间切分
- 期望信号：区分排序指标与分类指标；理解离线样本只覆盖曝光过的 item（选择偏差）；用 replay 或 uplift 缩小离线线上差距

### 样本构造与不平衡
- 阶梯：正负样本怎么定义 → 采样、加权、focal loss 各解决什么 → 负采样后概率校准偏了怎么修 → 标签噪声与延迟反馈（转化在点击后几天才发生）怎么处理
- 好题：风控模型正样本 0.3%，你怎么构造训练集、选评估指标、处理线上概率校准？延迟到账的坏账标签怎么办？
- 危险信号：直接把负样本采样到 1:1 且不做校准；不知道延迟反馈问题
- 期望信号：评估用 PR-AUC 或 KS；采样后概率修正公式；延迟标签用观察窗口或专门建模

### 模型部署与推理优化
- 阶梯：模型怎么从训练框架到线上服务 → ONNX/TensorRT 转换、批处理、量化各做什么 → 线上 P99 延迟超标怎么定位（模型、特征查询、序列化、网络）→ 模型精度、延迟、GPU 成本的三角取舍
- 好题：线上推理 P99 从 30ms 涨到 120ms 且 GPU 利用率只有 20%，你怎么排查？如果瓶颈在特征查询，模型侧还能做什么？
- 危险信号：认为延迟问题都是模型太大；不知道 GPU 利用率低通常意味着瓶颈在别处
- 期望信号：分段打点找瓶颈；动态 batching 与并发配置；量化前后做精度回归；特征缓存与预计算

### 线上监控与漂移
- 阶梯：模型上线后要监控什么 → 数据漂移与概念漂移的区别，PSI/KL 之类的检测手段 → 效果缓慢下降但没有告警怎么办，标签延迟情况下怎么监控 → 重训频率、自动重训的触发条件与风险
- 好题：模型上线三个月 AUC 从 0.82 降到 0.76，你怎么区分是特征漂移、用户行为变化还是标签定义变了？重训之前要确认什么？
- 危险信号：只监控服务可用性不监控效果；把重训当万能药
- 期望信号：特征分布、预测分布、真实效果三层监控；有 champion-challenger 或影子模式；重训有回滚方案

### MLOps 与实验管理
- 阶梯：为什么模型需要版本管理 → 数据版本、代码版本、模型版本、参数如何关联可复现 → 两个月前的模型效果复现不出来怎么查 → 流程规范化与算法迭代速度的矛盾
- 好题：团队五个人同时迭代同一个模型，怎么设计实验管理与上线流程，既能复现任何一次结果又不拖慢迭代？
- 危险信号：模型文件手工命名放共享盘；不记录训练数据快照
- 期望信号：实验追踪（参数、指标、数据 hash）；模型注册与审批；CI 里跑评估回归

### 推荐/搜索系统架构（方向相关）
- 阶梯：召回-粗排-精排-重排为什么要分层 → 双塔召回、序列建模、多目标排序各解决什么 → 新用户/新物品冷启动、曝光偏差怎么处理 → 模型复杂度与线上延迟预算、探索与利用的平衡
- 好题：你的推荐系统新品曝光占比很低，业务要求提升新品分发，你会在哪一层动、怎么衡量对整体指标的伤害？
- 危险信号：只会说"用双塔"；不知道各层的候选量级与延迟预算
- 期望信号：分层的候选数与耗时；曝光偏差与纠偏；多目标融合公式与线上调参

### 与 LLM 的关系与边界
- 阶梯：这个任务为什么不直接用大模型 → 传统模型在延迟、成本、可控性上的优势 → 用 LLM 生成特征或标签的风险（噪声、分布偏移）→ 什么场景值得引入 LLM、怎么评估收益
- 好题：文本分类任务你有 5 万条标注数据，是微调 BERT 类小模型、用 LLM zero-shot 还是用 LLM 做数据增强再训小模型？依据和验证方式是什么？
- 危险信号：无条件用 LLM；或完全拒绝 LLM 而说不出理由
- 期望信号：按延迟、成本、准确率、可维护性比较；LLM 标注要抽检一致性；有小模型蒸馏思路

### 可解释性与合规约束
- 阶梯：为什么风控、医疗、金融场景要求模型可解释 → 特征重要性、SHAP、单调性约束各解决什么 → 模型拒绝了一个用户业务要求给出理由、监管要求证明无歧视怎么做 → 可解释性对模型精度与迭代速度的代价，什么场景该用评分卡而不是 GBDT
- 好题：风控模型上线后合规部门要求对每一笔拒绝给出可理解的原因，你的 GBDT 模型怎么满足？如果解释与业务直觉相反（收入越高越容易被拒），你怎么排查？
- 危险信号：把特征重要性当成个体解释；不知道 SHAP 与全局重要性的区别；不考虑敏感特征的代理变量
- 期望信号：区分全局与局部解释；对关键特征加单调性约束；检查敏感属性的代理特征；解释结果与业务规则对齐

## 好题 / 坏题对比

- 坏：什么是过拟合？怎么防止？
- 好：你的模型离线 AUC 0.95 上线后几乎没效果，按顺序说出你会检查的泄漏来源和每种的验证方法；如果最终确认是时间穿越，重新构造训练集要注意什么？

- 坏：XGBoost 和随机森林有什么区别？
- 好：表格数据二分类，XGBoost 和调好的 MLP 离线效果相当，你会选哪个上线？如果三个月后要加 20 个实时特征，你的选择会变吗？

- 坏：模型怎么部署？
- 好：线上推理 P99 从 30ms 涨到 120ms，GPU 利用率只有 20%，你怎么定位瓶颈？如果发现是特征查询慢，有哪些不改模型的解法？

## 项目结合钩子

- 简历出现"AUC 提升 X" → 追切分方式、基线是什么、线上有没有 A/B 验证、业务指标变化
- 简历出现特征工程 → 追最有效的三个特征怎么来的、有没有泄漏检查、线上怎么取
- 简历出现模型上线 → 追 QPS、P99、部署方式、监控什么、有没有回滚过
- 简历出现推荐/搜索 → 追各层候选量级、冷启动方案、多目标怎么融合、曝光偏差处理
- 简历出现"自动重训 / MLOps 平台" → 追触发条件、评估门槛、失败案例
- 简历出现深度学习模型 → 追为什么选这个结构、训练调试遇到的最难问题、和简单基线比提升多少
- 简历出现风控/反欺诈 → 追正样本比例、标签延迟、可解释性要求、对抗变化怎么应对
- 简历出现 Kaggle / 竞赛 → 追方案里哪些在工业界不可用、为什么

## 出题原则

- 每个模型或优化手段都追"怎么验证的"：切分方式、基线、置信度、线上验证，没有验证过程的数字不算成果。
- 优先考数据问题而不是模型问题：泄漏、偏差、漂移、一致性是真实工作里出问题最多的地方。
- 必须结合候选人的方向与规模出题：百万级样本和百亿级样本、离线批处理和毫秒级在线服务的正确答案不同。
- 不考推导公式细节与论文名字，考原理理解如何指导实际决策（为什么这个场景选这个）。
