深度学习面试八股文(4)—— transformer专题

  1. 第一部分 (1-15)Transformer 核心基础 (聚焦 Attention Is All You Need 原文,包括 QKV 计算、复杂度、结构细节)。
  2. 第二部分 (16-28)架构演进与注意力变体 (Encoder/Decoder 对比、MHA/MQA/GQA 详解、大模型架构选型)。
  3. 第三部分 (29-40)位置编码与推理优化 (RoPE、ALiBi、KV Cache、位置编码外推等进阶难题)。

下面是 第一部分 (1-15/40):Transformer 核心原典。这部分是所有大模型面试的"必考题"。


第一部分:Transformer 核心基础

1. Self-Attention 的核心公式与物理含义

问题: 请写出 Scaled Dot-Product Attention 的计算公式,并解释 Q, K, V 的物理含义。
答案:

  • 公式

  • 物理含义

  • Q (Query):查询向量,代表当前 token 想要去"寻找"什么信息。

  • K (Key):键向量,代表当前 token"拥有"什么特征,用于被 Q 匹配。

  • V (Value):值向量,代表当前 token 包含的实际内容信息。

  • 过程 : 计算的是相关性(注意力分数), 进行缩放,Softmax 归一化为概率分布,最后加权求和 ,得到融合了上下文信息的当前 token 表示。

面试官视角:

"不要只背公式。你要能解释清楚:这本质上是一个基于内容的寻址 (Content-based Addressing) 过程,类似数据库查询,但匹配是'软'的(概率性的)。"

2. 缩放因子 的作用

问题: 为什么在计算 后需要除以 ?如果不除会怎样?
答案:

  • 原因

  • 假设 Q 和 K 的分量服从均值为 0、方差为 1 的独立分布,那么 的点积的均值为 0,方差为 。

  • 如果不除以 ,随着 (head dimension) 的增大,点积结果的方差会变得很大,导致 Softmax 的输入值差异巨大。

  • 后果

  • Softmax 函数在输入值绝对值很大时,会进入饱和区 (Saturation Region),此时梯度的导数趋近于 0。

  • 这会导致梯度消失,使得训练难以收敛。 的作用是将方差拉回 1,保持梯度稳定。

面试官视角:

"这是一个考察数学敏感度的点。关键在于'Softmax 的梯度敏感性'。有些面试官会让你简单推导一下方差扩大的过程。"

3. Multi-Head Attention (MHA) 的意义

问题: 为什么要使用多头注意力 (Multi-Head Attention)?是头越多越好吗?
答案:

  • 意义
  1. 多子空间表示 (Subspace Representation):不同的 Head 可以关注不同的特征子空间。例如,一个 Head 关注语法结构,另一个关注语义指代,互不干扰。
  2. 集成效应:类似 Ensemble Learning,通过多个独立的注意力机制增强模型的鲁棒性。
  • 是否越多越好:不是。Head 过多会导致每个 Head 的维度 过小,难以承载足够的信息;同时计算开销增加,且可能引入冗余信息。

面试官视角:

"你可以类比 CNN 中的多个卷积核 (Filters)。每个 Head 就像一个 Filter,负责提取不同的特征模式。"

4. Transformer 的时间复杂度

问题: Self-Attention 层的时间复杂度和空间复杂度是多少?与 RNN 相比有什么优劣?
答案:

  • 假设序列长度为 ,特征维度为 。
  • 时间复杂度:。主要来自 ( 乘 得到 ) 和 的计算。
  • 相比 RNN
  • RNN 的复杂度是 。
  • 当 时,Transformer 快;当 非常大 (长序列) 时,Transformer 的 计算量成为瓶颈。
  • 核心优势 :Transformer 可以并行计算 (Parallelization),而 RNN 必须串行。

面试官视角:

"这是'为什么 Transformer 不能无限处理长文本'的理论根源。引出 FlashAttention 或 Linear Attention 等优化也是加分项。"

5. Decoder 的 Mask 机制

问题: Transformer 的 Decoder 中使用了 Masked Multi-Head Attention,这里的 Mask 有什么作用?
答案:

  • 作用因果遮蔽 (Causal Masking)Look-ahead Masking
  • 原理:在训练阶段,虽然 Decoder 可以看到整个目标序列 (Ground Truth),但在预测第 个 token 时,不仅要依赖 Encoder 的输出,还只能依赖 时刻之前的输出 ( 到 )。
  • 实现 :将 矩阵的上三角区域(不含对角线)置为 ,经过 Softmax 后变为 0,从而阻断来自"未来"的信息流,保持自回归 (Autoregressive) 属性。

