2026大模型面试:大模型架构演进与对比必考28题(含答案)
精选自176道采集题目,保留最高频最核心的28题 | 难度:⭐基础 ⭐⭐进阶 ⭐⭐⭐深入
一、GPT与LLaMA系列演进(7题)
1. ⭐⭐ [字节/高频] GPT系列从GPT-1到GPT-4的架构演进主要脉络是什么?
一句话秒答: 四代GPT走的是一条"预训练范式→暴力出奇迹→多模态融合"的进化路线,每一步都在重新定义规模的上限。
展开来说:
GPT-1其实干了一件很简单但当时很大胆的事------把Transformer Decoder拿来做无监督预训练,再接个微调头。12层、117M参数,放在今天连个玩具都算不上,但它证明了"先预训练再微调"这条路走得通。
到GPT-2,OpenAI的核心观点变了:不需要微调了。48层1.5B参数,直接zero-shot就能写文章,虽然质量还行但已经让人看到了规模的力量。那句著名的"too dangerous to release"虽然有点PR嫌疑,但确实让学术界意识到语言模型的能力是可以随规模涌现的。
GPT-3把参数量怼到175B(96层),提出了In-Context Learning和Few-shot,从此不用更新梯度就能让模型做新任务。这个范式影响极其深远,后面所有的prompt engineering都源于此。
GPT-4是个分水岭,多模态进场了(能看图),据各种信息推测用了MoE架构(可能是8个约220B的专家),加上RLHF对齐。性能确实强,但OpenAI从此不再公开架构细节。
面试加分: 如果面试官追问"为什么GPT-3之后OpenAI不再开源",可以从竞争壁垒和安全考量两个角度回答------一方面是商业护城河,另一方面是In-Context Learning能力太强带来的misuse风险。GPT系列的演进核心逻辑其实就一句话:让预训练目标尽可能简单(next token prediction),把复杂度全部交给规模。
2. ⭐ [高频] GPT系列采用的Decoder-Only架构与BERT的Encoder-Only架构有什么本质区别?
一句话秒答: 核心就是注意力掩码不同------GPT用因果掩码只看左边,BERT用双向全注意力两边都看,这一个设计决策决定了两者完全不同的能力边界。
展开来说:
训练目标上,GPT做的是自回归next-token prediction,预测下一个词;BERT是掩码语言模型(MLM),随机遮住15%的token做完形填空。看起来只是任务不同,但背后的信息流方向截然相反。
GPT单向从左到右,天生就是为生成而设计的------训练时怎么算,推理时就怎么用,非常统一。BERT双向编码,对理解任务(分类、NER、匹配)确实有天然优势,因为它能同时看到上下文。但BERT没法直接做文本生成,你想让它一个字一个字往外吐,得额外加解码器,很别扭。
有意思的是,当模型规模大到一定程度后,Decoder-Only在理解任务上也能追平甚至超越Encoder-Only。GPT-3的few-shot分类效果已经能打很多微调过的BERT了。这就是为什么现在几乎所有大模型都选Decoder-Only------你搞一个架构就能通吃生成和理解,何乐而不为。
面试加分: 面试中常见的追问是"BERT为什么不能做生成",本质原因是BERT训练时每个位置能看到全部上下文,推理时你让它自回归生成第i个token,它理论上需要看到i+1之后的信息但又没有,导致训练和推理不一致。这个train-test mismatch才是根本问题。
3. ⭐ [Meta/高频] LLaMA与标准Transformer架构有哪些不同之处?
一句话秒答: LLaMA本质上是"标准Transformer Decoder + 三件套替换"------把归一化换成Pre-RMSNorm,激活函数换成SwiGLU,位置编码换成RoPE,再把bias一去,就是它了。
展开来说:
先说Pre-RMSNorm。标准Transformer用的是Post-LayerNorm(先算attention/FFN,再norm),但这玩意在深模型里容易梯度爆炸。LLaMA把它换成Pre-RMSNorm------先norm再算,而且RMSNorm还省掉了均值中心化的步骤,只做缩放。训练稳定性好了一大截,速度也快了15-20%。
再说SwiGLU激活。标准Transformer的FFN用ReLU,LLaMA换成了SwiGLU------本质是一个门控机制,一路做Swish激活当"门",另一路做线性变换当"值",两路相乘做信息过滤。实验上稳定提升1-2个点,代价是FFN多了一个投影矩阵,但隐层维度从4d调成8d/3来保持参数量平衡。
最后是RoPE旋转位置编码,替掉了原始的绝对位置编码。RoPE的精妙之处在于它用旋转矩阵编码位置,让q和k做内积时自然就只依赖相对位置差,外推性比绝对编码好太多。
另外LLaMA还去掉了大部分线性层的bias项。这个看似不起眼,但简化了模型结构,参数量也略有减少。
面试加分: 这三件套现在已经成了开源大模型的事实标准------Qwen、Mistral、DeepSeek、Baichuan全都在用。你可以反问面试官:"现在你很难找到一个主流开源大模型不同时用这三个技术的。" 知道这三件套的来源和动机比记住公式更重要。
4. ⭐⭐ [高频] LLaMA使用了哪些关键技术改进(RMSNorm、SwiGLU、RoPE)?各自的作用是什么?
一句话秒答: 三项改进各解决一个核心痛点------RMSNorm管训练稳定性,SwiGLU管模型表达力,RoPE管位置建模和长度外推,三者组合就是当前开源大模型的标配技术栈。
展开来说:
| 技术 | 替换对象 | 核心作用 | 关键原理 |
|---|---|---|---|
| RMSNorm | LayerNorm | 训练稳定 + 加速15-20% | 只做缩放不做中心化,省去均值计算 |
| SwiGLU | ReLU/GELU | 提升模型表达能力 | Swish激活 × 门控线性单元,FFN隐层维度为 8d/3 |
| RoPE | 绝对位置编码 | 更好的长度外推性 | 将位置信息编码为旋转矩阵,内积自然反映相对距离 |
RMSNorm的原理特别简单:LayerNorm = 中心化 + 缩放,RMSNorm直接砍掉中心化只保留缩放。有论文专门验证过,LayerNorm的效果主要来自缩放不变性,中心化那一步贡献微乎其微。去掉之后计算少了,效果没掉,纯赚。
SwiGLU的妙处在于门控。普通FFN是 ReLU(xW₁)W₂,信息无差别通过。SwiGLU变成 Swish(xW₁) ⊙ (xW₃) 再乘W₂,等于多了一个学出来的"阀门"控制哪些信息该通过。PaLM的论文里做了详细消融实验,同参数量下SwiGLU稳定涨点。
RoPE是苏剑林提出的,把位置编码做成旋转操作。最优美的地方在于:给q乘一个旋转矩阵R_m,给k乘一个R_n,做完内积后自动就只依赖m-n这个相对距离了。实现上也很轻量,就是对向量两两分组做cos/sin变换,几乎没有额外开销。
面试加分: 如果面试官问"这三个技术能不能单独用",答案是完全可以,它们之间没有依赖关系。但实践证明三者组合的收益是叠加的,所以现在大家都一起用。另外可以提一句,RoPE还有很多扩展变体(NTK-aware、YaRN、LongRoPE),专门解决超长上下文的外推问题。
5. ⭐⭐ [Meta/高频] LLaMA-2相比LLaMA-1有哪些主要改进?
一句话秒答: LLaMA-2做了三件大事------数据量翻倍到1.4T tokens、上下文从2K拉到4K、70B引入GQA,再加上RLHF对齐训练搞出了Chat版本。
展开来说:
数据层面,LLaMA-2的训练数据从1.0T涨到1.4T tokens,增加了40%,同时加强了数据清洗和质量过滤。数据质量这块Meta没有披露太多细节,但从结果看确实有效。
架构层面最重要的变化是在70B模型上引入了GQA(Grouped-Query Attention),把32个Q头分成8组共享KV,推理速度提升约30%,KV缓存减少4倍。注意8B和13B模型当时还没用GQA,这个要到LLaMA-3才全系列铺开。上下文从2K扩展到4K,通过调整RoPE的频率基底实现。
对齐训练是LLaMA-2最出圈的部分。LLaMA-2-Chat采用了RLHF(PPO),还发明了Ghost Attention机制来保持多轮对话中系统提示的一致性------简单来说就是在每轮对话的训练数据里都塞上system prompt,让模型"记住"它的角色设定。安全方面,Meta做了红队测试并训练了专门的安全奖励模型来降低有害输出。
面试加分: Ghost Attention是个很好的面试谈资。它本质上是个数据工程技巧而非架构创新,但效果非常好------解决了多轮对话中模型"忘记人设"的问题。如果面试官问到多轮对话一致性,主动提Ghost Attention会显得你对细节很熟悉。
6. ⭐⭐ [Meta/高频] LLaMA-3相比之前版本有哪些架构改进?
一句话秒答: LLaMA-3最大的升级是词表从32K暴涨到128K、训练数据到15T+ tokens,加上GQA全系列覆盖和405B旗舰版本。
展开来说:
词表扩展是LLaMA-3最显著的变化,从32K涨到128K tokens,分词器也从SentencePiece换到了tiktoken。这个改动对多语言和代码的编码效率提升巨大------中文字符不再被拆成好几个token,代码中的常见标识符也能整个编码。相同文本的token数平均减少15-20%,等于变相扩大了上下文窗口。
数据量是真正的"暴力美学"------15T+ tokens,是LLaMA-2的10倍以上。Meta投入了大量精力做数据质量筛选,包括去重、有害内容过滤、质量打分等。
架构层面,GQA全系列铺开了,8B和70B都用。这样做的好处是架构统一,便于工程优化和生态建设。LLaMA-3.1推出了405B参数版本,首次让开源模型在性能上比肩GPT-4。上下文窗口也从8K基础版扩展到128K,采用渐进式训练策略------先在8K上训练,再逐步拉长。
面试加分: 面试中可以强调LLaMA-3的哲学变化:从LLaMA-1/2的"用更少数据训练更好模型"变成了"有多少数据用多少数据"。Meta在LLaMA-3论文里明确说模型还没到数据瓶颈,暗示Scaling Law还有空间。另外405B版本的意义不仅是性能,更是让研究者可以用开源模型做之前只有闭源模型才能做的研究。
7. ⭐⭐ [面经] LLaMA-3的tokenizer有什么变化?词表大小从32K扩展到128K带来了什么影响?
一句话秒答: 从SentencePiece换到tiktoken,词表从32K扩到128K,核心trade-off是用更大的Embedding层换取更高的编码效率和更少的推理步数。
展开来说:
编码效率是最直接的收益。128K词表意味着更多的常见字符组合被当作一个整体token,相同文本的token数平均少了15-20%。对中文来说提升尤其明显,以前一个中文字可能被拆成2-3个token,现在常见汉字大概率就是1个token。代码场景也类似,常见的关键字、变量名模式都能整个编码了。
推理加速是编码效率的直接后果------token数少了,自回归解码的步数就少了,端到端生成速度更快。而且每个token承载的信息密度更高,等效上下文窗口也变大了。
参数代价确实存在但不致命。Embedding层和LM Head的参数量从32K×d_model涨到128K×d_model,绝对值增加了不少,但相对于8B/70B的总参数量来说占比不大------大概增加几百M参数,对70B模型来说不到1%。
多语言友好度大幅提升。更大的词表能覆盖更多语言的常用字符和词组,减少了OOV(词表外)问题和碎片化编码。这对做多语言任务来说是实实在在的好处。
面试加分: 面试中可以分析一个有趣的权衡:词表大了Embedding层大了,但序列长度短了计算attention的开销就少了。由于attention是O(n²)的,token数减少15%意味着attention计算量减少约28%,这个收益远大于Embedding增加的那点参数开销。所以大词表总体是赚的。
二、Qwen/ChatGLM/DeepSeek系列(6题)
8. ⭐⭐ [高频] ChatGLM-2相比ChatGLM-1有哪些架构上的变化?
一句话秒答: 最核心的变化是从GLM那个略显别扭的Prefix LM + 自回归填空架构,回归到了标准的Causal Decoder-Only,算是"认清了现实"。
展开来说:
ChatGLM-1用的是GLM范式,比较特殊------输入前缀部分用双向attention,生成部分用因果attention,本质上是Prefix LM。这个设计理论上能同时兼顾理解和生成,但工程实现复杂,而且随着GPT系列的成功,大家发现纯Causal Decoder-Only其实就够了。
所以ChatGLM-2果断转向了标准因果语言模型。注意力机制也做了调整,继续用Multi-Query Attention(MQA),只保留1个KV头来极致压缩推理时的KV缓存。上下文从2K拉到了32K,能处理长文档了。训练方面引入了FlashAttention-2加速,数据上用了更大规模的中英双语语料。
这个架构转向的决策很有意思------它说明在实践中,Prefix LM相比Causal LM的理论优势在规模上来之后并不显著,反而带来了额外的工程复杂度。
面试加分: 如果面试官问"GLM为什么最初选择Prefix LM",可以解释GLM的初衷是通过自回归填空(autoregressive blank infilling)统一NLU和NLG任务。思路是好的,但实践证明,当模型规模足够大时,纯Causal LM通过指令微调就能覆盖几乎所有场景,没必要在架构上额外设计。
9. ⭐⭐ [阿里/高频] Qwen系列模型的架构特点是什么?与LLaMA有何异同?
一句话秒答: Qwen基本就是"LLaMA架构 + 中文优化 + 一些细节微调",最大的差异是QKV保留了bias、词表更大、用了NTK-aware的RoPE扩展。
展开来说:
大的架构设计上,Qwen和LLaMA几乎一模一样------Pre-RMSNorm、SwiGLU、RoPE,标准三件套全部到位。差异主要在细节层面:
| 特性 | LLaMA | Qwen |
|---|---|---|
| 位置编码 | RoPE | RoPE(NTK-aware扩展) |
| 注意力 | GQA(70B才有→后来全系列) | GQA(一开始就全系列) |
| 词表大小 | 32K→128K | ~152K(更大,覆盖多语言+代码) |
| FFN偏置 | 无bias | QKV有bias,其他无bias |
| 上下文 | 4K→128K | 8K→32K→128K(YaRN扩展) |
最值得聊的差异是bias的设计选择。LLaMA全面去掉了bias,认为这样更简洁。Qwen偏偏在attention的QKV投影中保留了bias,阿里的说法是这有助于训练稳定性。这个分歧至今没有定论,两边都能训出好模型。
词表方面Qwen更激进,152K的大词表对中文和代码有更细粒度的覆盖。位置编码扩展上Qwen采用YaRN方案,比LLaMA常用的直接频率缩放方案外推效果更好。
面试加分: 面试中可以说一个观察:开源大模型的架构趋同化非常严重,Qwen、LLaMA、Mistral、Baichuan等在核心架构上的差异越来越小,真正的差距在数据质量、训练策略和后训练对齐上。如果面试官问"既然架构一样为什么效果不同",数据是最核心的答案。
10. ⭐⭐⭐ [高频] DeepSeek-V2的MLA(Multi-head Latent Attention)机制的核心思想是什么?
一句话秒答: MLA的核心就是"不存完整KV,存一个压缩后的小向量,用的时候再解压"------通过低秩压缩把KV缓存干到只剩原来的5-13%。
展开来说:
传统MHA要给每个attention头存独立的K和V向量,KV缓存随序列长度和头数线性增长,推理时这是最大的内存瓶颈。GQA的做法是让多个Q头共享同一组KV头来减少存储。MLA走了一条完全不同的路。
MLA的做法是:把每一步的hidden state h_t通过一个下投影矩阵W_DKV压缩到一个低维的latent向量 c_t,推理时只缓存这个c_t。需要用K和V时,再通过上投影矩阵W_UK和W_UV把c_t还原成完整的K和V。这个c_t的维度d_c远小于原始的n_h × d_h,所以缓存量急剧减少。
为了兼容RoPE,MLA做了一个巧妙的处理------把Key拆成两部分,一部分从c_t解压得到(不带位置信息),另一部分用一个小维度的独立投影专门编码RoPE位置信息,两者拼接。这样既保留了低秩压缩的优势,又不丢失位置信息。
面试加分: MLA的数学很优美,面试中如果能说清楚"为什么不能直接对压缩后的c_t做RoPE"就是加分项。原因是RoPE需要对K做逐位置的旋转变换,但c_t是多个位置信息的压缩表示,对c_t做旋转会破坏压缩-解压的一致性。所以必须把位置相关部分单独拎出来处理。
11. ⭐⭐⭐ [DeepSeek/高频] MLA是如何通过低秩压缩来减少KV缓存的?与GQA的方案有何本质区别?
一句话秒答: GQA是"减少KV头的数量"(离散共享),MLA是"降低KV表示的维度"(连续压缩),两者压缩路径完全不同,MLA在同等缓存预算下信息保留更充分。
展开来说:
先看两条路径的对比:
GQA的路径:把n_h个query头分成g组,每组共享1对KV头。比如32个Q头分8组,只需要8对KV头。缓存减少了,但每对KV头的维度没变,是"粗粒度的离散共享"。
MLA的路径:h → W_DKV → c_t(低秩瓶颈向量)→ W_UK / W_UV → 还原出完整的K和V。缓存中只存c_t这个低维向量,维度可能只有原来的1/10甚至更少。是"细粒度的连续压缩"。
本质区别在于信息压缩的方式。GQA让同一组内的Q头共享完全相同的KV信息,组间信息完全独立------这是一种"硬共享",信息损失是离散的。MLA通过矩阵分解把所有头的KV信息联合压缩到一个低维空间,信息损失是平滑的、可以通过学习来最小化的。
性能对比上,MLA在缓存量约为GQA一半的情况下,效果持平甚至略优。这是DeepSeek-V2最核心的创新点,后续DeepSeek-V3也继续沿用了这个设计。
面试加分: 可以用一个类比来解释两者的区别:GQA就像合并办公室(4个人共享一间办公室,但办公室大小不变),MLA就像把所有人的文件都扫描压缩成电子版存储(每份文件都变小了,但信息还在)。前者省空间靠减少房间数,后者省空间靠压缩每份文件,MLA在空间利用率上天然更有优势。
12. ⭐⭐⭐ [DeepSeek/高频] DeepSeek-V3相比V2在架构上有哪些进一步的改进?
一句话秒答: V3在V2的MLA+MoE基础上做了四个大动作------去掉辅助损失的负载均衡、多token预测、FP8混合精度训练、以及把MoE规模推到671B总参数。
展开来说:
最有学术价值的改进是无辅助损失负载均衡(Auxiliary-Loss-Free Load Balancing)。传统MoE用辅助损失函数来鼓励负载均匀,但这个损失跟主任务目标是冲突的------你一边想让模型学好语言建模,一边又要它顾及专家均衡,两个目标打架。V3直接去掉辅助损失,改用per-expert bias动态调节路由,后面第13题会详细讲。
MoE规模上,V3总参数671B,每个token激活37B参数。具体是256个路由专家 + 1个共享专家,Top-8路由。共享专家的设计是从V2继承的,确保所有token都经过一些基础处理。
多Token预测(MTP)也是个亮点。训练时不只预测下一个token,而是同时预测未来多个token。这样做有两个好处:一是提供更丰富的训练信号增强表征学习;二是推理时可以把MTP头当作草稿模型做Speculative Decoding,免费加速。
FP8混合精度训练是工程壮举------V3首次在这个规模上验证了FP8训练的可行性。配合极致的工程优化,2048块H800训练约2个月,总成本大约557万美元,是同级别模型的约1/10。14.8T tokens的训练数据,性价比拉满。
面试加分: DeepSeek-V3最让业界震动的不是性能本身,而是成本。557万美元训练一个比肩GPT-4的模型,这个数字彻底改变了行业对大模型训练成本的认知。如果面试官问"DeepSeek为什么重要",成本效率是最核心的答案,架构创新(MLA、无辅助损失MoE)都是服务于这个目标的。
13. ⭐⭐⭐ [高频] DeepSeek-V3的无辅助损失负载均衡(Auxiliary-Loss-Free Load Balancing)是如何实现的?
一句话秒答: 给每个专家维护一个可动态调节的bias,路由打分时加上bias来引导流量均衡,但计算门控权重时去掉bias,这样就不需要额外的负载均衡损失函数了。
展开来说:
传统做法是在训练loss里加一项辅助损失,比如Switch Transformer的 L_balance = α · N · Σ(f_i · P_i),f_i是某专家实际被选中的比例,P_i是路由概率的均值。这个辅助损失鼓励每个专家被均匀选择,但问题是------它的梯度方向跟语言建模的主损失可能冲突。模型一边想把数学题分给"数学专家",一边被辅助损失拉回来说"你要雨露均沾"。这种冲突会降低模型性能上限。
DeepSeek-V3的做法非常巧妙:每个专家有一个bias b_i,路由时的选择分数 = gate(x)_i + b_i,按这个分数选Top-K个专家。但选完之后,计算门控权重时只用原始的gate(x)_i,不含bias。这样bias只影响"选谁",不影响"怎么组合"。
bias的更新规则是纯启发式的反馈环:如果某个专家被选中的次数太多(过载),就降低它的bias;被选中太少(空闲),就提升bias。不需要梯度,不需要反向传播,就是简单的统计监控 + 动态调节。
效果上,V3实验表明这种方法在保持良好负载均衡的同时,模型质量优于使用辅助损失的版本。因为主损失不再被辅助目标干扰,模型可以自由地学到最优的专家分配策略。
面试加分: 这个设计的思想很深刻------它把"优化目标"和"约束条件"解耦了。传统方法把负载均衡当优化目标(加到loss里),V3把它当约束条件(通过bias在路由层面保证)。这种解耦让主目标可以全力优化语言建模,负载均衡由工程手段保证。面试中把这个抽象层面的思路讲清楚,比背公式值钱得多。
三、MoE架构与Mamba/SSM(5题)
14. ⭐⭐ [高频] Mixtral 8x7B的MoE架构具体是怎样的?每个token激活几个专家?
一句话秒答: 8个FFN专家,每个token选Top-2个,总参数46.7B但只激活12.9B,用13B Dense模型的推理成本打出了70B的效果。
展开来说:
Mixtral的结构其实很直觉------把每层Transformer Block中的FFN替换成8个并行的FFN专家,Attention层不动,所有token共享同一个Attention。
路由策略是Top-2门控:每个token过一个轻量的Gate Network(一层线性+Softmax),输出8个分数,选分数最高的2个专家。两个专家的输出按各自的门控权重加权求和,作为最终FFN的输出。
参数效率是Mixtral最吸引人的地方。总参数46.7B,但每次前向只有2个专家被激活,激活参数约12.9B(2×7B的FFN + 共享的Attention参数)。所以推理时的计算量接近一个13B的Dense模型,但因为总参数多,知识容量大,效果能打LLaMA-2 70B甚至有些benchmark上更好。推理速度比70B Dense快约6倍。
要注意的是,MoE的"总参数"和"激活参数"是两个完全不同的概念。说"Mixtral 8x7B"容易让人误以为它有56B参数,实际上是46.7B,因为Attention层是共享的不算重复。
面试加分: 面试中一个常见误区是认为MoE模型"每次只用了总参数的一小部分所以浪费了"。其实不是浪费------不同的专家学会处理不同类型的输入,整体知识容量确实比同等激活参数量的Dense模型大。MoE的本质是"参数量和计算量的解耦",让你可以在不增加推理成本的情况下增加模型容量。
15. ⭐ [高频] MoE模型中的"专家"具体指什么?通常替换Transformer的哪一层?
一句话秒答: 所谓"专家"就是一个标准FFN模块,结构和Dense模型的FFN完全一样。它只替换Transformer Block中的FFN层,Attention层保持共享不变。
展开来说:
很多人第一次听到"专家"会觉得很神秘,其实它就是一个普通的前馈网络------两层线性变换夹一个激活函数。和Dense模型中的FFN结构完全相同,没有任何额外设计。之所以叫"专家",是因为不同的FFN通过路由机制会自然地学会specialization,处理不同类型的输入。
替换位置很明确:只替换FFN层。Self-Attention层对所有token完全共享,不做MoE化。原因也好理解------Attention做的是token之间的信息交互,它需要看到所有token才有意义,没法拆分到不同专家里。FFN做的是每个token独立的非线性变换,天然适合并行化到多个专家。
路由网络是MoE新增的组件,通常就是一层线性投影 + Softmax,把token的hidden state映射到N个专家上的概率分布,选Top-K个。非常轻量,参数量可以忽略不计。
并非每一层都要用MoE。DeepSeek就是每隔一层用一次MoE,其他层用普通Dense FFN。这种交替部署可以减少通信开销,同时保持足够的稀疏化程度。
面试加分: 面试中如果被问到"为什么不对Attention也做MoE",可以从两个角度回答:第一,Attention的KV需要在所有token间共享,拆分到专家会破坏全局信息交互;第二,FFN的参数量通常是Attention的2-3倍(特别是SwiGLU之后),对FFN做MoE的参数节省效果更显著。不过最近也有一些工作在探索Attention的MoE化,比如对不同头做路由,但还没成为主流。
16. ⭐⭐ [高频] MoE中如何解决负载均衡问题?有哪些损失函数设计?
一句话秒答: 负载不均衡会导致路由坍塌(大部分token涌向少数专家),主要靠辅助损失函数 + 容量因子限制来解决,DeepSeek-V3则走出了无辅助损失的新路。
展开来说:
负载不均衡是MoE的老大难问题。如果不加干预,路由网络会很快收敛到只选1-2个专家的退化状态------因为被选中多的专家获得更多训练信号,变得更强,进而被更多地选中,形成正反馈。最终大部分专家废掉,MoE退化成一个小的Dense模型。
辅助损失(Auxiliary Loss)是最经典的解决方案。Switch Transformer提出的公式是 L_balance = α · N · Σ(f_i · P_i),其中f_i是第i个专家实际被分配到的token比例,P_i是路由概率的均值。这个损失鼓励f_i和P_i都尽可能均匀。超参α控制均衡力度,通常取0.01左右。
容量因子(Capacity Factor)是另一个约束手段。给每个专家设一个上限,每批次最多处理 CF × (N/E) 个token(N是总token数,E是专家数)。超出上限的token要么被丢弃,要么溢出到其他专家。CF通常设1.0-1.5。
Z-Loss是GShard引入的,对路由logits做正则化防止数值过大导致训练不稳定。简单来说就是惩罚路由打分的绝对值。
最新的趋势是DeepSeek-V3的无辅助损失方案(第13题已详述),用per-expert bias动态调节路由,完全不需要辅助损失函数,避免了主目标被干扰的问题。
面试加分: 面试中展示对负载均衡问题的深入理解,可以提到一个很有意思的现象------"专家坍塌不一定是坏事"。有研究发现让少数专家被更频繁选中,模型质量有时反而更高,因为这些专家可能处理的就是高频通用模式。强制均匀分配可能反而限制了模型的自然specialization。这也是为什么V3选择去掉辅助损失的原因之一。
17. ⭐⭐⭐ [高频] Mamba的核心创新------选择性状态空间(Selective State Space)机制是什么?
一句话秒答: Mamba在传统SSM(S4)的基础上,让B、C和离散化步长Δ变成输入的函数,从而让状态转移随内容动态变化------用一句话说就是给SSM装上了"内容感知"的能力。
展开来说:
要理解Mamba得先知道它要解决什么问题。传统SSM(如S4)的状态转移矩阵A、B、C是固定的参数,跟输入内容无关。这意味着无论你输入的是"今天天气不错"还是"量子力学的基本原理",状态的更新方式完全一样。这就像一个不会根据内容调整阅读速度的读者------重要的信息和垃圾信息都以同样的速率被处理。
Mamba的做法是让B、C、Δ都变成输入x的函数:B(x)、C(x)、Δ(x)。这样每一步的状态转移都是"有选择性的"------模型看到重要内容时可以多记一点,看到不重要的可以快速略过。
其中Δ的角色特别关键,它控制离散化步长,实际上起到了"遗忘门"的作用。Δ大的时候,新输入被大量注入状态,旧状态被大幅覆盖(遗忘旧的,接受新的)。Δ小的时候,状态基本保持不变,当前输入被忽略(保持记忆,跳过噪音)。
硬件优化也是Mamba论文的核心贡献之一。输入依赖的参数意味着不能用FFT做全局卷积加速了(S4的杀手锏),Mamba转而设计了hardware-aware的并行扫描(parallel scan)算法,在GPU上高效实现O(n)的线性复杂度。
面试加分: Mamba的选择性机制跟LSTM的门控机制有异曲同工之妙------Δ对应遗忘门,B控制输入门,C控制输出门。面试中做这个类比会让面试官觉得你对RNN的历史脉络有清晰认知。区别在于Mamba是通过连续状态空间来实现的,理论上比离散的门控更平滑,而且并行扫描让它避免了LSTM的序列依赖问题。
18. ⭐⭐ [高频] Mamba相比Transformer在序列建模上有什么优势和劣势?
一句话秒答: Mamba用O(n)线性复杂度和固定大小状态换来了长序列的效率优势,但在需要精确远距离信息检索的任务上还是干不过Attention。
展开来说:
| 维度 | Transformer | Mamba |
|---|---|---|
| 时间复杂度 | O(n²) | O(n) |
| KV缓存 | 随序列线性增长 | 固定大小状态 |
| 长距离依赖 | 精确(全局Attention) | 压缩记忆(可能丢失细节) |
| 推理速度 | 受KV Cache大小限制 | 恒定时间per step |
| 训练并行性 | 高(矩阵乘法) | 需并行扫描(稍复杂但可行) |
Mamba的优势在长序列场景下非常明显。当序列长度达到几十万甚至上百万token时,Transformer的O(n²) attention计算量和线性增长的KV缓存都会成为瓶颈。Mamba的固定大小状态意味着无论序列多长,每步推理的计算量和内存都是恒定的。
但Mamba的劣势也很明确:它的状态是对历史信息的"压缩摘要",不可能做到像Attention那样对序列中任意两个位置做O(1)精确查询。所以在"大海捞针"类任务(从很长的上下文中精确找到某个特定信息)上,Mamba表现不如Attention。
目前的趋势是混合架构。Jamba(AI21 Labs)交替使用Mamba层和Attention层,让Mamba处理长距离的粗粒度依赖,Attention处理短距离的精确依赖。这种取长补短的思路很可能是未来的方向。
面试加分: 一个很好的面试切入点是谈"信息压缩的代价"。Transformer通过KV Cache保留了序列中所有位置的完整信息,代价是内存线性增长。Mamba通过固定状态压缩了所有历史信息,代价是信息不可避免地丢失。这是一个根本性的trade-off,不存在"既要又要"的完美方案。混合架构本质上是在这个连续谱上找一个平衡点。
四、架构组件对比(GQA/RMSNorm/RoPE/SwiGLU/FlashAttention)(5题)
19. ⭐⭐ [高频] GQA(Grouped-Query Attention)的设计动机和原理是什么?
一句话秒答: GQA就是在MHA(每个头独立KV)和MQA(所有头共享1个KV)之间找了个折中------把Q头分组,每组共享一对KV头,牺牲一点点质量换取大幅推理加速。
展开来说:
先理解问题:推理时的瓶颈不是计算而是内存带宽。每一步解码都要从显存读取完整的KV Cache,MHA下KV Cache的大小是 n_h × d_h × seq_len,head数越多cache越大,内存带宽越紧张。
MQA是极端方案------所有head共享1对KV,cache降到最小,推理最快。但问题是质量损失明显,尤其在大模型上。直觉上好理解:32个Q头看到的都是完全一样的KV信息,信息多样性没了。
GQA就是折中:把n_h个Q头分成g组,每组共享1对KV头。g=1就是MQA,g=n_h就是MHA。通过调节g你可以在质量和速度之间任意滑动。
LLaMA-2 70B的具体配置是32个Q头分8组,每组4个Q头共享1对KV,KV Cache减少4倍。Google原论文的实验表明,GQA从MHA模型微调迁移只需要原始预训练量的5%就能恢复质量,性价比极高。
面试加分: 可以提一个实际部署的视角:GQA之所以成为主流不仅是因为它质量好,更因为它和现有框架的兼容性好。MQA虽然更快但需要从头训练或者从MHA做有损转换;GQA可以从MHA模型通过少量继续训练平滑迁移。工程友好度在实际选型中权重很大。
20. ⭐⭐ [高频] GQA相比MHA和MQA各有什么优势?它是如何在性能和推理速度之间取得平衡的?
一句话秒答: GQA质量上接近MHA(差距不到1%),速度上接近MQA,是目前大模型推理效率和质量之间的最优平衡点。
展开来说:
三种方案的全面对比:
| 方案 | KV头数 | 缓存量 | 模型质量 | 推理速度 |
|---|---|---|---|---|
| MHA | n_h | 最大 | 最优 | 最慢 |
| GQA | g(1<g<n_h) | 中等 | 接近MHA | 较快 |
| MQA | 1 | 最小 | 有损失 | 最快 |
平衡机制非常直觉------组数g就是那个调节旋钮。g越大,每组内共享KV的Q头越少,越接近MHA(质量优先)。g越小,共享程度越高,越接近MQA(速度优先)。工程上可以根据部署硬件的内存带宽来选择最优的g值。
Google论文里一个关键实验结论:GQA-8(8组)在几乎所有benchmark上与MHA的差距都在1%以内,但推理吞吐量提升了接近MQA的水平。这个结果说明KV的冗余度其实很高------32个独立KV头里有大量重复信息,合并到8组基本不影响模型能力。
另一个实践中很重要的点:GQA可以从已有的MHA模型通过"均值合并+继续训练"的方式迁移过来,不需要从头训练。Google验证过只需要原始预训练量的5%(约几十B tokens)就能恢复质量,这大大降低了从MHA到GQA的迁移成本。
面试加分: 面试中可以聊一下GQA和MLA的竞争关系。GQA是"减少KV头数量"的思路,MLA是"降低KV表示维度"的思路。目前GQA因为简单有效仍是主流(LLaMA-3、Qwen、Mistral都在用),但MLA的理论压缩比更高。如果MLA的工程实现能进一步简化,未来可能会逐步替代GQA。
21. ⭐ [高频] RMSNorm与LayerNorm的主要区别是什么?为什么可以去掉均值部分?
一句话秒答: RMSNorm就是"去掉均值中心化的LayerNorm"------只做均方根缩放,计算快了15-20%,效果基本不掉。
展开来说:
先写公式直观对比一下:
LayerNorm:y = (x - μ) / σ · γ + β,需要算均值μ和方差σ两步。
RMSNorm:y = x / RMS(x) · γ,其中 RMS(x) = sqrt(Σx_i²/d),只需要算均方根一步。
区别一目了然:RMSNorm砍掉了减均值(centering)那一步,只保留了缩放(scaling)。同时连bias项β也一起去掉了。
为什么能去掉均值?有一篇专门的论文做了实验分析,结论是LayerNorm的有效性主要来自re-scaling(让不同维度的尺度一致),而不是re-centering(让均值为零)。把centering去掉后,模型在各种任务上的表现几乎没有变化。
直觉上也说得通:centering让激活值的均值为0,但这个约束对深度网络来说并不是必要的。模型的bias项和后续的变换完全可以补偿均值偏移。而缩放不变性是真正重要的------它保证了无论输入的绝对数值大小如何,经过normalization后都在一个可控范围内,梯度传播更稳定。
实际收益看起来不大(省了约15-20%的norm计算),但大模型里norm操作非常频繁------每层两次(attention前一次,FFN前一次),深层模型加起来就很可观了。而且省掉均值计算还让kernel融合更容易优化。
面试加分: 有一个容易忽略的细节:RMSNorm没有learnable bias β(LayerNorm有)。这意味着RMSNorm的可学习参数只有缩放系数γ,参数量减半。虽然这个量很小,但从设计哲学上体现了"能省则省"的工程美学。另外可以提一下,Pre-Norm(norm放在attention/FFN之前)和RMSNorm通常是配合使用的,两者共同贡献于训练稳定性。
22. ⭐⭐ [高频] RoPE的核心思想是什么?它如何通过绝对位置编码实现相对位置编码?
一句话秒答: RoPE把位置编码做成旋转操作------给q和k分别乘以位置相关的旋转矩阵,做完内积后自然就只依赖相对位置差(m-n)了,用绝对编码的形式实现了相对编码的效果。
展开来说:
RoPE的核心数学很优美。把d维向量两两分组,每一对在2D平面上按位置m旋转角度 m·θ_i,其中θ_i = 10000^(-2i/d)。不同维度组的旋转频率不同,低频捕捉长距离依赖,高频捕捉短距离依赖。
为什么能实现"绝对形式+相对效果"?关键性质是旋转矩阵的乘法规则。位置m的q被旋转了R_m,位置n的k被旋转了R_n。做内积时:
q_m^T · k_n = (R_m · q)^T · (R_n · k) = q^T · R_m^T · R_n · k = q^T · R_{n-m} · k
结果只依赖相对距离(n-m),位置的绝对信息被消掉了。这是旋转矩阵的正交性保证的数学性质。
实现上完全不需要构造和存储旋转矩阵------利用欧拉公式展开后,就是对向量的偶数维和奇数维做cos/sin的element-wise操作,计算量极小。
外推能力是RoPE的另一个卖点。由于编码的是相对位置,理论上不受训练长度限制。虽然直接外推效果会衰减,但通过NTK-aware插值、YaRN等方法可以平滑扩展到训练长度的4-8倍甚至更多。这比可学习的绝对位置编码(如GPT-2那种learnable positional embedding)强太多了。
面试加分: 面试中一个高区分度的追问是"RoPE和ALiBi(Attention with Linear Biases)有什么区别"。ALiBi直接在attention score上加一个与距离成正比的线性偏置,不修改q和k。RoPE通过旋转修改q和k本身。ALiBi的外推性更好(天然无长度限制),但RoPE的表达能力更强。目前主流选RoPE,但两者的设计哲学完全不同。
23. ⭐⭐ [高频] SwiGLU激活函数是什么?相较于ReLU有什么提升?
一句话秒答: SwiGLU = Swish激活函数 × 门控线性单元,本质是给FFN加了一个可学习的"阀门"来选择性地过滤信息,同参数量下稳定比ReLU/GELU好1-2个点。
展开来说:
先拆解这个名字。SwiGLU = Swish + GLU(Gated Linear Unit)。Swish(x) = x · sigmoid(βx),是一个平滑的非线性激活函数。GLU是一种门控结构,把输入分成两路,一路做激活当"门",另一路做线性变换当"值",两路相乘。
具体公式:SwiGLU(x) = Swish(xW₁) ⊙ (xW₂),然后再乘W₃投影回原维度。注意这里有三个权重矩阵W₁、W₂、W₃,比标准FFN(只有W₁和W₂)多了一个。
为了保持总参数量不变,SwiGLU把FFN的隐层维度从4d调整为8d/3。这样三个矩阵的总参数量 3×d×(8d/3) = 8d² 和标准FFN的 2×d×4d = 8d² 基本一致。
为什么比ReLU好?核心在于门控机制。标准ReLU FFN是无差别的非线性变换------所有信息都以同样方式通过。SwiGLU的门控让模型可以学会"这个特征该放行还是该屏蔽",增加了一层信息过滤能力。PaLM论文做了详细消融实验,SwiGLU在相同参数量下比ReLU和GELU都有稳定的1-2%提升。
另外Swish函数本身比ReLU也更好------它是平滑的、非单调的,不存在ReLU的"死区"问题(负值被完全归零),梯度传播更均匀。
面试加分: 面试中可以展示对"门控"这个概念更深的理解。门控机制在深度学习中反复出现------LSTM的遗忘门/输入门、GRU的更新门、Transformer里的门控attention、SwiGLU的门控FFN。本质都是同一个思想:让模型学会"选择性地通过或屏蔽信息"。SwiGLU之所以在FFN中有效,就是因为FFN是模型存储知识的主要场所,需要更精细的信息过滤能力。
五、Decoder-Only架构与预训练范式(2题)
24. ⭐⭐ [高频] 为什么当前大语言模型主流采用Decoder-Only架构而非Encoder-Decoder架构?
一句话秒答: 因为Decoder-Only在大规模场景下展现出"涌现能力更强、训练效率更高、工程更简单、通用性更好"的全面优势,一招鲜吃遍天。
展开来说:
训练效率是最实在的原因。Decoder-Only架构下,序列中每个token都参与loss计算------从第1个token开始每个位置都在做next token prediction。Encoder-Decoder架构中,Encoder部分不直接产生生成loss,等于这部分数据的"利用率"较低。当你训练的数据是万亿tokens级别时,数据利用率的差异就会放大成巨大的效率差距。
涌现能力更强这个论点很有意思。苏剑林等人的研究指出,causal attention由于其下三角掩码的存在,每个位置能看到的信息是受限的,这形成了一种"信息瓶颈"。模型被迫在有限信息下做预测,反而学到了更强的压缩表征。就像一个只能看到一半棋盘的棋手,被迫发展出更强的推理能力。
工程简单也不可忽视。Decoder-Only没有encoder-decoder的跨注意力机制,KV Cache管理更简单,推理pipeline更直觉。在大规模部署中,简单就是正义。
通用性方面,因果语言模型天然支持In-Context Learning------给几个例子就能做新任务,不需要为每个任务设计不同的头。这是GPT-3以来最重要的范式突破。
当然Encoder-Decoder(如T5/Flan-T5)在特定任务上(翻译、摘要)仍然有优势,但作为通用架构它输给了Decoder-Only。
面试加分: 面试中一个常见的追问是"Decoder-Only是不是看不到未来信息就天然不如双向"。不是。因为Decoder-Only可以通过增加层数来让底层捕获的信息逐层向上传播,高层的表征其实包含了前文的充分信息。而且in-context learning的机制让模型可以通过prompt中的示例来"看到"任务的模式,某种程度上弥补了单向性的不足。
25. ⭐⭐ [高频] Causal LM、Prefix LM、Masked LM三种预训练范式各适用于什么场景?
一句话秒答: Causal LM严格自回归做生成,Prefix LM前缀双向+后续自回归做条件生成,Masked LM全双向做填空理解------三种范式的核心差异就在注意力掩码和训练目标上。
展开来说:
| 范式 | 注意力方式 | 训练目标 | 代表模型 | 适用场景 |
|---|---|---|---|---|
| Causal LM | 严格因果(下三角掩码) | Next-token prediction | GPT/LLaMA | 通用生成、对话 |
| Prefix LM | 前缀双向 + 后续因果 | 前缀条件下的生成 | GLM/U-PaLM | 条件生成(翻译、摘要) |
| Masked LM | 全双向 | 完形填空(预测[MASK]) | BERT/RoBERTa | NLU(分类、NER、匹配) |
Causal LM是现在的绝对主流。从左到右一个个token地预测,训练和推理完全一致,没有mismatch。通用性最强,通过指令微调几乎可以覆盖所有下游任务。
Prefix LM是个折中设计。给定一段前缀(比如"把这段话翻译成英文:{中文}"),前缀部分允许双向attention(类似Encoder),后续生成部分用因果attention。ChatGLM-1就是这个范式。理论上条件生成任务(翻译、摘要等)效果更好,因为对条件的理解更充分。但实践中Causal LM加上好的prompt也能做到差不多的效果。
Masked LM是BERT的范式。随机遮住一些token,用双向上下文来预测它们。天然适合理解任务,但没法做自回归生成。在BERT时代是理解任务的王者,但在大模型时代被Causal LM全面超越。
趋势很明确:Causal LM已经"赢了"。其他两种范式能做的事,Causal LM通过足够的规模和指令微调都能做到,反过来则不行。
面试加分: 面试中可以提一个有深度的思考:Causal LM之所以能"统一"三种范式,根本原因是语言模型的next-token prediction本身就是一个"通用压缩器"------要预测下一个token,你必须理解前文的语义、语法、逻辑,这倒逼模型习得了通用的语言表征。scale足够大之后,这个通用表征强到可以覆盖任何下游任务。
六、模型选型与设计考量(3题)
26. ⭐⭐ [高频] 如果要选择一个开源大模型做特定领域微调,LLaMA、Qwen、DeepSeek、Mistral各有什么优劣势?
一句话秒答: 没有绝对最优------中文场景首选Qwen,英文/科研选LLaMA,推理/代码/数学选DeepSeek,轻量部署选Mistral。
展开来说:
| 模型 | 优势 | 劣势 | 最适场景 |
|---|---|---|---|
| LLaMA-3 | 社区最大、工具链最全、英文最强 | 中文需额外适配 | 英文为主/科研复现 |
| Qwen-2.5 | 中英双语强、长上下文、模型尺寸全 | 社区不如LLaMA活跃 | 中文场景/多语言 |
| DeepSeek-V3 | 性能顶尖、MoE高效、推理能力强 | 模型太大部署复杂 | 推理/代码/数学 |
| Mistral/Mixtral | 小模型效率高、MoE先驱、欧洲合规 | 中文弱、版本迭代慢 | 资源受限/欧洲部署 |
展开来聊几个实际选型考量。
如果你的场景以中文为主,Qwen是最省心的选择。它的词表和预训练数据对中文有专门优化,不需要额外做中文适配。Qwen-2.5覆盖了0.5B到72B的全尺寸谱系,不管你是做手机端还是GPU集群都有对应规格。
LLaMA-3的优势在生态。几乎所有的开源工具(vLLM、TGI、LLaMA-Factory等)都会第一时间适配LLaMA。你遇到的坑大概率有人踩过并且有解决方案。做科研的话论文复现也更方便。
DeepSeek-V3性能确实强,特别是在数学、代码和复杂推理上。但671B总参数的MoE模型部署门槛不低,至少需要多卡甚至多机。适合有充足算力且对推理能力有高要求的场景。
Mistral在小模型赛道上效率很高,7B模型的性价比尤其突出。对欧洲用户来说还有数据合规的优势(法国公司,对GDPR更友好)。
面试加分: 选型时还有一个经常被忽略的因素------License。LLaMA-3虽然开源但有Meta的使用限制(月活超7亿需要申请),Qwen使用Apache 2.0比较自由,DeepSeek也是MIT协议非常宽松。商业部署时License可能比性能差距更影响决策。
27. ⭐ [高频] Self-attention中为什么要对点积结果进行缩放(除以根号d_k)?请从数学角度解释方差推导。
一句话秒答: 因为点积的方差会随维度d_k线性增长,不缩放的话Softmax输入值会很大,梯度会打到饱和区趋近于零。除以根号d_k把方差拉回1。
展开来说:
这个推导其实很简练。假设q和k的每个分量 q_i, k_i 都是独立同分布的,均值为0,方差为1。
点积 q·k = Σ(q_i · k_i),共d_k项求和。每一项 q_i·k_i 的期望为0,方差为 E[q_i²]·E[k_i²] = 1·1 = 1(因为独立且均值为0)。d_k项独立求和后,总方差为d_k。
所以 Var(q·k) = d_k,标准差为 sqrt(d_k)。
问题来了:当d_k=128时,标准差约为11.3。这意味着Softmax的输入值可以很大(几十甚至上百)。Softmax对大输入的行为是趋近于one-hot------几乎所有概率集中在最大值上,梯度趋近于零。这就是"Softmax饱和"问题。
解决方法简单粗暴:除以sqrt(d_k)。缩放后 Var(q·k / sqrt(d_k)) = d_k / d_k = 1。方差回到1,Softmax输入值在合理范围内,梯度健康。
本质上这就是一种"温度缩放",等价于 Softmax(q·k / T) 中 T = sqrt(d_k)。温度越高输出越平滑(均匀attention),温度越低输出越尖锐(集中attention)。sqrt(d_k)恰好让温度自适应维度大小。
面试加分: 这道题往深了问可以追到"为什么假设均值为0方差为1"------因为实际中Q和K通常经过了LayerNorm或RMSNorm,输出的统计特性接近零均值单位方差。如果没有norm,这个假设就不那么精确了,但缩放仍然是有益的。另外,有些工作(如cosine attention)直接对q和k做L2归一化来避免尺度问题,思路异曲同工。
28. ⭐⭐⭐ [高频] 大模型架构设计中,模型深度和宽度的取舍有什么经验法则?什么时候该加深什么时候该加宽?
一句话秒答: 相同参数量下深度和宽度要平衡------过深训练不稳定容易梯度消失,过宽表征层次不够。实践经验是 d_model/n_layers 保持在64-128之间。
展开来说:
这个问题的本质是"同样的参数预算怎么分配到深度和宽度上"。
深度的优势在于组合表达。每多一层就多一次非线性变换,理论上能学到更抽象、更高阶的特征组合。就像深度CNN能从边缘→纹理→部件→物体逐层抽象一样,深度Transformer也能逐层构建越来越复杂的语义表征。
宽度的优势在于记忆容量。更宽的隐层意味着每层能存储更多的"知识"(FFN被认为是知识存储的主要场所)。而且宽模型更容易并行化训练------矩阵乘法的维度大了,GPU利用率更高。
Scaling Law给出了理论指导。Chinchilla的研究表明,给定计算预算,最优分配大致是 d_model ∝ N^0.5,n_layers ∝ N^0.5,也就是深度和宽度应该同步增长。
实践中的经验法则:d_model / n_layers 的比值通常在64-128之间。看几个真实例子------LLaMA-7B是4096/32=128,LLaMA-70B是8192/80=102,GPT-3是12288/96=128。偏离这个范围太多通常效果不好。
具体建议:小模型(7B以下)适当加深效果更好,因为小参数量下深度带来的组合表达优势更显著。超大模型(70B以上)继续加深收益递减,反而不如加宽或者转向MoE------用稀疏化来扩大参数量而不增加计算量。
面试加分: 可以提一个有趣的观察:为什么不能无限加深?因为超深模型会遇到"退化问题"------即使有残差连接,梯度在几百层的传播中仍然会衰减或震荡。Pre-Norm虽然缓解了这个问题,但没有彻底解决。这也是为什么目前最深的模型也就是96-128层,没人做几百层的。另外MoE的出现提供了另一条路------不加深也不加宽,而是通过稀疏化增加"并行宽度",这是一种全新的参数扩展思路。