资讯动态

主流大模型架构全景:GPT、LLaMA、DeepSeek、Qwen核心设计对比与演进

发布时间:2026/10/20 9:50:58 来源:尧图企业网站定制
从 2023 年到 2026 年我前后经手过几十场大模型相关岗位的技术面试也陪不少候选人做过复盘。一个特别明显的趋势是早期面试官喜欢问“Transformer 的 self-attention 复杂度是多少”“反向传播怎么做”这种基础题可现在只要涉及模型架构开口就是 GPT、LLaMA、DeepSeek、Qwen 放在一起对比而且层层追问非常深。这篇“主流大模型架构全景”专门拆解这四大家族在架构上的相同与不同从注意力机制、位置编码、归一化策略一路聊到 MoE 和 KV Cache。不管你是正在准备面试还是想真正理解当前大模型背后的设计思路这篇都可以给你一张足够清晰的地图。1. 大模型架构演进的底层逻辑为什么主流军都收敛到 Decoder-only1.1 重新认识 Transformer 的三个流派在聊具体模型之前得先把 Transformer 的“家族谱”说清楚。2017 年那篇划时代的 Transformer 论文里作者给了一套完整的 Encoder-Decoder 框架Encoder 负责把输入序列编码成语义空间Decoder 负责根据编码结果逐步生成输出。后来的发展把这套框架拆成了三个流派。Encoder-only 的典型代表是早期被疯狂用于文本分类、实体抽取的 BERT。它的特点是双向注意力每个 token 都能“看到”上下文的所有 token。因为这种双向特性它特别适合做理解型任务但做生成就比较别扭。Encoder-Decoder 则比如 T5、BART 这类保留了完整的编码和解码过程在翻译、摘要这类“序列到序列”任务上有天然优势代价是结构更重训练和推理的复杂度都更高。Decoder-only 就是现在所有主流大模型采用的方案只保留了解码器部分用单向的因果注意力每个 token 只能“看到”它之前的 token。这里有个容易混淆的点Decoder-only 不是说不能做理解任务。恰恰相反今天几乎所有对话、问答、代码生成甚至“推理”任务都是用 Decoder-only 模型完成的。区别在于它把所有任务都统一成了“续写”的形式——给它一段 prompt它负责把后面的内容续写出来。这种“一切皆生成”的哲学是 GPT 系列最初验证出来的之后被 LLaMA、DeepSeek、Qwen 们一路沿用。1.2 为什么四大家族全都选择 Decoder-only面试官特别爱问的一个问题是“为什么现在的大模型几乎都选 Decoder-only”这个问题比表面看起来更深。我总结下来至少有四层原因。第一训练目标的对齐。大模型预训练的核心目标是“下一个 token 预测”这是一个完美的自监督任务。Decoder-only 的因果注意力结构天然就是为这个目标设计的。而 Encoder-Decoder 里的双向 Encoder 部分在做“下一个 token 预测”时反而用不上属于额外的结构开销。第二训练效率。Decoder-only 的结构更简单没有 Encoder 那一大坨同样的算力可以堆更多的层数和参数量。在 Scaling Law 主导的时代训练效率直接决定了模型上限。实验也反复证明当把数据规模和算力等条件拉齐时Decoder-only 的效果往往不输甚至超过同规模的 Encoder-Decoder 模型。第三推理效率。生成任务是一个自回归过程每次只能吐一个 token。Encoder-Decoder 在生成时仍然需要依赖 Encoder 处理整个输入解码器每一步都要跟整个 Encoder 输出做注意力交互这会带来额外的计算和存储开销。Decoder-only 把输入和输出都放在同一个模型里处理每一步只需要维护一份 KV Cache工程上简单很多。第四涌现能力与统一范式。随着模型规模变大Decoder-only 这种“从左到右生成”的范式展现出更强的 in-context learning 和指令跟随能力。你可以把它理解成既然所有任务都能被改写成“上文到下文”的映射那干脆只学这一种映射方式学得足够深、足够大其他能力自然涌现出来。这个知识点是架构对比题的“地基”后面所有对比都会反复回到它。2. 注意力机制 PK从多头注意力到分组查询再到潜在注意力2.1 标准自注意力是怎么回事讲各家改动之前先把标准自注意力MHAMulti-Head Attention的细节摆出来。Transformer 的注意力操作可以理解成“让序列里的每个 token 去搜一遍所有 token把相关信息加权汇总”。具体计算时每个 token 会生成三个向量Query 表示“我想找什么”Key 表示“我提供了什么”Value 表示“我携带的实际内容”。注意力权重就是 Query 和 Key 做点积再做 softmax 归一化然后用这个权重去加权求和对应的 Value。多头Multi-Head的意思是不只是一套 Q/K/V而是很多套每套关注不同的子空间。你可以类比成多个“检索器”并行工作有的负责语法关系有的负责语义关联最后把各头的结果拼起来再过一层线性变换。MHA 的复杂度是 O(n²·d)n 是序列长度d 是隐藏维度。在 2k、4k 这种训练长度下还能勉强接受可一旦把上下文拉到 32k、128k 甚至更长推理时的显存和算力会迅速撑爆。那问题就来了怎么在尽量少损失模型能力的前提下省掉注意力里那些不必要的开销2.2 LLaMA 的 GQAKV Cache 的第一次“瘦身”注意力开销的大头除了计算 O(n²) 的矩阵乘法还有一个非常隐蔽的内存杀手——KV Cache。推理时模型是一个 token 一个 token 地往后生成每生成一个新 token都要重新去“关注”前面所有 token。如果每一层、每个头都重新算一遍所有历史 token 的 K 和 V那纯属浪费。所以工程上会把每步生成的 K 和 V 缓存下来下次直接用。这就是 KV Cache。问题是如果用的是 MHA那缓存里存的 K/V 数量等于“层数 × 头数 × 序列长度 × 维度”非常庞大。比如一个 70B 参数的模型到了 2k 长度时 KV Cache 可能占用十几 GB 显存比模型权重本身还夸张。LLaMA 系列给出的第一个答案是 GQAGrouped Query Attention分组查询注意力。思路很朴素既然多个“查询头”关注的语义空间可能高度重合那就不给每个查询头配独立的 K 和 V。比如 32 个查询头组织成 8 组每组共享一套 K 和 V。这样 KV Cache 直接缩到原来的 8/32也就是四分之一代价只是少数任务上有一丁点精度损失。实操结果证明这个损失小到几乎可以忽略。LLaMA-2 的 70B、LLaMA-3 的 8B 都用了 GQA这也是现在开源社区跑模型时最常用的配置。2.3 DeepSeek 的 MLA把压缩做到极致如果说 GQA 是“分组共享”那 DeepSeek 的 MLAMulti-head Latent Attention多头潜在注意力就是更进一步——直接把 KV 压缩到一个低维潜在空间。MLA 的做法是不直接缓存完整的 K 和 V而是先把 Key 和 Value 投影到一个很小的低维向量也就是“潜在”表示再把这个低维向量缓存下来。等到真正要计算注意力的时候再用一个上投影矩阵把它还原成完整的多头 K 和 V。这有点像视频压缩高清视频直接存储太大那就先压成一个关键帧加运动矢量播放时再解码回高清画面。这么做的收益非常直接KV Cache 可以再缩小 90% 以上。DeepSeek-V2 时代公开的数据显示MLA 让推理所需的 KV Cache 相比传统 MHA 减少了一个量级。这个优势在最吃显存的超长上下文场景里几乎是决定性的。也正因如此DeepSeek 系列可以在不太夸张的 GPU 集群上支撑比同代模型更长的上下文和更大的并发。面试里聊到 MLA你最好能主动解释一句MLA 不是简单地减少头数而是把“投影到低维空间再恢复”这个思路用在了 KV 上它的底层逻辑和 LoRA 这种低秩分解思想是相通的。能把这些概念串起来面试官会觉得你是真的理解了而不是背的。2.4 注意力机制对比速查表维度标准 MHAGQALLaMA 系MLADeepSeek 系每个查询头是否独享 KV是分组建 KVKV 被低秩压缩KV Cache 开销最高降为 1/8~1/16降到 1/10 量级实现复杂度低低-中中-高主要收益无额外设计减少显存占用极致的显存节省主要用途早期模型中大规模开源模型超长上下文、高并发推理补充一个细节Qwen 系列在 Qwen2 之后的版本也大量使用 GQA并且在针对长文本场景时做了专门的 attention 实现优化。也就是说2026 年你去看主流开源模型几乎不会再看到纯 MHA 的设计了这是架构收敛的一个明显信号。3. 位置编码从绝对到旋转再到超长上下文插值3.1 为什么 Transformer 需要位置编码RNN 处理序列是“一个接一个”地走天然带顺序信息。Transformer 是并行计算的对模型来说输入序列就是“一袋子 token”如果不加位置信息“我爱你”和“你爱我”在模型眼里没区别。所以必须把位置信息编码进去。最早用的绝对位置编码是给每个位置加上一套固定的正弦余弦向量。这种方式简单但有两个问题一是没学过足够长的位置时遇到更长的序列就懵了二是它把位置信息当“加法噪音”混进 embedding 里效果很粗糙。后来出现了相对位置编码让模型关注“两个 token 之间的距离”而不是各自的绝对坐标。但最主流的还是 2021 年提出、2022 年后被所有大模型广泛采用的 RoPERotary Position Embedding旋转位置编码。这个方案目前统治了整个开源社区强如 GPT 系列、LLaMA、DeepSeek、Qwen无一例外。3.2 RoPE 到底做了什么凭什么成为主流RoPE 的核心操作可以这样理解它把每个 token 的向量分成若干“二维旋转组”然后根据 token 的位置把每个组做一次旋转。位置越靠后旋转角度越大。这样 Query 和 Key 在做点积时就会自动带上“它们之间的距离信息”。好处有三个。第一对相对位置敏感连续且平滑模型能感知到“tokenA 在 tokenB 后面 3 个位置”这类信息。第二天然支持外推理论上只要定义了旋转角度位置得多远都能算不像绝对位置编码那样有个硬上限。第三没有额外参数RoPE 不改模型结构只是在每个 token 输入前“转一下”实现上很轻量。但 RoPE 也有一个实际痛点虽然能“外推”但直接外推到训练长度之外效果往往会崩。原因是旋转角的频率是按训练长度设计的位置一远模型就“转”得过头了。3.3 超长上下文的插值技巧base 值、动态 NTK 与 YaRN为了解决“训练 4k 长度怎么推理 128k”这个问题业界卷出了好几套方案。位置插值Position Interpolation说白了就是把“新位置”按比例“压缩”到模型熟悉的 0~4k 范围内。比如原始位置 10000按 128k/4k32 倍缩放后变成约 312。这招简单粗暴但会损失高频细节。NTK-aware 插值则借用神经正切核的思路不去均匀压缩所有频率而是只调整 RoPE 的 base 值比如从 10000 调到 500000频带被重新分配长距离性能比均匀插值更好这也是很多模型直接调整 base 值的原因。动态 NTK 则是推理时按实际序列长度实时调整 base 值而不是训练时定死。YaRN 结合了 NTK 和部分插值还针对注意力 softmax 的温度做了修正是目前很多长上下文模型使用的方案。Qwen 系列是这块的优等生。Qwen2.5 用了大量技巧扩展上下文同时对高频信息做了专门的增强避免长序列下出现性能衰减。有兴趣的同学可以直接去开源仓库看它对 RoPE 的改写代码写得非常清楚比背论文高效得多。面试官如果问“你们模型是怎么从 4k 扩展到 128k 的”标准回答路径就是训练时加大长文本数据比例 调整 RoPE 的 base 用动态 NTK 或 YaRN 做推理阶段插值并且要说明每一步的取舍。4. 架构里的“隐形肌肉”归一化、前馈网络与 MoE4.1 从 LayerNorm 到 RMSNorm砍掉均值后的稳定革命归一化Normalization是为了解决深层模型训练不稳定的问题。每一层输出的分布如果不控制深层的梯度和激活值很容易漂移甚至爆炸就像叠积木时底下的木头一直在抖动。经典的 LayerNorm 会对每个 token 的所有特征做减均值、除标准差的标准化。它有效但计算时要维护均值和方差两套统计量比较啰嗦。后来的研究发现在注意力机制里均值信息其实常常是“冗余”的于是 RMSNorm 只对残差作根均方归一化不减去均值。它减少了计算量同时被证明在深层网络中效果不输 LayerNorm。LLaMA 系列从第一代就全面采用 RMSNormDeepSeek、Qwen 也都沿用了这个设计。现在你去看任何一份大模型源码几乎都能看到 RMSNorm 的实现它已经是事实标准。还有一个小考点是 Pre-Norm vs Post-Norm。原始 Transformer 用的是 Post-Norm——先走子层再归一化。后来大家发现 Pre-Norm先归一化再走子层训练更稳定可以不用那么小心地调学习率所以几乎所有新模型都切到了 Pre-Norm。但 Pre-Norm 有个不太体面的副作用模型越堆越深时最深层的表征可能会退化。DeepSeek 在做 DeepSeek-V2 时用了类似“DeepNorm 变体”的层间缩放策略来缓解深层模型训练不稳定的问题这块属于进阶考点能答上会很加分。4.2 前馈网络FFN的演变从 ReLU 到 SwiGLU 的“配方升级”Transformer 的每一层里差不多三分之二的计算量都花在一个两层的全连接网络FFN上。它做的事情是“先把 token 投影到 4 倍宽的空间让信息充分融合再投影回原维度”。FFN 中间的激活函数直接影响信息流动的质量。早期的 ReLU 简单但粗糙负半轴直接“一刀切”置零模型需要靠足够多的神经元来弥补这个信息损失。后来 GELU 用平滑曲线替代硬切信息保留更好很多 BERT 系模型都用它。真正让各家大模型集体“换配方”的是 SwiGLU。SwiGLU 是门控线性单元GLU和 Swish 激活的组合核心思想是用另一个层生成的“门控向量”去控制主路径的信息流。举个例子把 FFN 想象成一条水管SwiGLU 给水管加了一个阀门阀门开多大由模型自己学。这种“门控”设计带来的直接效果是同样的宽度下模型表达能力更强或者反过来说想要达到同等效果用 SwiGLU 可以省参数。LLaMA、Qwen、DeepSeek 全系列几乎都在 FFN 里使用了 SwiGLU 或它的变体。面试问到这里通常还会再追问一句“你知道为什么门控能提升效果吗”答案是它能对信息做乘法式的调制而不是只做加法式的变换表达能力更强底层还能和 LSTM 的门控思想扯上关系。4.3 MoE把“一个巨无霸”拆成“一群专家”如果说上面那些改动都是微调MoEMixture of Experts混合专家就是一次彻头彻尾的结构革命。标准 FFN 是“一个模型处理所有输入”MoE 则是“一个路由网络决定这次输入交给哪些专家处理”。整个 MoE 层里有几十甚至上百个“专家子网络”但每次推理只激活其中少数几个。好比一个超大型医院不安排所有医生同时接诊而是由分诊台根据病情只安排对应的两三个专科医生来处理。这样模型的总参数量可以做到 600B、1T但每次推理实际计算量只相当于 20B、30B 的模型。DeepSeek 是 MoE 路线上最激进也最高调的玩家。DeepSeek-V2/V3 的 MoE 设计里有两个杀手锏。一个是细粒度专家分割把传统一个“大专家”拆成多个“小专家”让路由可以选择更多样的组合专家共用的平衡性更好。另一个是共享专家保留少量专家对每个输入都生效负责处理所有任务共性的部分避免其他专家被高频调用导致“贫富差距”过大。Qwen 也出了自己的 MoE 版本但相比 DeepSeek 的“极致参数密度”Qwen 的 MoE 更强调通用性和稳定性。面试里聊 MoE 的标准组合拳是先说什么是 Router、怎么算 Top-k 专家选择再说训练时如何解决“专家冻结”和负载不均衡最后补充 MoE 在推理时如何通过 expert parallelism 做分布式。把这套串起来基本就能覆盖 90% 的追问。4.4 归一化、FFN、MoE 的关键差异汇总组件GPT 系列LLaMA 系列DeepSeek 系列Qwen 系列归一化Pre-Norm细节未完全公开Pre-Norm RMSNormPre-Norm RMSNorm 变体Pre-Norm RMSNormFFN 激活各代实现有差异未完全公开SwiGLUSwiGLUSwiGLU是否 MoE未官方确认少量版本DeepSeekMoE细粒度共享部分版本门控/压缩设计传统GQAMLA MoEGQA 长文本优化需要说明一点GPT 系列因为闭源架构细节大多靠公开论文和社区逆向分析上面表格里标“未完全公开”的部分恰恰是面试中很常见的一个考察点——面试官会想你愿不愿意诚实地说“这部分我不确定”而不是编一个答案出来。这种严谨态度本身就是一种技术素质。5. 面试实战架构对比高频题与答题框架5.1 高频问题拆解与参考回答面试中关于架构对比的高频问题我整理了四道代表题每个都给一条可复用的回答思路。第一题“GPT 为什么选择 Decoder-only而不是 BERT 或 T5 的结构”参考思路生成任务统一为自回归建模Decoder-only 的因果注意力与“下一个 token 预测”目标天然匹配结构更简洁训练和推理时都不需要额外的 Encoder在同等算力下规模上限更高实验也证明大规模下 Decoder-only 的 loss 和下游效果不比 Encoder-Decoder 差。尤其别漏掉“推理时不需要维护 Encoder 输出”这个工程收益。第二题“LLaMA 相比早期 GPT 做了哪些架构上的改动”参考思路从四个维度切入——归一化用了 RMSNormFFN 激活换成了 SwiGLU注意力用 GQA至少在中大模型上位置编码用 RoPE。然后补一句这些改动没有一个是“重新发明轮子”而是把已经被论文验证过的组件系统性地组合起来再配合更高质量的数据和更合理的训练策略。这就是 LLaMA 开源后快速追平 GPT 的核心逻辑。第三题“DeepSeek 的 MLA 有什么优势为什么能省这么多显存”参考思路先解释 KV Cache 是推理内存大头然后说 MLA 把 Key/Value 先映射到低维潜在空间缓存计算时再恢复成多头 KV因此 KV Cache 和激活内存都大幅下降同时推理吞吐变高。最后主动提一句“MLA 和 LoRA 都用了低秩思想”把知识串起来会有意外加分。第四题“Qwen 和 LLaMA 在架构上最大的差异是什么”参考思路基础组件高度相似都是 RMSNorm、RoPE、GQA、SwiGLU真正的差异在训练数据和工程策略——Qwen 在超长文本、多语言、特殊 token 上下得功夫更重Qwen 的词汇表经过了特别设计对中英文混合场景做了优化词汇量也处于较高水平扩展上下文时用了更多针对性的 RoPE 变体。面试里不要只停留在“组件差异”要说“同样的组件不同团队如何用数据和方法论拉开差距”。5.2 我私藏的答题框架与避坑清单准备这类面试题我最推荐一个“三层回答法”。先讲结论直接说出“XX 模型在注意力上用了 GQA/MLA”这种一句话结论。再讲原理解释这种设计为什么能带来收益尽量带上 KV Cache、显存、训练稳定性这些工程指标。最后讲选型站在项目场景角度说“如果是我设计在什么情况下我会选它什么情况下不选”。面试官很吃这套因为它说明你不是背概念而是有架构决策能力。避坑清单我也列一下这些都是我在真实面试现场见过别人踩的坑。不要为了体现知识面而硬扯不相关的名词。比如把“MLA”说成“MQA 的升级版”就不够严谨MLA 的压缩机制和 MQA 的分组共享根本不是一回事。不要张口就来具体参数。真的记不清 LLaMA-3 的中间层大小或 DeepSeek-V3 到底多少个专家就老实说“这是一个细节我不太确定但它的设计意图是……”诚实比准确更能赢得好感。不要忽略“闭源模型”这个前提。讲 GPT 架构时要始终强调“基于公开论文和社区分析可能存在不准确”这种严谨本身就是专业度。5.3 从“背答案”到“能推演”我的日常训练方法最后分享一个我自己验证有效的方法不要把四大家族当四个孤立的模型去背而是把它们当成“不同团队在同一个 Transformer 基座上做的不同工程选择”。我每次研究一个新模型会固定走四步看架构图、读源码关键实现、跑一个小规模的消融实验对比组件差异、最后试着用一段 50 行以内的伪代码把核心模块的流程写出来。只要你能亲手写出“RoPE 的旋转角怎么算”“GQA 的 index 怎么映射”“MLA 的低维投影在 cache 里到底存了哪几个向量”你对这些架构的理解就不是死记硬背而是真的可以随时推演。面试时会明显感觉到那种“自己理解过的细节”和“背诵过的结论”在表达上的差别非常之大。我现在拿到一个新模型还是会习惯性地把它的 attention 实现和另外几个主流模型放在一起读边读边画各自的 KV Cache 结构图。一旦你亲自动手走一遍数据流动很多面试问题的答案都会自己浮出来。这也是我认为准备架构类面试最高效的路径没有之一。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