面试官视角:

"注意区分 Padding Mask (处理变长序列) 和 Sequence Mask (因果遮蔽)。Decoder 中通常两者同时存在。"

6. 位置编码 (Positional Encoding)

问题: Transformer 为什么要引入位置编码?原始论文中的正弦位置编码有什么特点?
答案:

  • 原因 :Self-Attention 机制具有排列不变性 (Permutation Invariant)。如果不加位置编码,打乱句子中单词的顺序,输出结果完全一样。这就丢失了序列信息。
  • 正弦编码特点
  • 相对位置表达:对于固定偏移 , 可以表示为 的线性函数。这使得模型理论上能学习到相对位置关系。
  • 归纳偏置:无需训练,可扩展到未见过的序列长度(泛化性优于可学习的位置嵌入)。

面试官视角:

"现在的大模型(如 LLaMA)大多不再使用这种绝对位置编码,而是转向 RoPE。但这道题是基础。"

7. 为什么要用 Add & Norm?

问题: Transformer 每个子层后都有 Residual Connection (残差连接) 和 Layer Normalization,为什么?
答案:

  • Residual Connection :解决深层网络的梯度消失退化问题。它允许梯度直接流向浅层,使得堆叠深层网络成为可能。
  • Layer Normalization (LN)
  • 相比 BN,LN 对 batch size 不敏感,且能很好地处理变长序列 (RNN/Transformer 的标配)。
  • 它对每个样本的特征向量进行归一化,稳定了神经元的输入分布,加速收敛。

面试官视角:

"一定要提到:CV 领域常用 BN,而 NLP 领域常用 LN,核心原因在于 NLP 数据的序列长度不一致,且 Batch Size 通常较小(大模型训练时)。"

8. Pre-Norm vs Post-Norm

问题: 原始 Transformer 使用 Post-Norm,而现在的 LLM (如 GPT-3, LLaMA) 多使用 Pre-Norm,区别是什么?
答案:

  • Post-Norm (Original):Output = Norm(x + Sublayer(x))

  • 特点 :放在残差相加之后。如果不配合 Warmup,深层网络梯度容易消失或爆炸,训练难收敛

  • Pre-Norm (Modern):Output = x + Sublayer(Norm(x))

  • 特点:放在子层输入之前,残差连接是一条纯粹的"直通大道"。

  • 优势 :梯度流更加通畅,训练非常稳定,允许使用更大的学习率,不需要繁琐的 Warmup 调参。

面试官视角:

"虽然 Pre-Norm 训练稳定,但有研究指出其效果上限略低于精调的 Post-Norm。不过为了在大规模训练中不炸梯度,Pre-Norm 是目前的主流选择。"

9. Feed Forward Network (FFN) 的结构与作用

问题: FFN 层的结构是怎样的?它在整个网络中起什么作用?
答案:

  • 结构:两层线性变换,中间夹一个激活函数 (ReLU 或 GELU)。

  • 公式:

  • 通常通过先将维度扩大 4 倍 (4d),再压缩回原维度 (d)。

  • 作用

  • 非线性增强:Self-Attention 操作主要是线性的 (矩阵乘法),FFN 引入了非线性能力。

  • 记忆能力 :有研究认为,FFN 的参数 (Key-Value Pairs) 存储了大量的事实性知识 (Factual Knowledge),而 Attention 更多是在处理 token 间的关系。

面试官视角:

"在 MoE (混合专家) 模型中,被替换和扩展的正是这个 FFN 层。"

10. Transformer 中的 Dropouts 使用位置

问题: 为了防止过拟合,Transformer 在哪些位置使用了 Dropout?
答案:

主要在三个地方:

  1. Embedding 后:Input Embedding + Positional Encoding 之后。
  2. Attention 后:Softmax 计算出的权重之后 (Drop attention weights),以及 线性投影之后 (Residual 相加之前)。
  3. FFN 后:第二层 Linear 输出之后 (Residual 相加之前)。

面试官视角:

"Drop Attention weights 意味着随机切断了一些 token 之间的联系,这是一种很强的结构性正则化。"

11. Cross-Attention 的 Q, K, V 来源

