algorithm · git:20260920.a4843f5 · 2026-09-20 · sha256 38943126d6f40d29
algorithm git:20260920.a4843f5A
Immutable. This exact content never changes and is served at /api/v1/blob/38943126d6f40d29.
--- name: algorithm description: 算法与机器学习怎么面:ML 基础、深度学习、特征、AB 实验、部署监控、落地。算法与 ML 工程岗读。 keywords: [算法工程师, 机器学习, machine learning, mle, 深度学习, 推荐算法, 搜索算法, 广告算法, 计算机视觉, 自然语言处理, 风控, 特征工程, 模型部署, mlops, xgboost, AB 实验, CV, NLP, 特征平台, 模型监控] layer: domain --- ## 面试官在意什么 算法与机器学习岗在国内分为搜索推荐广告(字节、美团、阿里、快手需求最大)、CV、NLP、风控与数据挖掘、机器学习平台与 MLOps 等方向。职责是把数据和模型变成稳定产出业务价值的系统:构造特征、训练与迭代模型、评估与实验、部署到线上、监控效果并持续更新。真实面试三到四轮:一面考机器学习与深度学习基础加一道手撕(LeetCode 中等或模型组件如交叉熵、IoU),二面深挖项目与业务方向的模型演进(推荐的召回粗排精排、CV 的检测分割、NLP 的预训练与微调),三面考实验设计、业务理解与工程落地,主管面看方向匹配。大模型方向的算法题(预训练、对齐、RL)在 ai-algorithm 包里。 面试官最在意三件事:第一,基础是否扎实——损失函数、优化器、正则化、评估指标能否推导而不是背结论;第二,实验是否可信——有没有对照组、有没有泄漏、切分方式对不对、离线指标与线上指标背离时怎么判断;第三,工程闭环——特征一致性、延迟与吞吐、监控与回滚、重训,算法工程师不只是训练模型的人。真实工作里出问题最多的地方是数据(泄漏、偏差、漂移、一致性)而不是模型,面试官会优先往那里追。 校招候选人的项目多为论文复现、比赛、实验室课题或实习中的一个模块,不期待业务成果,看对基础公式的推导、对实验结果的诚实评估、能否解释每个超参数与设计的理由;社招必须交代线上指标、AB 实验的置信度、模型上线后的性能与稳定性问题、特征平台与训练服务一致性,以及为什么这个方案而不是更简单的基线。2025 年以来面试官常追"这个任务为什么不直接用大模型"。 怎么问才像这个方向的面试官: - 基础题必须追到公式或机制层面(推导、复杂度、统计量),只会背结论按不理解处理;手撕以模型组件为主,不出纯脑筋急转弯。 - 项目题的核心是实验可信度:验证集划分、泄漏、基线、置信度四项必问,任何一项答不出都要深挖。 - 优先考数据问题而不是模型问题:泄漏、偏差、漂移、一致性是真实工作里出问题最多的地方。 - 校招看基础推导与对实验的诚实评估,不苛求线上成果;社招必须交代线上指标、AB 结论与部署性能,没有线上经历的按离线项目追问。 - 必须结合候选人的方向与规模出题:百万级样本和百亿级样本、离线批处理和毫秒级在线服务的正确答案不同;候选人的方向与题目方向不同时用其熟悉的任务替代。 - 不考模型与论文的时效性名词,考选型理由与失败案例。 ## 项目 / 实习怎么深挖 简历上出现下面这类经历时从哪里切、追什么。追到候选人能说出机制、数字的来源与一次真实的故障或取舍才算实;只有框架名与结论、说不出自己那一段的,记为危险信号。通用的追问方法见 project-deep-dive。 - 简历出现推荐或广告模型 → 追召回样本构造、负采样、各层候选量级、离线与线上指标的对应关系、AB 实验的置信度、冷启动方案、曝光偏差处理 - 简历出现"AUC / 准确率提升 X" → 追指标定义、验证集划分方式、有没有泄漏、基线是什么、线上有没有 A/B 验证、业务指标变化 - 简历出现特征工程 → 追最有效的三个特征怎么来的、特征重要性怎么算、有没有泄漏检查、线上怎么取、线上线下一致性怎么保证 - 简历出现模型上线 → 追 QPS、p99 延迟、部署方式、监控什么、有没有回滚过 - 简历出现深度学习模型 → 追为什么选这个结构、训练调试遇到的最难问题、和简单基线比提升多少 - 简历出现论文复现或比赛名次 → 追复现结果与原文差距、关键提升来自哪一步、集成的贡献、有没有过拟合榜单、哪些方案在工业界不可用 - 简历出现"自动重训 / MLOps 平台" → 追触发条件、评估门槛、失败案例 - 简历出现风控 / 反欺诈 → 追正样本比例、标签延迟、可解释性要求、对抗变化怎么应对 - 简历出现 CV 或 NLP 具体任务 → 追损失函数与后处理细节、失败样本分析、数据增强 - 简历出现搜索相关性 / 排序 → 追标注怎么来、离线 NDCG 与线上点击的关系、query 理解与召回的分工 ## 常见失守与危险信号 - 机器学习基础与模型选择:过拟合只答"加正则";说不出 GBDT 与随机森林的差异来源;无条件选深度学习;不知道类别特征在不同模型里的处理差异 - 评估指标与业务目标:AUC 只会背"ROC 下面积";不知道全局 AUC 与用户内 AUC 的差别;不知道样本不平衡下 AUC 的误导性;把离线指标当最终目标 - 深度学习训练与调试:BN 只答"归一化"说不出推理时用什么统计量;NaN 只答"调小学习率";调参只会试学习率;没看过梯度范数 - 特征工程、泄漏与训练服务一致性:不知道特征穿越是什么;对"AUC 过高"没有警觉;目标编码直接用全量数据;训练和线上分别写了两套特征逻辑;没有特征分布监控 - 实验设计与 AB 测试:不知道显著性与样本量的关系;实验流量随便切;不知道 AA 实验的作用 - 模型部署与推理优化:部署只答"用 Flask 包一下";量化只知道"变小变快";不知道 GPU 利用率低通常是数据加载或 batch 问题;认为延迟问题都是模型太大 - 线上监控、漂移与 MLOps:只监控服务可用性不监控效果;把重训当万能药;模型文件手工命名放共享盘;不记录训练数据快照 - 数据质量与标注:随机划分时序数据;没有检查过数据重复;标注不一致没有度量 - CV 与 NLP 方向专项:只会报模型名字;说不出 NMS 的阈值影响;不知道 beam search 与贪心的差别 - 业务落地与 LLM 边界:拿到问题直接选模型;没有基线;说不出模型失效的场景;无条件用 LLM,或完全拒绝 LLM 而说不出理由 - 可解释性与合规约束:把特征重要性当成个体解释;不知道 SHAP 与全局重要性的区别;不考虑敏感特征的代理变量 ## 常考主题清单 只列名字、阶梯与答实的标志,作"问到哪一层算实"的参考;问哪些、问几道由这份 JD 与这份简历定,不是配额。 ### 机器学习基础与模型选择 - 阶梯:过拟合与欠拟合的判断与对策 → 偏差方差分解、正则化的作用机制、树模型与线性模型的适用场景,GBDT 为什么在表格数据上强、树模型为什么不需要归一化 → 训练集表现好线上差的归因(分布偏移、泄漏、标签噪声);效果卡住了是数据问题还是模型问题 → 可解释性、训练成本与效果的取舍,什么时候该用简单模型 - 答实的标志:能区分泄漏、时间穿越、分布漂移;知道正则化对应的先验;能解释树模型对特征尺度不敏感的原因;有基线模型习惯 ### 评估指标与业务目标 - 阶梯:precision、recall、AUC、F1、NDCG、校准的定义与适用 → AUC 的排序含义、正负样本不平衡下指标的选择、GAUC 与 AUC 的差异 → 离线指标提升但线上指标不动的原因(选择偏差、代理指标偏离) → 指标与业务目标的对齐,多目标怎么权衡 - 答实的标志:能解释 AUC 的概率含义;区分排序指标与分类指标;理解离线样本只覆盖曝光过的 item;用 replay 或 uplift 缩小离线线上差距;能提出更贴近业务的代理指标 ### 深度学习训练与调试 - 阶梯:梯度消失与爆炸的原因与对策 → BatchNorm 与 LayerNorm 的计算、训练与推理阶段的差异、Dropout 的作用、学习率与 batch size 的关系 → loss 不下降、验证集震荡、NaN 的排查顺序 → 训练稳定性与收敛速度的取舍、混合精度的风险、调参预算与收益 - 答实的标志:先检查数据(异常值、标签错误)再查 lr、warmup、精度溢出;有梯度裁剪、混合精度溢出、数据异常等排查清单;能解释 BN 在 batch 小时失效;小数据过拟合验证 pipeline ### 特征工程、泄漏与训练服务一致性 - 阶梯:特征的类型与处理方式(离散、连续、序列、交叉)、embedding 的构造与共享 → 离线 AUC 0.95 线上很差,怎么排查是不是泄漏(时间穿越、标签泄露、目标编码未做 out-of-fold)→ 为什么线上线下特征会不一致;特征平台(在线存储、离线存储、point-in-time 正确性)的设计;上线后某特征线上 30% 为空怎么定位 → 特征数量、实时性与服务延迟、存储成本的取舍 - 答实的标志:按时间切分并检查特征时间戳;单特征重要性异常高时先怀疑泄漏;同一份特征定义代码离线在线共用;point-in-time join;上线前做训练集与线上抽样的分布对比 ### 实验设计与 AB 测试 - 阶梯:AB 实验的基本原则与分层分桶 → 样本量、显著性、置信区间的计算与最小可检测效应 → 实验结果不显著、AA 实验不平、新奇效应与网络效应怎么处理 → 多个实验互相干扰的分层设计、短期指标与长期指标的取舍 - 答实的标志:能估算样本量;知道方差缩减方法;能识别辛普森悖论与分桶不均;对全量决策有明确标准 ### 模型部署与推理优化 - 阶梯:训练框架到推理服务的导出路径(ONNX、TorchScript、TensorRT) → 量化、蒸馏、剪枝的原理与精度代价,批处理与动态 batch → 线上 p99 延迟突增怎么定位(模型、特征查询、序列化、网络)、GPU 利用率低、量化后精度掉太多怎么排查 → 延迟、吞吐、成本、精度的四维取舍,CPU 与 GPU 部署选择 - 答实的标志:能说出 PTQ 与 QAT 的差异;分段打点找瓶颈;动态 batching 与并发配置;量化前后做精度回归;特征缓存与预计算 ### 线上监控、漂移与 MLOps - 阶梯:模型上线后要监控什么 → 数据漂移与概念漂移的区别,PSI / KL 之类的检测手段;数据版本、代码版本、模型版本、参数如何关联可复现 → 效果缓慢下降但没有告警、标签延迟情况下怎么监控;两个月前的模型效果复现不出来怎么查 → 重训频率、自动重训的触发条件与风险;流程规范化与迭代速度的矛盾 - 答实的标志:特征分布、预测分布、真实效果三层监控;有 champion-challenger 或影子模式;实验追踪(参数、指标、数据 hash);模型注册与审批;CI 里跑评估回归;重训有回滚方案 ### 数据质量与标注 - 阶梯:数据集怎么划分、为什么要按时间或用户划分 → 标签噪声的影响与处理、类别不平衡的采样与加权 → 数据泄漏怎么排查、标注不一致怎么度量 → 数据规模与标注成本的取舍、主动学习与弱监督何时值得 - 答实的标志:能说出划分方式与业务场景的对应;知道标注一致性指标;有数据版本管理的意识 ### CV 与 NLP 方向专项 - 阶梯:经典任务的模型演进(检测、分割、预训练语言模型) → 损失函数与后处理(IoU、NMS、CTC、beam search)的细节 → 小目标漏检、领域迁移效果差、生成重复等具体问题的归因 → 精度、速度与标注成本的取舍,何时用预训练大模型替代专用模型 - 答实的标志:能解释损失与后处理的作用;有领域迁移与数据增强的方案;知道大模型替代的成本边界 ### 业务落地与 LLM 边界 - 阶梯:业务问题怎么转成机器学习问题;目标函数与业务目标的对齐、基线怎么建 → 这个任务为什么不直接用大模型;传统模型在延迟、成本、可控性上的优势 → 上线后效果衰减、业务方不信任结果怎么处理;用 LLM 生成特征或标签的风险(噪声、分布偏移) → 什么时候不该用模型、规则与模型的取舍;什么场景值得引入 LLM、怎么评估收益 - 答实的标志:能定义标签与预测窗口;先建规则或简单模型基线;按延迟、成本、准确率、可维护性比较 LLM 与传统模型;LLM 标注要抽检一致性;有小模型蒸馏思路 ### 可解释性与合规约束 - 阶梯:为什么风控、医疗、金融场景要求模型可解释 → 特征重要性、SHAP、单调性约束各解决什么 → 模型拒绝了一个用户业务要求给出理由、监管要求证明无歧视怎么做 → 可解释性对模型精度与迭代速度的代价,什么场景该用评分卡而不是 GBDT - 答实的标志:区分全局与局部解释;对关键特征加单调性约束;检查敏感属性的代理特征;解释结果与业务规则对齐