先这样答
开源大模型的架构演进主线可以概括为底层机制收敛与上层路线分叉。目前主流模型在基础结构上已经高度趋同,形成了固定的标准件组合,演进驱动力主要来自对训练稳定性和推理显存占用的平衡。
在标配组合上,各家都收敛到了 Decoder-only 架构。归一化层从 Post-Norm 转向 Pre-Norm,并普遍采用 RMSNorm,因为它去除了均值计算,计算开销更小且能维持训练稳定。激活函数从传统的 FFN 转向 SwiGLU 以换取更好的模型效果。位置编码全面走向 RoPE 旋转位置编码,并在长上下文处理上,从早期依赖训练后外推,演进为原生的长文本预训练。
注意力机制的演进直接反映了对推理成本的妥协。为了降低生成阶段的 KV Cache 显存占用,模型从标准的多头注意力(MHA)全面转向分组查询注意力(GQA),近期部分模型进一步探索了多头潜在注意力(MLA)等变体。
总结来说,这套收敛后的标准架构解决了基础的训练与推理效率问题,而近期的演进主线开始向 MoE 稀疏化和原生多模态这两个方向分叉,这是评估模型架构趋势的关键点。
面试官会怎么追问
-
「既然大家都在用 RMSNorm,它比 LayerNorm 到底省了哪部分计算?」 RMSNorm 省去了 LayerNorm 中的均值计算步骤。它直接计算输入特征的均方根来进行缩放,而不去求均值。这样在保持模型训练稳定性的同时,减少了计算开销,加快了前向和反向传播的速度。
-
「注意力机制从 MHA 换成 GQA,对模型效果和推理资源具体有什么影响?」 GQA 减少了 KV 头的数量,让多个 Query 头共享一组 KV 头。这直接降低了推理阶段的 KV Cache 显存占用,提高了吞吐量。虽然模型容量相比 MHA 会有折损,但通过调整分组比例,能在效果和显存之间找到合理的平衡。
-
「刚才提到长上下文从外推变成了原生训练,为什么早期要做外推?」 早期受限于算力和显存,预训练时的上下文长度较短。为了在推理时处理长文本,只能通过修改 RoPE 的底数或插值等方式进行长度外推。现在算力资源具备后,直接在长文本上进行原生预训练能获得更准确的上下文理解能力,外推就变成了过渡方案。
回答的坑
- 试图按代际背诵各个模型的具体参数结构,正确做法是提炼出所有模型共同收敛的底层机制组合。
- 把 MoE 或多模态当成过去几年的演进主线来谈,正确做法是把它们定位为近期架构收敛后刚产生的主要分叉路线。
同系列的题