问题: 在 Encoder-Decoder 架构中,Cross-Attention (Encoder-Decoder Attention) 的 Q, K, V 分别来自哪里?
答案:

  • Q (Query) :来自 Decoder 的上一层输出。代表 Decoder 当前想要查询什么信息。
  • K (Key) 和 V (Value) :来自 Encoder 的最终层输出。代表源序列提供的完整上下文信息。
  • 含义:Decoder 用自己的状态去 Encoder 的输出中查询相关信息,以辅助当前的生成。

面试官视角:

"这是 Encoder-Decoder 架构能够做翻译、摘要等 Seq2Seq 任务的核心接口。"

12. 归纳偏置 (Inductive Bias) 问题

问题: 相比 CNN 和 RNN,Transformer 的归纳偏置是强还是弱?这意味着什么?
答案:

  • 结论 :Transformer 的归纳偏置非常弱

  • CNN 假设了局部性 (Locality)平移不变性

  • RNN 假设了时间连续性

  • Transformer 对 token 的空间位置和顺序几乎没有假设 (全靠位置编码和 Attention 学习)。

  • 意味着什么

  1. Transformer 需要海量数据来学习这些在 CNN/RNN 中预设好的规律。
  2. 一旦数据量足够,它的上限更高,因为它不受限于预设的假设,能捕捉更复杂的全局依赖。
13. 为什么 Q 和 K 使用不同的权重矩阵生成?

问题: 计算 Attention 时,为什么不能直接令 ,也就是直接计算 ?
答案:

  • 打破对称性:如果 ,则 是一个对称矩阵。这意味着 token A 对 token B 的注意力等于 token B 对 token A 的注意力。
  • 实际需求 :语言中的关系往往是非对称的。例如,"我"是主语,"苹果"是宾语,"我"对"苹果"的关注(动作发出者)与"苹果"对"我"的关注(动作承受者)在语义空间中应该是不同的。使用不同的 和 投影可以将它们映射到不同的空间,从而建模这种非对称关系。
14. 激活函数 GELU vs ReLU

问题: 为什么 BERT 和 GPT 等后续模型常用 GELU 而不是原始论文中的 ReLU?
答案:

  • ReLU: 时梯度为 0。在负区间缺乏随机性,容易造成神经元死亡。
  • GELU (Gaussian Error Linear Unit)
  • 。它在 较小时趋近于 0,但在负区间有平滑的非零梯度。
  • 它结合了 ReLU (非线性) 和 Dropout (随机正则化) 的思想(基于概率的激活)。
  • 对于大模型训练,GELU 通常能带来更快的收敛和更好的泛化。
15. 参数量估算 (必考)

问题: 假设模型维度 ,层数 ,词表大小 。请估算一个 Transformer Decoder 模型的参数量。
答案:

主要参数集中在两个块:

  1. Attention 层: 个矩阵 (),每个大小 。参数量 。
  2. FFN 层:两个矩阵, 和 。参数量 。
  3. 单层总计:。
  4. Embedding 层:。
  5. 总参数量:。

面试官视角:

"对于 12 层 base 模型,。 约为 700万。12层就是 8500万,加上 Embedding 正好约 1.1亿 (BERT-Base 的大小)。这是一个常用的速算公式:**参数量 ** (忽略 Embedding 时)。"


第二部分:架构演进与注意力变体 (Architecture & Attention Variants)

16. Transformer 三大架构流派

问题: 请简述 Transformer 的三种主要架构流派 (Encoder-only, Decoder-only, Encoder-Decoder) 的区别及代表模型。
答案:

  1. Encoder-only (双向)
  • 特点:使用全向 Attention (无 Mask),能同时看到上下文。适合理解任务(分类、实体识别)。
  • 代表BERT, RoBERTa。
  1. Decoder-only (自回归)
  • 特点:使用 Causal Mask,只能看到上文。适合生成任务。
  • 代表GPT 系列, LLaMA, BLOOM。
  1. Encoder-Decoder (序列到序列)
  • 特点:Encoder 理解输入,Decoder 生成输出。适合翻译、摘要。
  • 代表Transformer 原作, T5, BART。

面试官视角:

"面试官可能会问:'T5 也是生成模型,为什么现在的 LLM 不用 T5 的架构了?' 答案通常涉及训练效率和 Zero-shot 泛化能力的差异。"

17. 为什么大模型 (LLM) 普遍选择 Decoder-only 架构?

问题: 既然 Encoder 能够看到双向信息,理论上理解能力更强,为什么 GPT-3、LLaMA、PaLM 等主流大模型全部采用了 Decoder-only 架构?
答案:

