算法岗的深度学习面试,这两年几乎绕不开同一件事:Transformer 要从头讲到尾。字节、百度、美团的面试里,"讲一下 Transformer""点积注意力为什么要除以根号 d_k""LayerNorm 和 BatchNorm 有什么区别"这几道题,换岗位、换面试官还是会遇到。原因不复杂:不管后面做推荐、搜索、视觉还是大模型,Transformer 都是共同的地基,面试官拿它来判断你是真的理解模型,还是只会调包。
这份合集从公开面经里把深度学习方向的八股题抽出来重新归类,一共 192 道题,分十个主题。它和机器学习面试题合集分工不同:那边讲过拟合、集成学习、聚类这类经典算法,这里专讲神经网络本身;大模型对齐、RAG、Agent 的部分在大模型与 AI Agent 面试题合集里。
怎么用这份题单:
- 题目后面括号里是近期实际问过这道题的公司,不代表完整名单,也不代表没标注的公司不问
- 深度学习八股的追问很有层次:先问"是什么",再问"为什么这样设计",最后问"换一种做法会怎样"。只背结构图,第二层就会卡住
- Transformer、注意力、归一化、位置编码这四块是所有算法岗的公共必考区,时间不够就先把它们吃透
主题导航:训练基础与归一化 · Transformer 架构 · 自注意力与多头注意力 · 位置编码 · BERT 与 GPT · 注意力变体与推理优化 · CNN 与计算机视觉 · RNN 与 LSTM · 词向量与分词 · 生成模型与多模态
训练基础与归一化
- 反向传播的过程和原理是什么?(华为 / 腾讯 / 小鹏)
- 梯度消失和梯度爆炸为什么发生,如何缓解?(快手 / 字节跳动 / 华为)
- 如何缓解深度神经网络中的梯度消失?(快手 / 百度 / 阿里巴巴)
- Sigmoid 导致梯度消失怎么处理?(快手 / 字节跳动 / 滴滴)
- ReLU 为什么能缓解梯度消失?(字节跳动 / 快手 / 滴滴)
- 常用的激活函数有哪些?各自的特点和选择?(快手 / 字节跳动 / 百度)
- Sigmoid 和 ReLU 的区别,各自适用什么场景?(字节跳动 / 快手 / 华为)
- ReLU 的定义和优缺点是什么?LeakyReLU 和它有什么区别?(快手 / 科大讯飞)
- Transformer 里用的是什么激活函数?为什么不用 Sigmoid?(字节跳动 / 京东 / 美团)
- SwiGLU 的原理是什么,比 ReLU 好在哪?(京东)
- softmax 为什么能做分类?公式是什么?(字节跳动 / 拼多多)
- softmax 和交叉熵具体怎么算?softmax 求导怎么推?(小红书 / 科大讯飞 / 平安)
- Dropout 的原理和作用是什么?(快手 / 滴滴 / 腾讯)
- Dropout 在训练和测试阶段有什么区别,预测时要做什么处理?(字节跳动 / 拼多多 / 美团)
- Dropout 为什么能防止过拟合?
- MHA 里的 dropout 和 MLP 里的 dropout 有什么区别?(科大讯飞 / 腾讯)
- Batch Normalization 的原理和实现是什么?训练和推理有什么差异?(美团 / 字节跳动 / 阿里巴巴)
- BatchNorm 在训练和预测时的参数有什么不同?
- Layer Normalization 的作用是什么?它和 BatchNorm 有什么区别?(字节跳动 / 美团 / 快手)
- 什么场景用 BatchNorm,什么场景用 LayerNorm?(字节跳动 / 高德)
- 为什么 Transformer 通常使用 LayerNorm 而不是 BatchNorm?(美团 / 网易 / 小红书)
- LayerNorm 和 BatchNorm 在训练时的梯度计算有什么本质区别?(阿里巴巴)
- 数据预处理阶段的归一化能不能替代 BatchNorm?为什么?
- RMSNorm 和 LayerNorm 有什么不同?它如何做算子融合?(商汤 / 百度)
- Pre-Norm 和 Post-Norm 的设计差异是什么?对训练稳定性有什么影响?(腾讯)
- 残差连接的目的是什么?为什么要有残差连接?(字节跳动 / 京东 / 小红书)
- 传统的残差机制有什么问题?业界有哪些新的改进方案?(蚂蚁集团)
面试官问「梯度消失和梯度爆炸为什么会发生?怎么缓解?」,看浮窗当场给你什么
面试官一开口,浮窗就出要点和能直接念的回答,被追问也接得住。共享屏幕时对面看不见。
核心要点 反向传播逐层连乘、激活函数导数小于 1 导致消失、权重偏大导致爆炸、换 ReLU 系列激活、残差连接、BatchNorm 或 LayerNorm、合理初始化、梯度裁剪
参考回答 根源在于反向传播是逐层连乘的。每一层的梯度都要乘上激活函数的导数和权重,像 Sigmoid 的导数最大只有 0.25,层数一深,连乘下去就趋近于零,这是梯度消失;反过来权重偏大时连乘会指数级放大,就是梯度爆炸。缓解的话,激活函数换成 ReLU 系列,加残差连接让梯度有一条直通的路,配合 BatchNorm 或 LayerNorm 稳住每层的分布,初始化用 Xavier 或 He;爆炸最直接的办法是做梯度裁剪,训 RNN 时基本是标配。
Transformer 架构
- Transformer 的结构是什么?(百度 / 字节跳动 / 拼多多)
- 讲一下 Transformer 的整体流程。(美团 / 阿里巴巴 / 华为)
- Transformer 由哪些核心模块组成?(京东 / 小红书)
- Transformer 的核心机制是什么?能不能用一个具体例子把所有概念串一遍?(华为 / 字节跳动 / 蚂蚁集团)
- Transformer 的 Encoder 详细结构是怎样的?(字节跳动 / 小红书 / 阿里巴巴)
- Transformer 的 Decoder 结构是怎样的,详细过程是什么?(美团 / 小米 / 快手)
- Encoder 和 Decoder 在结构上有哪些不同?(百度 / 腾讯 / 科大讯飞)
- Encoder 和 Decoder 之间是怎么交互的,两边的多头注意力有什么区别?(字节跳动 / 小红书)
- Encoder-only、Decoder-only、Encoder-Decoder 三种架构有什么区别?(科大讯飞 / 百度 / 淘天)
- Transformer 中 mask 的作用是什么?因果 Mask 加在什么位置?(百度 / 美团)
- 因果注意力和双向注意力有什么区别?(字节跳动 / 百度)
- Transformer 为什么能在训练时并行计算?并行能力体现在哪?(百度 / 腾讯 / 理想)
- Transformer 和 RNN、CNN 相比有哪些优势?(百度 / 字节跳动 / 腾讯)
- Transformer 为什么比 RNN 更适合大模型?(阿里巴巴 / 字节跳动)
- Transformer 的训练和推理有什么区别?(科大讯飞)
- Transformer 里有梯度消失和梯度爆炸的情况吗?(腾讯)
- Transformer 的归一化层、线性层、激活函数的先后顺序是怎样的?(钉钉)
- LayerNorm 放在 Attention 前面还是后面,有什么区别?(滴滴 / 高德)
- Transformer 的参数量怎么估算?(百度 / 腾讯)
- Transformer 自注意力的时间和空间复杂度是多少,各模块的复杂度怎么推?(字节跳动 / 京东 / 腾讯)
- Transformer 中哪个模块计算量最大,怎么优化?(高德)
- Llama 相比原始 Transformer 做了哪些结构优化?(百度 / 小红书 / 阿里巴巴)
- 从 Transformer 到 Llama 系列经历了哪些改变?(科大讯飞 / 字节跳动)
- Transformer 如何应用到序列推荐里?(美团 / 高德)
- 手撕 Transformer。(阿里巴巴 / 华为 / 腾讯)
自注意力与多头注意力
- 什么是 attention 机制?它的本质是什么,能从数学角度解释吗?(快手 / 百度 / 阿里巴巴)
- Attention 的公式是什么?计算过程怎么走?(美团 / 腾讯 / 京东)
- Q、K、V 分别是什么,是怎么生成的?(字节跳动 / 小红书 / 百度)
- self-attention 为什么要拆成 Q、K、V 三个矩阵?(百度)
- 点积注意力为什么要除以根号 d_k?(快手 / 字节跳动 / 科大讯飞)
- 不除以根号 d_k 会发生什么,除以别的数行不行?
- 为什么注意力要用 softmax?能去掉吗?(美团 / 商汤 / 腾讯)
- 为什么用点积而不是余弦相似度?(商汤 / 腾讯)
- self-attention 和 cross-attention 有什么区别?(滴滴 / 小米 / 京东)
- self-attention 和 target-attention 的优缺点是什么?(美团)
- 多头注意力的原理是什么?(美团 / 腾讯 / 字节跳动)
- 为什么要用多头,比单头好在哪?(小红书 / 美团 / 阿里巴巴)
- 单头能不能达到多头的效果?(淘天 / 字节跳动 / 快手)
- 多头注意力怎么保证每个 head 学到不同的东西?(百度 / 阿里巴巴)
- Multi-head attention 的参数量怎么算?(小红书 / 阿里巴巴)
- 知道哪些注意力机制?(美团 / 百度)
- 稀疏注意力的原理是什么?(百度 / 美团 / 阿里巴巴)
- 注意力矩阵可以怎么解释?(腾讯)
- Attention 里数据的 shape 是 batch first 还是 seq_len first?(快手 / 百度)
- masked attention 怎么实现?(科大讯飞 / 美团)
- 自注意力和位置编码直接相加,换成 concat 会有什么影响?(快手 / 饿了么)
- 手撕多头自注意力。(腾讯 / 字节跳动 / 快手)
- 手写 Multi-Head Attention,不能用 torch.nn.MultiheadAttention。(字节跳动 / 百度 / 腾讯)
- 用 PyTorch 写一个 self-attention。(字节跳动 / 阿里巴巴 / 理想)
- 实现 Grouped Query Attention。(腾讯)
位置编码
- 位置编码的作用是什么,为什么需要它?(腾讯 / 商汤 / 滴滴)
- 有哪些位置编码?各自的异同是什么?(字节跳动 / 百度 / 美团)
- Transformer 里怎么处理位置信息?(快手 / 拼多多 / 理想)
- 为什么 Transformer 的位置编码用正弦余弦?(字节跳动 / 阿里巴巴 / 快手)
- 绝对位置编码和相对位置编码有什么区别?(腾讯 / 小红书 / 字节跳动)
- 为什么用 RoPE 而不用绝对位置编码?RoPE 能表示绝对位置信息吗?(商汤 / 腾讯 / 百度)
- RoPE 的核心原理和结构是什么?(腾讯 / 字节跳动 / 美团)
- RoPE 相比正弦位置编码有哪些优势?(腾讯)
- RoPE 在长上下文场景下会遇到什么问题,怎么解决?(百度 / 腾讯)
- 为什么说 RoPE 理论上可以外推?(腾讯)
- RoPE 和 ALiBi 两种相对位置编码的原理分别是什么?(京东)
- M-RoPE 比原来的 RoPE 有什么改进?(京东)
- BERT 和 Transformer 的位置编码有什么区别?(字节跳动 / 百度)
- Qwen、Llama 这些模型用的是什么位置编码,有什么优势?(商汤 / 美团 / 阿里巴巴)
BERT 与 GPT
- BERT 的基本原理是什么?(滴滴 / 腾讯 / 美团)
- BERT 和 Transformer 分别是什么,有什么区别?(美团 / 字节跳动 / 快手)
- 请介绍 BERT 的模型架构、输入 Embedding 的组成。(京东 / 快手 / 字节跳动)
- BERT 的预训练任务有哪些,细节是什么?(科大讯飞 / 字节跳动 / 腾讯)
- BERT 的掩码语言模型机制是怎么工作的?(快手)
- BERT 中的注意力机制、公式、参数矩阵分别是怎样的?(知乎)
- BERT 的参数量怎么计算?(商汤 / 美团)
- BERT 相比原始 Transformer 做了哪些优化?(美团)
- BERT 和 RoBERTa 的区别是什么,RoBERTa 做了哪些改进?(商汤 / 字节跳动 / 美团)
- BERT 有什么缺点,有哪些改进模型?(荣耀)
- BERT 处理超长文本怎么办?(京东)
- BERT 与 GPT 有什么区别?(科大讯飞 / 腾讯 / 百度)
- GPT 的原理是什么,结构上有什么特点?(美团 / 平安)
- ELMo 和 GPT 的区别是什么?(小红书)
- Word2Vec 和 BERT 的区别是什么?(高德)
- NLP 的发展路径是怎样的?(科大讯飞 / 理想)
- LLM 架构和原始 Transformer 架构有哪些不同?(小鹏)
注意力变体与推理优化
- FlashAttention 解决什么问题,如何实现?(百度 / 快手 / 小米)
- FlashAttention 为什么快,优化的是算力还是访存?(百度 / 腾讯)
- FlashAttention v1 和 v2 的主要改进点分别是什么?(腾讯 / 百度)
- FlashAttention 的数学推导怎么写?(百度)
- MHA、MQA、GQA、MLA 的结构有什么区别?(阿里巴巴 / 小红书 / 百度)
- GQA 和 MQA 相比标准 MHA 的差异是什么,对推理系统意味着什么?(腾讯)
- KV Cache 在增量推理中起什么作用?(小米 / 阿里巴巴 / 高德)
- 为什么推理时只缓存 K 和 V,不缓存 Q?(百度)
- KV Cache 的代价是什么,长序列推理时显存怎么估算?(阿里巴巴)
- KV Cache 和 Prompt Caching 的区别是什么?(百度)
- PagedAttention 如何管理 KV Cache、减少内存碎片?(百度 / 小红书 / 美团)
- vLLM 用了哪些关键技术来优化推理?(蚂蚁集团 / 阿里巴巴)
- 上下文特别长的时候,attention 的复杂度怎么优化?(百度)
- 针对 Transformer 推理过程,你会采用哪些优化手段?(腾讯)
- Llama 是怎么优化注意力计算的?(网易 / 美团)
- MoE(混合专家模型)的工作原理是什么?(字节跳动 / 阿里巴巴 / 快手)
- MoE 和传统 Transformer 的核心区别是什么,用在 Transformer 的哪个部分?(快手 / 阿里巴巴)
- DeepSeek MoE 的路由机制细节是什么?(腾讯)
- MoE 的 expert parallel 是怎么做的?(美团)
- MoE 里专家负载不均、坍缩的原因是什么,怎么解决?(哔哩哔哩 / 美团)
CNN 与计算机视觉
- 什么是卷积神经网络,CNN 的原理是什么?(京东 / 华为 / 快手)
- 卷积的计算过程是怎样的?多通道输入时,输出也是多通道吗?
- CNN 的参数量怎么计算?(微软 / 快手 / 百度)
- 1×1 卷积的作用是什么?(美团 / 携程)
- 池化层的作用是什么,最大池化和平均池化怎么选?
- CNN 有哪些典型的模型结构?(科大讯飞)
- CNN 和 RNN 的区别是什么?(百度 / 字节跳动)
- CNN 和 GCN 的区别是什么?(字节跳动 / 美团)
- ResNet 的原理是什么,残差结构为什么能缓解梯度消失?(美团 / 字节跳动 / 百度)
- ResNet 里的网络连接方式是怎样的?(美团)
- Channel attention(SENet)的原理是什么?(科大讯飞)
- CNN 和 Transformer 有什么区别?(华为 / 商汤)
- ViT 和 CNN 有什么区别?(字节跳动 / 美团)
- ViT 的 patch embedding 是怎么做的,一般怎么预训练?(科大讯飞 / 阿里巴巴)
- Transformer 和计算机视觉是怎么结合的?(理想)
- one-stage 和 two-stage 目标检测有什么区别?(华为 / 字节跳动 / 百度)
- 2D 目标检测大体经历了哪几个发展阶段?(滴滴 / 百度)
- 目标检测是怎么做的?(腾讯 / 钉钉)
- 讲一下 YOLO 的原理。(京东 / 转转)
- YOLO 和 R-CNN 的区别是什么?(科大讯飞)
- YOLOv3 和 YOLOv8 有什么区别?(得物 / 百度 / 高德)
- YOLOv3 怎么选择 Anchor?(阿里巴巴)
- YOLO 的损失函数是怎样的,GIoU loss 怎么算?(科大讯飞 / 阿里巴巴 / 荣耀)
- IoU 怎么计算,目标检测里一般有哪些损失优化?(百度)
- CV 和 NLP 的区别与联系是什么?Transformer 之下能否大一统?(百度)
RNN 与 LSTM
- RNN 的缺点是什么?(百度 / 美团)
- RNN 为什么会梯度消失,梯度消失和梯度爆炸的原因及解决方法?(京东 / 百度 / 字节跳动)
- 介绍一下 LSTM。(京东 / 华为 / 美团)
- LSTM 的内部结构是什么,有几个门,分别做什么?(快手 / 科大讯飞 / 腾讯)
- LSTM 中每个 Cell 的输入有哪些?(科大讯飞)
- LSTM 的原理、优点和缺点是什么?(美团 / 腾讯 / 百度)
- LSTM 为什么可以缓解梯度消失?(快手 / 百度)
- RNN 和 GRU 的区别是什么,网络结构有何不同?(京东)
- RNN、LSTM、Transformer 都讲一讲。(拼多多 / 百度 / 科大讯飞)
- RNN 和 Transformer 的优缺点各是什么?(理想 / 拼多多)
- LSTM、CNN、Transformer 各自的优缺点是什么,什么情况用哪个?(科大讯飞 / 腾讯)
- Transformer 相较于 RNN,性能为什么会提升?(小米 / 饿了么)
- Transformer 是怎么刻画时序信息的?(滴滴)
- TextRNN 的网络结构是怎样的?(字节跳动)
- 为什么基于 GRU 的行为序列召回,效果可能比 ItemCF 更差?(携程)
- 了解 CNN、RNN 这些神经网络吗?(腾讯 / 科大讯飞)
词向量与分词
- 什么是 Embedding,词嵌入和句嵌入有什么不同?(阿里巴巴 / 字节跳动)
- Embedding 是如何工作的?(字节跳动 / 拼多多)
- Word2Vec 是如何训练的?(美团 / 科大讯飞)
- Word2Vec 的两种训练方式 CBOW 和 Skip-gram 有什么区别?
- tokenizer 是怎么把文本切成 token 并做 embedding 的?(商汤 / 科大讯飞)
- BPE 分词的原理是什么?(小红书 / 滴滴)
- Transformer 的词表是如何构建的?(钉钉)
- 为什么 BGE 这类向量模型通常比直接用 BERT 做相似度更好?(阿里巴巴 / 高德)
- NLP 里有哪些常见的数据增强方法?(字节跳动 / 百度 / 腾讯)
生成模型与多模态
- 了解 GAN 吗?GAN 的训练过程是怎样的?(vivo / 钉钉)
- GAN 和扩散模型的区别是什么?(京东)
- 了解扩散模型吗?(腾讯 / 百度 / 知乎)
- VAE 和普通自编码器有什么区别?
- VQ-VAE 使用什么损失函数,训练过程是怎样的?(淘天)
- RQ-VAE 和 VQ-VAE 有什么区别?(字节跳动)
- 为什么要在推荐系统里引入 RQ-VAE?(字节跳动 / 美团)
- RQ-VAE 的训练中会不会出现码本坍塌,怎么处理?(美团)
- CLIP 是怎么训练的,正负样本怎么选?(字节跳动 / 百度 / 快手)
- BLIP 和 CLIP 的区别与联系是什么?(字节跳动 / 淘天)
- 多模态模型的大致结构是什么(图像编码器 + 连接层 + LLM),最容易踩坑的点在哪?(拼多多)
- BLIP-2 中的 Q-Former 起什么作用,为什么要加一个 Query Transformer?(科大讯飞 / 字节跳动)
- 多模态 Embedding 里怎么平衡文本语义和图像视觉特征的权重?(淘天 / 阿里巴巴)
- 在推荐场景里,MMoE 和 PLE 各自解决什么问题,为什么会出现专家坍缩?(字节跳动 / 哔哩哔哩 / 滴滴)
备考重点
深度学习八股的核心区别在于它考的是"为什么这样设计",不是"结构长什么样"。Transformer 是出现频率最高的一块,几乎每场算法岗面试都会碰到,但很少停在"讲一下结构",追问会落到"为什么除根号 d_k""为什么用 LayerNorm 不用 BatchNorm""多头相比单头到底多了什么"。这几个"为什么"能讲清楚,整个 Transformer 部分基本就稳了。
建议按这条主线准备:先把一次前向传播从 token 到输出完整走一遍(embedding、位置编码、注意力、残差加归一化、FFN),再顺着每一步补"为什么"。注意力的公式、复杂度、手撕代码这三件事要能连着说,因为手撕多头注意力是出现频率最高的编程题之一,写的时候面试官会顺手追问 shape 和 mask。
如果目标是推荐、视觉或搜索岗,也别只准备大模型那一半:CNN 与残差、BatchNorm 的训练推理差异、目标检测的演进、LSTM 的门结构,这些经典内容在这几类岗位里依然是常规题。而面大模型岗,位置编码(尤其是 RoPE)、KV Cache、FlashAttention、MoE 这一组推理与结构题的权重明显更高,这部分可以接着看大模型与 AI Agent 面试题合集。
常见问题
这份题单是怎么整理出来的?
来源是公开面经,把深度学习方向反复出现的八股题抽出来重新归类,不包含面灵用户的面试内容。括号里标注的是近期实际问过这道题的大厂,只作参考,不代表完整名单。
深度学习八股和机器学习八股应该先准备哪个?
看目标岗位。面的是推荐、搜索、数据挖掘这类偏传统算法的岗位,机器学习基础是主战场,深度学习部分主要补 Transformer、归一化和激活函数;面的是视觉、NLP 或大模型岗,深度学习是主战场,机器学习只需要把过拟合、评估指标这些公共题补齐。
面试官问 Transformer,一般会追问到什么程度?
通常是三层:先让你讲整体结构,再追问某个设计的原因(根号 d_k、LayerNorm、残差、多头),最后落到手写或复杂度推导。能把每一步的 shape 和计算量讲出来,比背熟结构图更容易拿分。
没有深度学习项目经验,这部分怎么准备?
优先吃透设计动机和对比关系(LayerNorm 对 BatchNorm、绝对位置编码对 RoPE、RNN 对 Transformer),这是追问最集中的区域。再自己用 PyTorch 手写一遍多头注意力和一个简单的 Transformer block,跑通以后回答细节问题会踏实很多。
更多岗位合集
C++面试题与八股文汇总:205 道内存管理、虚函数、智能指针、STL 高频真题分类整理(2026 面经)
面灵AI整理的 C++ 八股合集,覆盖内存管理与指针、智能指针与 RAII、虚函数与多态、C++11 新特性与移动语义、STL 容器、关键字、编译链接、多线程与手撕题,标注近期实际出题的大厂。
运维面试题 / 运维八股 Top 25:运维与基础架构岗高频面经热度榜(2026 年 10 月版)
运维、SRE、基础架构岗位公开面经整理:25 道高频运维面试题与八股,标注热度等级和近期出题的知名大厂,附 Linux、网络、K8s、容器的答题框架。
机器学习面试题与八股文汇总:154 道经典算法真题分类整理(2026 面经)
面灵AI整理的机器学习经典八股合集,覆盖过拟合正则化、模型评估、集成学习、无监督聚类、优化与损失函数、强化学习基础,标注近期实际出题的公司,算法岗和大模型岗都会被追问到。