第3章:技术基础——机器学习与深度学习核心

本章聚焦面试最高频的ML/DL原理题,帮你构建“数学→模型→优化→评估”的完整回答闭环。掌握以下3个核心问答、1个实战项目模板、1组大厂模拟对话,可覆盖80%的技术基础考核点。

① 理解问题 辨识过/欠拟合 ② 数学原理 损失/激活/正则 ③ 模型选择 CNN/RNN/Transformer ④ 优化策略 学习率/BN/残差 ⑤ 评估 回答任何ML/DL问题,依次展开这5个层次,证明「理论→实践」闭环能力

▌面试问答 1:过拟合的原因及解决方法

考察点正则化原理、泛化能力理解、实际调参经验
回答框架① 给出准确定义 → ② 罗列3个主要原因(模型复杂/数据不足/噪声)→ ③ 按优先级给出5种解法(数据扩增/L1/L2/Dropout/早停)→ ④ 结合业务场景举例
示例回答“过拟合是模型在训练集上表现优异但验证集泛化差,本质是捕获了噪声。我常用数据增强+Dropout(0.5)组合,在CV项目中将验证损失从0.8降至0.45;同时监控训练/验证Loss差值,差值>0.3时触发早停。”
可能追问“L1和L2正则的区别?”“Dropout在推理时如何工作?”“你在项目中最有效的反过拟合手段是什么?”
避坑提醒避免只说理论不说实践;不要回避正则化和数据增强的代价(训练变慢、需要更多epoch)

公司侧重点:字节/快手偏重线上推理时的过拟合表现(如推荐系统AUC退化);Google/DeepMind看重理论推导(如VC维解释)。

面试官画像:30-35岁资深工程师,关注你对“训练-验证-测试”三集划分的敏感度,期待看到你实际诊断过拟合的step-by-step日志。

▌面试问答 2:为什么ReLU比sigmoid更好?

考察点激活函数数学特性、梯度消失理解、实际网络设计经验
回答框架① 对比梯度范围:sigmoid梯度饱和(0~0.25) vs ReLU梯度恒为1(输入>0)→ ② 引出梯度消失问题对深层网络的致命性 → ③ 补充ReLU的稀疏性、计算效率 → ④ 提及ReLU的缺点(Dead ReLU)及变体Leaky ReLU/ELU
示例回答“ReLU非饱和区梯度恒为1,有效缓解梯度消失;而且稀疏激活使网络更高效。我在ResNet-50中全部使用ReLU,训练速度比sigmoid快3倍,且Top-1准确率提升1.2%。但需注意Dead ReLU问题,通过合理初始化学习率来控制。”
可能追问“ReLU输出均值非零怎么办?”“说出至少两种ReLU变体及适用场景”“在GAN中为何有时用Leaky ReLU?”
避坑提醒不要只说“ReLU快”,要用数学解释梯度变化;同时承认ReLU不完美,展示对后进替代方案的了解。

公司侧重点:腾讯/阿里侧重落地中的训练效率(如何用ReLU加速广告CTR模型);微软研究院可能追问深度理论(如ReLU对核近似的影响)。

面试官画像:偏研究型(PhD背景),喜欢让你手推sigmoid导数并在纸上画出梯度衰减曲线。

▌面试问答 3:Batch Normalization的原理与作用

考察点归一化理论、训练稳定性、训练与推理差异
回答框架① 核心操作:对mini-batch计算均值方差,做归一化 + 可学习缩放平移 → ② 四大作用:缓解Internal Covariate Shift / 允许更大学习率 / 起到正则化效果 / 平滑损失曲面 → ③ 训练与推理差异:训练用batch统计量,推理用滑动平均 → ④ 适用场景:CNN全连接层效果好,但RNN/NLP中慎用
示例回答“BN将每层输入拉回N(0,1)再缩放,有效防止激活值饱和。我的微调项目去掉BN后训练发散,加入后收敛时loss降了0.15。特别注意推理时要切换为全局统计量,通过torch.eval()或tf.keras.layers.BatchNormalization(training=False)实现。”
可能追问“BN和LayerNorm的区别?”“小batch size下BN效果为什么差?”“你如何调试BN引入的额外参数?”
避坑提醒不要只背定义,要结合具体框架代码说明推理模式;女生名面试官常问“BN在分布式训练中的同步问题”。

公司侧重点:美团/拼多多看重BN在GPU多卡训练中的实际配置;字节/百度面试官会深问BN与Weight Decay的协同作用。