主要有三个原因:

  1. 训练效率与工程实现:Decoder-only 架构在预训练时通过 Shift 标签即可复用输入矩阵,计算效率略高。且在推理时 KV Cache 管理更简单。
  2. 低秩 (Low Rank) 问题:有研究指出,Attention 矩阵在经过 Softmax 后容易出现秩塌陷 (Rank Collapse)。Encoder-only 的双向注意力使得 Attention 矩阵更稀疏,秩更低,表达能力受限;而 Decoder-only 的下三角 Mask 结构在一定程度上保持了满秩,保留了更强的表达能力。
  3. 任务对齐 (Alignment) :生成任务 (Next Token Prediction) 天然符合人类语言产生的过程。Decoder-only 在 Zero-shot / Few-shot 的上下文学习 (In-Context Learning) 能力上展现出了显著优势。

面试官视角:

"这是一个开放性问题,但'低秩假设'和'上下文学习能力'是两个高分回答点。"

18. KV Cache (键值缓存)

问题: 什么是 KV Cache?为什么推理阶段需要它?它带来了什么问题?
答案:

  • 定义:在自回归推理 (生成) 过程中,Transformer 是逐个 token 生成的。生成第 个 token 时,第 到 个 token 的 (Key) 和 (Value) 向量已经计算过了。
  • 作用:为了避免重复计算,我们将这些 向量缓存在显存中,称为 KV Cache。每一步只计算当前新 token 的 ,然后取回缓存的旧 进行拼接计算 Attention。
  • 问题显存占用巨大
  • 公式: (2代表K和V,B是batch, L是层数, H是头数)。
  • 这成为了制约大模型推理 Batch Size上下文长度 的最大瓶颈。

面试官视角:

"没有 KV Cache,Transformer 推理的时间复杂度是 ;有了 KV Cache,是 。这是必须用的,但也引出了 MQA/GQA 的必要性。"

19. MHA (Multi-Head Attention) 的瓶颈

问题: 经典的多头注意力 (MHA) 在推理时有什么性能瓶颈?
答案:

  • 结构 : 个 Query 头,对应 个 Key 头 和 个 Value 头。即 Q:K:V 比例为 1:1:1
  • 瓶颈内存带宽 (Memory Bandwidth)
  • 在推理阶段,计算量 (Compute) 相对较小,主要时间花在从显存中读取庞大的 KV Cache 到计算单元上。
  • MHA 的 KV Cache 体积最大,导致推理速度受限于内存带宽 (Memory Bound),而非计算速度 (Compute Bound)。
20. MQA (Multi-Query Attention)

问题: 什么是 MQA?它如何优化推理速度?有什么缺点?
答案:

  • 结构 :保留 个 Query 头,但所有 Query 头共享同一组 Key 头和 Value 头 。即 Q:K:V 比例为 H:1:1
  • 优点
  1. 显存占用极低:KV Cache 缩小了 倍。
  2. 推理速度快:数据读取量大幅减少,极大缓解了内存带宽压力。
  • 缺点模型容量下降,精度受损。强制所有头关注同样的信息子空间,导致模型表现(尤其是微调后)往往不如 MHA。
  • 代表模型:Falcon, PaLM。

面试官视角:

"MQA 是极端优化的代表。面试官可能会问:'MQA 训练时会比 MHA 快吗?' 答案是:训练时加速不明显,优势主要在推理。"

21. GQA (Grouped-Query Attention)

问题: 什么是 GQA?为什么 LLaMA-2/3 选择了 GQA?
答案:

  • 结构 :MHA 和 MQA 的折中方案。将 个 Query 头分成 组,每组共享一个 Key 头和一个 Value 头

  • 例如:32 个 Query 头,分成 4 组,每组 8 个 Q 共享 1 个 K/V。总共有 4 个 K/V 头。

  • Q:K:V 比例为 H:G:G (其中 )。

  • 优势

  • 平衡之道:在保留了大部分 MHA 的精度 (Capacity) 的同时,获得了接近 MQA 的推理速度和显存节省。

  • 代表模型LLaMA-2 (70B), LLaMA-3 (全系)

面试官视角:

"这是目前的业界标准。如果问你具体怎么选,可以说:GQA 使得我们可以在保持高性能的前提下,支持更长的 Context Window (上下文窗口)。"

