LLM 面试题整理 LLM 面试题整理1. GPT系列的发展所推动的大语言模型训练的三阶段分别是什么作用是什么GPT 系列从 GPT-1 到 ChatGPT 的发展逐步沉淀出了大语言模型训练的标准三阶段范式第一阶段预训练Pre-training基于超大规模无标注语料进行自监督学习Next-Token Prediction使模型获得通用语言建模能力、广泛的世界知识以及基本的推理与泛化能力。例如 GPT-1 使用 BooksCorpus约 8 亿词进行预训练GPT-3 使用了约 3000 亿 token 的数据。第二阶段监督微调Supervised Fine-tuning, SFT利用人工构建的指令-响应示例或高质量对话数据对模型进行进一步训练使其能够更好地理解指令并输出更加规范、稳定且贴合任务需求的内容。InstructGPT 在此阶段收集了人工标注者撰写的高质量指令-回答样本进行训练。第三阶段对齐Alignment通过引入人类偏好、行为规范、安全约束与价值观等因素使模型的行为更符合用户期望。InstructGPT 采用的 RLHF基于人类反馈的强化学习包含奖励模型训练和 PPO 强化学习两个子阶段。此外还包括 DPO、ORPO、KTO 等无需强化学习的偏好优化方法。对齐阶段的目标是让模型在真实应用场景中表现得更有帮助、更安全、更可靠。2. LLM的基础架构包含哪些层分别的作用是什么大语言模型大多基于 Transformer Decoder-only 架构从整体上看可分为三个部分输入层Text Position Embedding负责将原始文本序列转化为模型可处理的向量表示。文本首先经过分词处理每个 token 被映射为对应的词向量Token Embedding形成模型的基础语义空间。同时加入位置编码Position Encoding使模型能够感知序列顺序。输入层为后续 Transformer Block 提供初始的语义信息。Transformer Block 层核心计算单元通常由几十到上百层堆叠而成是模型的核心计算单元。每个 Transformer Block 内部主要包含Masked Multi-Head Self-Attention带掩码的多头自注意力使模型在处理当前 token 时能参考序列中其他位置的语义信息捕捉长距离依赖关系Feed Forward Network前馈网络对注意力输出进行非线性变换提高模型的表达能力残差连接与归一化确保深层结构的训练稳定性使梯度能够顺畅传播输出层lm_head用于将 Transformer Block 最终生成的隐含向量映射为词表中的概率分布从而执行下一个 token 的预测。典型做法是使用线性投影层 lm_head 将向量映射到词表维度再通过 Softmax 得到每个 token 的概率。在参数量较小的模型中如 Qwen3-0.6B还会将输入层的 token_embedding 和输出层 lm_head 进行权重共享以减少参数量。3. 正余弦位置编码是怎么样的它的缺陷是什么旋转位置编码和正余弦位置编码相比区别是什么正余弦位置编码正余弦位置编码Sinusoidal Positional Encoding是原始 Transformer 中采用的位置编码方式通过一组预定义的正弦与余弦函数为每个序列位置生成唯一向量奇数维度使用正弦函数偶数维度使用余弦函数不同维度对应不同频率每个位置对应一个固定向量向量被直接加到 token 的词向量上特点无需训练编码由固定函数生成不引入可学习参数隐含相对位置信息两个 token 的注意力评分中会包含相对位置关系缺陷在注意力计算中位置编码的内积仅作为注意力打分的一部分参与运算而 Q/K 的权重矩阵是可学习参数会在训练中不断变化使得正余弦编码原本的几何结构难以稳定保持模型需要通过额外的学习来重新塑造或校正这种相对位置信息这个重建过程并不可靠导致其理论优势无法在实践中完全体现影响了训练稳定性和泛化表现旋转位置编码RoPE旋转位置编码由国内研究者苏剑林提出与正余弦位置编码相比核心区别如下作用方式不同正余弦位置编码将位置编码与词向量相加后再进行注意力计算RoPE直接作用于 q 和 k 向量本身通过对 q/k 向量按维度两两分组并施加与位置相关的旋转变换使注意力计算能够更好地体现 token 之间的相对位置关系数学保证不同RoPE 在数学结构上保证了注意力得分仅依赖于 q/k 的内容和它们之间的相对位置差相对位置信息是旋转的天然产物正余弦位置编码的相对位置信息需要经过可学习矩阵的过滤容易被破坏外推能力不同正余弦位置编码和可学习位置编码在超出训练长度时都存在外推问题RoPE 的数学结构不依赖训练长度在推理中更容易处理更长序列但在训练长度和推理长度差距仍然很大时仍可能存在外推问题参数开销不同正余弦位置编码和 RoPE 均为零参数可学习位置编码的参数量随序列长度线性增长4. 什么是 KV Cache是用在训练阶段还是推理阶段使用它的目的是什么为什么只缓存 K,V不需要缓存 Q什么是 KV CacheKV Cache 是大语言模型在推理阶段使用的一种缓存优化机制。在自回归生成过程中模型需要逐 token 地生成输出。对于每一个新 token模型都会与所有历史 token 进行注意力计算。KV Cache 将历史 token 的 Key 和 Value 缓存下来供后续步骤直接使用避免重复计算。使用阶段KV Cache 仅用于推理阶段而非训练阶段。使用目的如果每一步都从头计算历史序列的 Key 和 Value会造成巨大的重复计算开销。通过缓存 K/V模型在生成下一个 token 时只需计算当前 token 的 Q、K、V再与缓存的 K/V 做一次注意力匹配即可大幅减少了不必要的计算量。为什么只缓存 K,V不需要缓存 Q在自回归生成过程中每一步只需要计算当前新生成 token的 Query因为 Query 代表我在找什么只需要当前 token 去查询历史信息。而历史 token 的 Key 和 Value 则被反复使用——每个新 token 都需要和所有历史 token 的 K 做匹配并通过 V 聚合信息。因此只需要缓存历史的 K,V而 Q 每步重新计算即可。KV Cache 带来的问题虽然 KV Cache 减少了重复计算但随着序列变长、模型层数增加缓存量会不断累积。特别是在多头注意力MHA中每个注意力头都独立生成并存储一组 Key 和 Value使缓存规模进一步放大。这也是 MHA 在大模型推理中的主要瓶颈进而催生了 MQA 和 GQA 等优化方案。5. 讲一下什么是 GQA为什么现代大语言模型选择 GQA而不是传统 MHA什么是 GQAGQAGroup-Query Attention分组查询注意力是 Google 在论文《GQA: Training Generalized Multi-Query Transformer Layers》中提出的注意力机制优化方案。其核心思想是将注意力头划分为多个组Group每组内部的多个 Query 共享同一套 Key 和 Value而不同组之间则使用独立的 K/V。例如如果有 8 个 Query 头和 2 个 KV 头则每 4 个 Query 头共享一组 KV形成 2 个组。三种注意力机制对比机制K,V 缓存数量特点MHAMulti-Head Attention每个头独立一组 K/V表达能力最强但 KV Cache 最大MQAMulti-Query Attention所有头共享同一组 K/VKV Cache 最小但表达能力下降GQAGroup-Query Attention每组共享一组 K/V在 MHA 和 MQA 之间取得平衡为什么现代 LLM 选择 GQA相比 MHAGQA 不再为每个头维护独立 K/V大幅减少了 KV Cache 的存储需求与内存带宽压力推理速度显著提升。相比 MQAGQA 不再让所有头共享唯一 K/V而是分组共享使注意力头间仍能保持更高的多样性和表达能力。MQA 由于所有头共享同一套 K/V会略微削弱注意力头的表达能力。GQA 在推理效率和表达能力之间实现了更优平衡仅增加极小的计算与存储成本就能显著增强模型能力因此被主流大模型如 Qwen、DeepSeek 等广泛采用在长序列推理和高并发场景中表现极为出色。6. 讲一下什么是 GLU其作用是什么它与普通的前馈神经网络相比增加了什么结构什么是 GLUGLUGated Linear Unit门控线性单元及其变体是当前大型语言模型中最常用的 FFN 激活结构。与普通 FFN 的区别与传统的单路激活如 ReLU、GELU不同GLU 类结构采用**主分支 x 门控分支的双分支设计**。具体来说普通 FFN输入 x 经过一个线性变换 - 激活函数 - 线性变换输出是一个单路结构GLU FFN输入 x 分成两条路径一条通过线性变换主分支另一条通过线性变换 门控函数门控分支然后两个分支的输出逐元素相乘最后再通过线性变换输出以代码层面举例如 Qwen3 的实现x_fc1self.fc1(x)# 门控分支x_fc2self.fc2(x)# 主分支xsilu(x_fc1)*x_fc2# 门控激活后与主分支逐元素相乘xself.fc3(x)# 最终投影作用门控机制使模型能够对信息流进行更加细致的筛选与调控——门控分支决定哪些信息要通过主分支提供要传递的信息两者相乘实现了类似信息门的效果增强了模型的表达能力。常见 GLU 变体不同的门控函数形成了不同的变体变体门控函数GLUSigmoidGEGLUGELUSwiGLUSiLUSwish其中SwiGLU在性能与训练稳定性方面表现最优已成为当前主流 LLMQwen、DeepSeek 等的默认选择。7. 讲一下什么是 MoE其优势是什么什么是 MoEMoEMixture of Experts混合专家模型是在传统 FeedForward 模块基础上的一种结构扩展。其核心思想是使用多个并行的 FeedForward 专家替代单一的 FFN 层并通过 Router路由器根据输入 Token 的特征选择其中少量最合适的专家参与计算。MoE 的工作流程路由得分计算Router 接收 Token 的隐藏表示通过线性映射为所有专家生成一组得分选择 Top-k 专家从得分中选取得分最高的 k 个专家其余专家不参与本次计算计算路由权重对被选中的专家得分执行 softmax得到归一化权重专家执行前向计算被激活的专家分别对输入 Token 进行独立计算加权合并输出将所有激活专家的输出按路由权重加权求和得到最终表示MoE 的三大优势1. 高容量、低计算的效率结构MoE 通过稀疏激活机制每次前向传播仅有少数专家参与计算。在不增加实际计算量的前提下大幅提升了模型的总参数量模型容量实现了高效的高容量、低计算结构。2. 专家分工协作提升泛化与适应性通过 Router 机制的动态分配不同输入 Token 被导向最适合处理它们的专家。专家自动形成功能分化每个专家专注于学习特定的模式或数据子集显著增强了模型的表达能力和泛化性能。3. 天然适合大规模分布式扩展MoE 中的专家模块相互独立可以轻松地分布到大规模计算集群的不同设备上并行运行极大提升了模型的可扩展性和在大规模环境下的训练与推理效率。8. 讲一下 RMSNorm 是什么它与 LayerNorm 的核心区别是什么什么是 RMSNormRMSNormRoot Mean Square Normalization均方根归一化是对传统 LayerNorm 的一种简化变体。它去除了均值标准化操作仅基于输入特征的均方根RMS进行缩放。RMSNorm 的核心公式RMSNorm(x) x / sqrt(mean(x^2) epsilon) * gamma其中x输入向量gamma可学习的缩放参数epsilon防止除零的微小数在 Qwen3 等模型中还会额外加入可学习的偏移参数shift。与 LayerNorm 的核心区别特性LayerNormRMSNorm计算方式先减均值、除标准差再缩放偏移仅用均方根缩放不减均值参数量gamma缩放 beta偏移gamma缩放可选 beta计算复杂度较高需要计算均值和标准差较低只需计算均方根训练稳定性在超深层模型中表现一般更稳定、更高效RMSNorm 为何成为主流实践表明均值项在深层 Transformer 中对稳定性贡献有限因此去除均值不会影响模型性能反而带来更稳定、更高效的归一化形式。RMSNorm 减少了计算量无需计算均值和方差两个统计量简化了归一化流程同时保持了归一化效果目前已成为主流 LLM如 Qwen、DeepSeek、LLaMA 等最常用的归一化方式。9. 讲一下 Pre-Norm 和 Post-Norm 的区别是什么两者的核心区别Post-Norm后置归一化在子层如 Self-Attention 或 FFN计算完成并与残差相加之后再对结果进行归一化处理。输出 LayerNorm(x Sublayer(x))Pre-Norm前置归一化在进入子层之前先对输入进行归一化然后再执行子模块计算并与残差相加。输出 x Sublayer(LayerNorm(x))Post-Norm 的问题Post-Norm 存在一个核心缺陷它会削弱残差连接中用于稳定训练的恒等梯度通道导致梯度回传不稳定。标准残差结构的反向传播中梯度沿两条路径回传其中恒等映射路径“1”提供了稳定的直通梯度。但在 Post-Norm 中由于归一化操作会对输入进行缩放、标准化处理梯度在回流时也会被相应扰动使原本恒等的梯度路径不再保持为 1。在深层 Transformer 中这种梯度扰动会层层累积使训练更加不稳定。Pre-Norm 的优势Pre-Norm 的设计充分保留了残差连接的关键特性提供一条未受扰动的恒等梯度路径。由于归一化在子层之前完成残差连接处的加法操作不会被归一化层干扰梯度可以顺畅地通过恒等路径回传。当前趋势Pre-Norm 是大多数现代大语言模型中采用的主流归一化方式。GPT-2 最早引入了 Pre-LayerNorm此后 Qwen、DeepSeek、LLaMA 等模型均采用 Pre-Norm 结构。Post-Norm 在现代大规模模型中已基本不再使用。特性Post-NormPre-NormNorm 位置子层之后、残差相加之后子层之前、残差相加之前梯度稳定性较差深层训练不稳定较好恒等梯度路径未受扰动现代 LLM 采用基本不再使用广泛采用