algorithm · git:20260919.2ea5304 · 2026-09-19 · sha256 50f28222cc016b43
algorithm git:20260919.2ea5304A
Immutable. This exact content never changes and is served at /api/v1/blob/50f28222cc016b43.
--- name: algorithm description: 算法岗怎么面:机器学习基础、深度学习与 Transformer、模型训练与部署、实验设计与 AB 测试、推荐搜索 CV NLP 业务落地。算法工程师、推荐、搜索、CV、NLP、机器学习岗位加载。 keywords: [算法工程师, 机器学习, 深度学习, 推荐算法, 搜索算法, 计算机视觉, 自然语言处理, 模型部署, AB 实验, 特征工程, transformer, pytorch, machine learning, CV, NLP] layer: domain --- ## 面试官在意什么 算法岗在国内分为搜索推荐广告(字节、美团、阿里、快手需求最大)、CV、NLP 与多模态、风控与数据挖掘、机器学习平台等方向。真实面试通常三到四轮:一面考机器学习与深度学习基础加一道手撕(LeetCode 中等或手写模型组件如 attention、交叉熵、IoU),二面深挖项目与业务方向的模型演进(推荐的召回粗排精排、CV 的检测分割、NLP 的预训练与微调),三面考实验设计、业务理解与工程落地,主管面看方向匹配与潜力。 校招候选人的项目多为论文复现、比赛、实验室课题或实习中的一个模块,面试官不期待业务成果,看的是对基础公式的推导能力、对实验结果的诚实评估、能否解释每一个超参数与设计的理由。社招则必须交代线上指标、AB 实验的置信度、模型上线后的性能与稳定性问题,以及为什么这个方案而不是更简单的基线。 面试官最在意三件事:第一,基础是否扎实——损失函数、优化器、正则化、评估指标能否推导而不是背结论;第二,实验是否可信——有没有对照组、有没有泄漏、离线指标与线上指标背离时怎么判断;第三,工程落地——模型的延迟、吞吐、特征一致性、监控与回滚,算法工程师不只是训练模型的人。 怎么问才像这个方向的面试官: - 基础题必须追到公式或机制层面(推导、复杂度、统计量),只会背结论按不理解处理;手撕以模型组件为主,不出纯脑筋急转弯。 - 项目题的核心是实验可信度:验证集划分、泄漏、基线、置信度四项必问,任何一项答不出都要深挖。 - 校招看基础推导与对实验的诚实评估,不苛求线上成果;社招必须交代线上指标、AB 结论与部署性能,没有线上经历的按离线项目追问。 - 不考模型与论文的时效性名词("最新的 SOTA 是什么"),考选型理由与失败案例;候选人的方向与题目方向不同时用其熟悉的任务替代。 ## 项目 / 实习怎么深挖 简历上出现下面这类经历时从哪里切、追什么。追到候选人能说出机制、数字的来源与一次真实的故障或取舍才算实;只有框架名与结论、说不出自己那一段的,记为危险信号。通用的追问方法见 project-deep-dive。 - 简历出现推荐或广告模型 → 追召回样本构造、负采样、离线与线上指标的对应关系、AB 实验的置信度。 - 简历出现"准确率提升 X%" → 追指标定义、验证集划分方式、有没有泄漏、基线是什么。 - 简历出现论文复现 → 追复现结果与原文差距、差异归因、自己改动的部分。 - 简历出现比赛名次 → 追关键提升来自哪一步、集成的贡献、有没有过拟合榜单。 - 简历出现大模型微调 → 追数据来源与配比、评测集、与 RAG 或提示工程方案的对比。 - 简历出现模型上线 → 追 QPS、p99 延迟、部署方式、监控与回滚。 - 简历出现特征工程 → 追特征重要性怎么算、线上线下一致性怎么保证。 - 简历出现 CV 或 NLP 具体任务 → 追损失函数与后处理细节、失败样本分析。 ## 常见失守与危险信号 - 机器学习基础与模型选择:过拟合只答"加正则";说不出 GBDT 与随机森林的差异来源;把 AUC 高当作模型好。 - 评估指标与业务目标:AUC 只会背"ROC 下面积";不知道全局 AUC 与用户内 AUC 的差别;把离线指标当最终目标。 - 深度学习训练细节:BN 只答"归一化"说不出推理时用什么统计量;NaN 只答"调小学习率";不知道 warmup 的作用。 - Transformer 与注意力机制:说不出除以根号 d 的原因;多头只答"多个视角";不知道 attention 是二次复杂度。 - 大模型微调与应用:只会背 LoRA 的名字;把微调当作所有问题的解法;没有评测集就说效果好。 - 推荐系统链路:说不出各层的候选量级;负样本只答"随机采";不知道曝光未点击样本的偏差。 - 特征工程与特征一致性:不知道特征穿越是什么;线上线下一致性只答"用同一份代码";说不出特征重要性的计算方式。 - 实验设计与 AB 测试:不知道显著性与样本量的关系;实验流量随便切;不知道 AA 实验的作用。 - 模型部署与推理优化:部署只答"用 Flask 包一下";量化只知道"变小变快";不知道 GPU 利用率低通常是数据加载或 batch 问题。 - 数据质量与标注:随机划分时序数据;不平衡只答"过采样";没有检查过数据重复。 - CV 与 NLP 方向专项:只会报模型名字;说不出 NMS 的阈值影响;不知道 beam search 与贪心的差别。 - 业务落地与问题定义:拿到问题直接选模型;没有基线;说不出模型失效的场景。 ## 常考主题清单 只列名字、阶梯与答实的标志,作"问到哪一层算实"的参考;问哪些、问几道由这份 JD 与这份简历定,不是配额。 ### 机器学习基础与模型选择 - 阶梯:过拟合与欠拟合的判断与对策 → 偏差方差分解、正则化的作用机制、树模型与线性模型的适用场景 → 训练集表现好线上差的归因(分布偏移、泄漏、标签噪声) → 可解释性、训练成本与效果的取舍,什么时候该用简单模型 - 答实的标志:能区分泄漏、时间穿越、分布漂移;知道正则化对应的先验;能解释树模型对特征尺度不敏感的原因。 ### 评估指标与业务目标 - 阶梯:precision、recall、AUC、F1 的定义与适用 → AUC 的排序含义、正负样本不平衡下指标的选择、GAUC 与 AUC 的差异 → 离线指标提升但线上指标不动的原因 → 指标与业务目标的对齐,代理指标的风险 - 答实的标志:能解释 AUC 的概率含义;知道样本与线上分布的差异;能提出更贴近业务的代理指标。 ### 深度学习训练细节 - 阶梯:梯度消失与爆炸的原因与对策 → BatchNorm 与 LayerNorm 的计算、训练与推理阶段的差异、Dropout 的作用 → loss 不下降或 NaN 的排查顺序、学习率与 batch size 的关系 → 训练稳定性与收敛速度的取舍、混合精度的风险 - 答实的标志:有梯度裁剪、混合精度溢出、数据异常等排查清单;能解释 BN 在 batch 小时失效;知道学习率调度策略。 ### Transformer 与注意力机制 - 阶梯:self-attention 的计算与复杂度 → 为什么除以根号 d、多头的作用、位置编码(绝对、相对、RoPE) → 长序列下的显存与速度问题、KV cache 的作用 → encoder-only、decoder-only、encoder-decoder 的选型,预训练目标对下游任务的影响 - 答实的标志:能推导 softmax 饱和与缩放的关系;知道 FlashAttention 或稀疏注意力的思路;能解释 RoPE 的外推特性。 ### 大模型微调与应用 - 阶梯:全参数微调与 LoRA 等参数高效方法的差异 → LoRA 的低秩假设与显存账、SFT 与 RLHF/DPO 的定位 → 微调后通用能力下降、幻觉增多怎么诊断 → 微调、RAG、提示工程的选择依据与成本临界点 - 答实的标志:能算 LoRA 的参数量与显存节省;知道灾难性遗忘与数据配比;有可执行的评估方案。 ### 推荐系统链路 - 阶梯:召回、粗排、精排、重排各解决什么问题 → 双塔模型的结构与样本构造、负采样、特征交叉模型(DeepFM、DIN、MMoE)的动机 → 新模型离线好线上差、召回与排序目标不一致、样本选择偏差怎么处理 → 多目标权衡、冷启动与探索的取舍 - 答实的标志:能说出各层的目标与约束;知道 batch 内负采样与流行度修正;能解释召回与精排的目标偏差。 ### 特征工程与特征一致性 - 阶梯:特征的类型与处理方式(离散、连续、序列、交叉) → embedding 的构造与共享、特征重要性分析 → 特征穿越、训练与线上特征不一致的排查 → 特征数量、实时性与服务延迟的取舍 - 答实的标志:有特征快照与回放对比的方案;知道实时特征的延迟窗口;能设计特征监控。 ### 实验设计与 AB 测试 - 阶梯:AB 实验的基本原则与分层分桶 → 样本量、显著性、置信区间的计算与最小可检测效应 → 实验结果不显著、AA 实验不平、新奇效应与网络效应怎么处理 → 多个实验互相干扰的分层设计、短期指标与长期指标的取舍 - 答实的标志:能估算样本量;知道方差缩减方法;能识别辛普森悖论与分桶不均;对全量决策有明确标准。 ### 模型部署与推理优化 - 阶梯:训练框架到推理服务的导出路径(ONNX、TorchScript、TensorRT) → 量化、蒸馏、剪枝的原理与精度代价,批处理与动态 batch → 线上推理 p99 延迟突增、GPU 利用率低、量化后精度掉太多怎么排查 → 延迟、吞吐、成本、精度的四维取舍,CPU 与 GPU 部署选择 - 答实的标志:能说出 PTQ 与 QAT 的差异;知道 profiling 工具;有 batching、缓存、模型并行等延迟优化手段。 ### 数据质量与标注 - 阶梯:数据集怎么划分、为什么要按时间或用户划分 → 标签噪声的影响与处理、类别不平衡的采样与加权 → 数据泄漏怎么排查、标注不一致怎么度量 → 数据规模与标注成本的取舍、主动学习与弱监督何时值得 - 答实的标志:能说出划分方式与业务场景的对应;知道标注一致性指标;有数据版本管理的意识。 ### CV 与 NLP 方向专项 - 阶梯:经典任务的模型演进(检测、分割、预训练语言模型) → 损失函数与后处理(IoU、NMS、CTC、beam search)的细节 → 小目标漏检、领域迁移效果差、生成重复等具体问题的归因 → 精度、速度与标注成本的取舍,何时用预训练大模型替代专用模型 - 答实的标志:能解释损失与后处理的作用;有领域迁移与数据增强的方案;知道大模型替代的成本边界。 ### 业务落地与问题定义 - 阶梯:业务问题怎么转成机器学习问题 → 目标函数与业务目标的对齐、基线怎么建 → 上线后效果衰减、业务方对结果不信任怎么处理 → 什么时候不该用模型、规则与模型的取舍 - 答实的标志:能定义标签与预测窗口;先建规则或简单模型基线;有监控与退化处理方案。