22. MHA/MQA/GQA 显存占用计算对比

问题: 假设模型 ,Head数 ,Head维度 。请对比 MHA, MQA, GQA (8组) 生成一个 token 所需加载的 KV 参数量比例。
答案:

  • MHA

  • K 头数 = 32,V 头数 = 32。

  • 参数量比例 。

  • GQA (Group=8)

  • K 头数 = 8,V 头数 = 8。

  • 参数量比例 。

  • 节省 :显存占用是 MHA 的 1/4

  • MQA

  • K 头数 = 1,V 头数 = 1。

  • 参数量比例 。

  • 节省 :显存占用是 MHA 的 1/32

面试官视角:

"通过这道计算题,你可以直观地展示 GQA 是如何用 1/4 的显存代价换取精度的。"

23. MHA (Multi-Head Attention) 的参数量详细计算

问题: 给定 Transformer 的嵌入维度 ,头数 ,每个头的维度 。请详细计算一个 MHA 层的参数量。是否与头数 有关?
答案:

  • 结论参数量与头数 无关
  • 详细计算
  1. 输入投影 ()
  • 对于每个头 ,我们需要三个矩阵 ,尺寸均为 。
  • 所有 个头拼接起来,总参数量为:。
  1. 输出投影 ()
  • 将所有头的输出拼接 (Concat) 后,维度为 。
  • 经过一个线性变换 映射回 ,尺寸为 。
  • 参数量为:。
  1. 偏置 (Bias)
  • 共有 4 个偏置向量,总量为 。

  • 总计:。

  • 分析:无论你把 切成多少个头,只要 恒成立,总参数量就是固定的 。

面试官视角:

"很多同学会误以为头数越多参数越多。这道题就是为了考察你是否理解 MHA 在实现上其实就是一个大的矩阵乘法,然后再 reshape/split 成多头。"

24. MHA 的计算量 (FLOPs) 与序列长度的关系

问题: 假设输入序列长度为 ,维度为 。请推导 MHA 前向传播的计算量 (FLOPs),并指出哪一部分导致了长文本推理的瓶颈?
答案:

计算量主要由线性投影 (Linear)注意力核心 (Attention Core) 两部分组成。这里按乘加算 2 次操作 () 估算:

  1. 线性投影阶段 ()
  • 计算 :。FLOPs 。
  • 输出投影 :。FLOPs 。
  • 小结 :。这部分与序列长度 呈线性关系
  1. 注意力核心阶段 ( 和 )
  • 计算 (矩阵乘法 和 ):得到 矩阵。FLOPs 。

  • 计算 (矩阵乘法 和 ):得到 矩阵。FLOPs 。

  • 小结 :。这部分与序列长度 呈平方关系

  • 总计算量:。

  • 瓶颈分析

  • 当 较小 (如 BERT 的 512) 时, (如 768) 占主导,线性投影是主要开销。

  • 当 很大 (如 GPT-4 的 128k) 时, 项迅速爆炸,注意力核心计算成为绝对的算力瓶颈。

面试官视角:

"如果这道题你能把 这个项写出来,面试官就会顺势问你:FlashAttention 是如何优化这一步的?(虽然它主要优化 IO,但也利用了分块计算)。"

25. Scaling Laws (缩放定律)

问题: OpenAI 提出的 Scaling Laws 核心结论是什么?它对架构选择有何影响?
答案:

  • 核心结论 :模型的性能 (Loss) 与 计算量 (Compute)数据集大小 (Dataset Size)参数量 (Parameters)幂律 (Power-law) 关系。
  • 重要发现 :在计算资源有限的情况下,模型架构的微小调整 (如层数、宽度的比例) 对性能影响很小 ,真正重要的是把模型做大、把数据量做大
  • 影响:这促使业界停止了对复杂架构的"魔改",转而专注于利用 Decoder-only 架构堆叠参数和清洗数据。
26. Pre-Training vs Fine-Tuning 的计算模式差异

问题: 在 Transformer 架构下,预训练 (Training) 和 推理 (Inference) 的计算模式有什么本质区别?
答案:

  • 预训练 (Training)

  • 并行计算 :因为输入是完整的 Ground Truth 序列,我们可以并行计算所有 token 的 Attention 和 Loss。

  • Compute Bound:主要瓶颈在于矩阵乘法 (GEMM) 的计算速度。

  • 推理 (Inference)

  • 串行生成:Token 必须一个接一个生成 (Auto-regressive)。

  • Memory Bound:每生成一个 token 都要搬运整个 KV Cache,主要瓶颈在于显存带宽。