面试官画像:一线算法leader,期望你不仅能解释原理,还能快速指出“当batch_size=2时BN会怎样”。

S 场景 对话系统推理 延迟>500ms T 任务 将P99降至200ms 保持生成质量 A 行动 算子融合+量化 KV cache + 批处理 R 结果 P99 180ms QPS提升2.5倍 △ 反思 量化后BLEU-0.8 需改进蒸馏方案 ⏺ 迁移要点 P99优化方法论 可复用于检索

▌项目案例:大模型对话系统推理优化

业务背景为金融客服打造7B对话模型,线上单次推理P99延迟500ms,QPS不足,影响用户体验
规模指标日请求量50万,模型参数量7B,显存占用14GB(FP16),用户等待超时率8%
技术栈PyTorch 2.0 + vLLM + TensorRT-LLM + A100 80G
核心难点注意力机制在长序列下显存膨胀;FP16/INT4量化导致生成质量下降
面试高频追问
  • “你是如何确定量化精度从FP16降到INT4的?中间做过哪些实验?”
  • “KV cache的实现细节?如何计算最大支持序列长度?”
  • “为什么选择vLLM而不是FasterTransformer?对比过性能吗?”
可迁移回答话术 “任何推理优化首先做profile,找到瓶颈(如Attention占60%),然后分级优化:① 算子替换(FlashAttention)② 量化(SmoothQuant)③ 系统级(动态批处理+Pipeline并行)。关键在于建立“延迟-精度”帕累托曲线供业务决策。”
💡 加分技巧:面试中主动给出量化前后的BLEU/Rouge指标对比、TPS提升倍数,让数字说话。

▌大厂模拟:如何优化类模型推理速度?

面试官:你的团队上线了一个6B参数的对话模型,但QPS只有30,无法支撑白天流量高峰。你作为负责人,会如何优化?

候选人回答(普通):“我们可以用GPU集群来加速,或者把模型变小一点,比如用蒸馏。” ❌ 太笼统,无具体方案

优秀答案:“首先profile出最大耗时在Attention计算(约占70%),我会分三步优化:① 转为INT8量化(采用SmoothQuant)降低显存;② 使用FlashAttention减少访存;③ 启用vLLM的Continuous Batching。预估QPS可从30提升到120。” ✅ 给出具体方法+预期数字

专家答案:“我会先建立延迟分层模型:prefill阶段占25%,decoding占75%。针对decoding瓶颈,采用PagedAttention + KV cache异步回收技术,将显存碎片率从20%降到3%。接着做层融合(fuse QKV投影),减少kernel launch开销。最后根据业务容忍度,对非核心层做FP8训练后量化。整套方案在内部benchmark上P99从480ms降至150ms,QPS达到200。” 🏆 行业级系统性方案+微观优化细节

面试官追问:“你提到PagedAttention,说说它解决了什么问题?和传统的KV cache实现有何不同?”

专家回应:“传统KV cache为每个请求预分配最大长度显存,造成严重碎片。PagedAttention将逻辑页映射到非连续物理页,动态分配,使显存利用率提升80%。同时支持跨请求共享,在批处理时进一步降低显存。我们实际测试中,相同显存下能多容纳40%的并发请求。”

📌 本章回答框架总结

ML/DL问题通用回答框架:问题定义 → 数学原理解析 → 模型/方法选择 → 优化方案 → 评估验证。始终带着“业务代价”的视角,展示技术选型的权衡过程。

面试官画像:基础章节面试官多为一线技术骨干(3-5年),考察点集中在“是否真正用过”而非“是否看过”。多举实际项目中的数字和失败案例,比背诵公式更有说服力。

公司侧重点速查表:

| 公司     | 看重方向                       | 高频追问点                     |
|----------|-------------------------------|-------------------------------|
| Google   | 理论推导+来源             | 激活函数梯度推导、BN细节   |
| ByteDance| 落地效果+调参经验             | 你实际遇到的过拟合case         |
| 阿里     | 工业级稳定性+可扩展性         | 分布式BN、多卡NCCL通信         |
| 腾讯     | 多模态/业务结合               | 不同任务下激活函数选择差异     |
⚠️ 避坑总提醒:切勿在面试中给出“我读过所以我知道”的姿态。算法负责人岗期望你给出团队工程落地的真实经历,包括失败选项和回退方案。所有数字必须精确(如“准确率提升1.2%”而非“提升了一点”)。