27. 稀疏注意力 (Sparse Attention)

问题: 为了解决 Transformer 的复杂度,除了 MQA,还有哪些稀疏注意力机制?(简述一两种)
答案:

  • Local/Window Attention (局部注意力):每个 token 只关注自己周围窗口大小为 的 token (如 Longformer)。复杂度降为 。
  • BigBird / ETC:结合了局部注意力 + 随机注意力 + 全局 token (Global tokens)。
  • 现状 :虽然稀疏注意力理论上降低了复杂度,但在现代大模型中,由于 GPU 对密集矩阵运算 (Dense Matrix Multiplication) 的优化极好,稀疏操作反而可能因为内存访问不连续而变慢。目前主流方案更多是 FlashAttention (硬件优化) + GQA,而非修改 Attention 的数学定义。
28. U-Net 架构 (Diffusion Transformer)

问题: 最近火热的 Sora (DiT) 结合了 Transformer 和 Diffusion,这里的 Transformer 起什么作用?
答案:

  • 传统 Diffusion:使用 U-Net (基于 CNN) 作为去噪骨干网络。
  • DiT (Diffusion Transformer) :将 U-Net 替换为 Transformer
  • 将图像切成 Patch (类似 ViT)。
  • Transformer 能够更好地捕捉图像的全局依赖关系,且参数扩展性 (Scaling) 远好于 CNN。
  • 这证明了 Transformer 架构在多模态生成领域的通用性。

第三部分:位置编码进阶与推理极致优化

29. RoPE (Rotary Positional Embedding) 的核心思想

问题: LLaMA 等主流大模型为什么普遍放弃了绝对位置编码,改用 RoPE (旋转位置编码)?它的核心思想是什么?
答案:

  • 核心痛点 :传统的绝对位置编码 (Add PE) 难以捕捉 token 间的相对距离关系;而传统的相对位置编码 (如 T5) 需要在 Attention 矩阵上加偏置,计算效率低且难以缓存。

  • RoPE 思想通过绝对位置编码的方式,实现相对位置编码的效果

  • 它不改变向量的模长,而是将 token 的 Embedding 向量在复数平面(或二维子空间)中进行旋转

  • 旋转的角度 由 token 的绝对位置 决定。

  • 效果:当计算 和 的内积时,结果中自然包含了一个只与位置差 有关的项,从而完美捕获相对位置信息。

面试官视角:

"一句话总结 RoPE:绝对位置编码的实现,相对位置编码的核。"

30. RoPE 的数学性质 (为什么能外推?)

问题: 请写出 RoPE 在二维情况下的变换公式。为什么说它使得 Attention score 只依赖于相对距离?
答案:

  • 公式:假设二维向量 ,位置为 ,旋转角度为 。

  • 内积性质

  • 由于旋转矩阵是正交矩阵,且 。

  • 因此,Attention score () 的值只取决于 (相对距离),而与绝对位置 无关。

面试官视角:

"虽然 RoPE 理论上支持无限外推,但实际上由于训练数据的长度限制,直接外推会导致 Attention 分布熵值剧烈波动 (Attention Sink)。因此才有了 NTK-Aware 等插值方法。"

31. ALiBi (Attention with Linear Biases)

问题: ALiBi 也是一种位置编码,它和 RoPE 有什么不同?为什么说 ALiBi 的外推性 (Extrapolation) 更好?
答案:

  • 机制 :ALiBi 完全不使用 Embedding 层的位置编码。

  • 它直接在计算出的 Attention Score 矩阵上加上一个静态的、预设的线性偏置罚项

  • 罚项大小与 token 距离成正比:。

  • 外推性

  • RoPE 在超出训练长度时,旋转频率可能会遇到未见过的相位,导致性能下降。

  • ALiBi 施加的是一个简单的线性惩罚,这种"距离越远注意力越弱"的归纳偏置非常强且稳定,因此在从未见过的超长序列上也能保持较好的 PPL (困惑度)。

面试官视角:

"ALiBi 的缺点是表达能力稍弱(强制距离衰减),因此在需要长距离依赖的任务(如代码生成)上,LLaMA 还是选择了 RoPE。"

32. 长度外推 (Length Extrapolation) 技巧

问题: 如果一个模型只在 4k 长度上训练,如何让它在推理时处理 16k 的长度?简述 线性插值 (Linear Interpolation) 的原理。
答案:

  • 问题:直接外推会导致 RoPE 的旋转角度超出训练见过的范围 (高频分量震荡)。
  • 线性插值 (PI)
  • 原理:将推理时的长序列位置索引 进行"压缩",映射回训练时的 范围内。
  • 操作:将位置索引 变为 。
  • 效果:对于模型来说,通过插值,看到的旋转角度依然在训练分布内。虽然分辨率降低了,但至少能"跑通"且不崩坏。

面试官视角:

"更高级的方法是 NTK-Aware Interpolation。它不均匀插值,而是对高频分量不插值(保持分辨力),对低频分量进行插值(解决外推)。这是 LLaMA 扩充上下文的标准做法。"

33. FlashAttention V1 的核心原理

问题: FlashAttention 是如何加速 Attention 计算的?这里的 IO-Aware 是什么意思?
答案:

  • 瓶颈 :标准 Attention 计算需要生成巨大的 矩阵 和 ,这些中间矩阵需要频繁在 HBM (显存)SRAM (计算单元缓存) 之间读写,导致显存带宽 (Memory Bandwidth) 成为瓶颈。
  • FlashAttention V1 核心
  1. 分块 (Tiling):将 切分成小块,使得计算可以在快速的 SRAM 中完全进行,而不需要把巨大的中间矩阵写回 HBM。
  2. 重计算 (Recomputation):在反向传播时,不存储前向的 Attention 矩阵,而是利用 SRAM 中的块重新快速计算一遍。
  • 结果 :虽然计算量 (FLOPs) 甚至略有增加(重计算),但 HBM 读写量 (IO) 减少了数倍,总体速度提升显著。

面试官视角:

"关键词是 SRAM。FlashAttention 的本质是用'多算的计算时间'换取了'昂贵的 IO 时间'。"

34. FlashAttention V2 的改进

问题: FlashAttention V2 相比 V1 做了哪些关键改进?
答案:

  • V1 的短板 :V1 主要是沿着 Batch Size 和 Head Dimension 并行,但在 Sequence Length (序列长度) 维度上是串行的。
  • V2 的改进
  1. 序列并行:调整了算法循环顺序,使得外层循环可以并行处理不同的序列块。
  2. 减少非矩阵运算:优化了 Softmax 等非矩阵乘法操作。
  • 效果:V2 在长序列下的 GPU 利用率更高,通常能达到理论峰值的 50%-70%。
35. PagedAttention (vLLM 核心)

问题: vLLM 提出的 PagedAttention 解决了什么问题?它借鉴了操作系统的什么思想?
答案:

  • 问题KV Cache 的显存碎片化 (Fragmentation)

  • 传统 KV Cache 需要预分配连续的显存空间。由于输出长度不可知,通常会预留最大长度,导致大量显存浪费 (预留了没用)和碎片(中间有空隙塞不进新请求)。

  • PagedAttention

  • 借鉴思想 :操作系统的 虚拟内存 (Virtual Memory) 与 分页 (Paging)

  • 机制:将 KV Cache 切分成固定大小的 Block (如 16 tokens/block)。这些 Block 在物理显存中可以是不连续的,通过一个"页表"来管理逻辑顺序。

  • 效果 :显存利用率接近 100%,极大地提升了推理时的 吞吐量 (Throughput)

面试官视角:

"PagedAttention 并不加速单个请求的推理延迟 (Latency),它提升的是并发吞吐量。这对于服务端的 GPU 利用率至关重要。"

36. Continuous Batching (Orchestration)

问题: 在大模型推理服务中,Continuous Batching (连续批处理) 是如何工作的?相比 Static Batching 有什么优势?
答案:

  • Static Batching:等待凑齐一个 Batch 的请求,然后一起推理。问题是,如果 Batch 中有一个请求生成很长,其他请求生成完了也得等着 (Padding 浪费),导致 GPU 空转。

  • Continuous Batching (Iteration-level)

  • 一旦 Batch 中的某个请求生成结束 (输出 EOS),立即将该槽位释放,插入一个新的请求继续生成。

  • 它是迭代级的调度,而不是请求级的。

  • 优势:消除了 Padding 带来的计算浪费,大幅降低了排队延迟。

37. 显存估算题 (7B 模型)

问题: 假设部署一个 LLaMA-2-7B 模型 (FP16 精度)。

  1. 模型权重占用多少显存?
  2. 如果不使用量化,KV Cache (序列长度 4096, Batch=1) 需要多少显存?
    (提示: )
    答案:
  3. 模型权重
  • 参数量 。
  • FP16 每个参数 2 Bytes。
  • 显存 。
  1. KV Cache
  • 公式: (单位是参数个数)。

  • 参数个数:。

  • 显存占用 (FP16):。

  • 总计:约 16 GB+。所以一张 24GB 的 3090/4090 可以跑。

面试官视角:

"如果 Batch Size 变成 32?KV Cache 就会变成 。这时候 KV Cache 成了显存大头,必须用 GQA 或量化。"

38. 量化技术 (Quantization)

问题: 简述 PTQ (Post-Training Quantization) 和 QAT (Quantization-Aware Training) 的区别。FP16 转 INT8 会损失什么?
答案:

  • PTQ (训练后量化):模型训练完后,通过校准数据集 (Calibration Data) 统计激活值的分布,计算缩放因子 (Scale),直接将权重截断量化。方便快捷。
  • QAT (感知量化训练):在训练过程中插入伪量化节点 (Fake Quantization),让模型在训练时就"适应"量化带来的误差。精度更高,但成本大。
  • FP16 -> INT8
  • 动态范围 (Dynamic Range) 大幅缩小。
  • 精度损失 :对于离群点 (Outliers) 非常敏感。大模型中常出现激活值极大的"特异特征",直接量化 INT8 会导致模型崩坏 (LLM.int8() 论文的核心发现)。
39. 采样策略:Top-k vs Top-p (Nucleus)

问题: 在生成文本时,Temperature, Top-k, Top-p 分别起什么作用?
答案:

  • Temperature ():调整 Softmax 的概率分布平滑度。

  • :分布变尖锐,更倾向于高概率词 (保守)。

  • :分布变平缓,低概率词被选中的机会增加 (创造性)。

  • Top-k:只从概率最高的 个词中采样。缺点是 是固定的,无法适应分布变化 (有时前 10 个都很合理,有时前 100 个都垃圾)。

  • Top-p (Nucleus Sampling) :截断概率累加和达到 (如 0.9) 的词表。这是动态的截断,效果通常优于 Top-k。

40. 幻觉 (Hallucination)

问题: 为什么 Transformer 架构的大模型会产生幻觉?从训练目标和数据角度解释。
答案:

  • 训练目标 :Next Token Prediction 本质上是在拟合概率分布 ,而不是在验证事实真伪。模型只是选择了统计学上"最可能出现"的词,而不是"最正确"的词。
  • 数据源:训练数据本身包含大量互联网噪声、虚构小说、错误信息。模型无法区分 Wikipedia 和 Reddit 帖子的可信度差异(除非做 RLHF 对齐)。
  • 知识压缩损耗:模型试图将海量知识压缩到有限的参数中,类似于有损压缩 (JPEG)。在解压(推理)时,对于长尾知识,容易出现"张冠李戴"的模糊重构。
相关推荐
${王小剑}1 分钟前
深度学习损失函数
人工智能·深度学习
AI即插即用42 分钟前
即插即用系列(代码实践)专栏介绍
开发语言·人工智能·深度学习·计算机视觉
Keep__Fighting1 小时前
【神经网络的训练策略选取】
人工智能·深度学习·神经网络·算法
码农水水1 小时前
蚂蚁Java面试被问:混沌工程在分布式系统中的应用
java·linux·开发语言·面试·职场和发展·php
xiaobaishuoAI1 小时前
分布式事务实战(Seata 版):解决分布式系统数据一致性问题(含代码教学)
大数据·人工智能·分布式·深度学习·wpf·geo
2501_942191771 小时前
【深度学习实战】数字仪表字符识别项目详解——基于YOLO11-HAFB-2模型的优化实现
人工智能·深度学习
Where-1 小时前
深度学习中的过拟合问题及解决方式
人工智能·深度学习
努力毕业的小土博^_^2 小时前
【地学应用】溜砂坡scree slope / talus slope的定义、机制、分布、危害、与滑坡区别、研究方向与代表论文
人工智能·深度学习·遥感·地质灾害·地学应用
落雨盛夏3 小时前
26深度学习|李哥1
人工智能·深度学习
2501_941322033 小时前
【蚕桑业】【深度学习】基于VFNet的蚕虫智能检测与识别系统实现与应用
人工智能·深度学习