发布于 2026-08-28 19:22:45

Transformer之后的大模型领域进展综述——架构演进篇

在搞清楚Transformer的基本原理之后,我们再来讨论下,在Transformer之后,大模型领域有哪些变化和进展。本文作为一个初学者在学习过程中的记录,可能不一定能做到非常完整和系统。

Transformer之后大模型领域的变化和进展,总体来说可以分为下面这些方向:

  • 架构演进
  • 推理技术
  • Scaling Law 与预训练数据工程
  • 后训练与对齐
  • Agent、工具使用与外部知识
  • 多模态与统一生成
  • 可解释性、安全与评测
  • 系统、工程与成本

在这个系列中,我主要会整理、学习和总结架构演进推理技术这两个方向的内容,并在过程中涉及一些关于系统、工程与成本的内容。

本文首先讨论架构演进这一方向。

概览

自2017年Transformer提出以来,主干结构的实质改动其实有限。真正的变化几乎全部发生在架构之外:训练配方、后训练目标、推理时策略与工程系统。

下面我们讨论下模型主干结构的一些关键演进,而关于推理的内容将会在推理技术篇中总结,不过本篇仍或多或少涉及到一些推理的内容,毕竟推理性能也影响着模型设计本身。

演进方向

在注意力机制上搞事情:注意力效率与结构变体

在注意力机制上做的改进,核心思想都是:在尽可能不牺牲注意力效果的前提下,降低显存与访存开销。

早期探索(近似流派和稀疏流派)

近似流派(利用近似改写公式以降低计算量),例如:

  • Performer(2020):【线性/核函数近似】利用随机特征映射将标准自注意力的Softmax核近似分解为两个低秩特征矩阵的乘积,将复杂度降低为线性
  • Linformer(2020):【低秩近似】用低秩投影把K/V压到固定维度,将复杂度降低为线性

但是由于投影无法支持自回归、无法动态处理变长的上下文,以及不适合工程实现和硬件并行化计算等原因,均已不再单独使用。

稀疏流派(剪枝以跳过影响较小的计算),例如:

  • Sparse Transformer(2019):【稀疏注意力】采用分块和步长的网格状稀疏,Token只看自己同一块或固定间隔的Token
  • Longformer(2020):【稀疏注意力】采用滑动窗口(局部只看邻居)+扩张滑动窗口+任务特定的全局Token 稀疏组合
  • BigBird(2020):【稀疏注意力】继承了Longformer的局部和全局,并额外加入了随机采样,通过“局部+全局+随机”的稀疏图结构,在数学上逼近全连接的效果

但是稀疏流派不利于硬件计算,显存带宽利用率极低,甚至可能还没有不做任何数学公式改动的纯工程优化方案FlashAttention速度快。

不过,早期的近似流派和稀疏流派的思想仍可能会可能会以混合的方式出现在现代模型中。

MHA、MQA、GQA、CLA(共享KV流派)

核心目的是通过降低隐状态数量来降低KVCache体积。

  • MHA(Multi-Head Attention):传统多头注意力机制,每个头都有独立的Q、K、V
  • MQA(Multi-Query Attention):让所有Q头共享唯一的一组K、V头
  • GQA(Group-Query Attention):一种折中方案,将Q头分为多个组,一个组内的多个Q头共享相同的K、V头。若组数等于1,GQA就退化为MQA;若组数等于Q头数,GQA就等同于MHA
  • CLA(Cross-Layer Attention):是一种在层之间共享KV的技术路线

传统MHA显存和带宽消耗大,MQA效果差,GQA在中小模型与稠密模型中最普遍,而CLA更适合端侧模型。

MLA低秩压缩(进阶版共享KV流派)

相比MQA/GQA,MLA(Multi-Head Latent Attention)不是粗暴地减少KV头数,而是对K和V进行联合低秩压缩。它在推理时缓存的不是完整的K和V,而是一个低维的隐向量,以及一个用于RoPE位置编码的共享向量(因为基于乘法的RoPE,会破坏矩阵结合律,导致矩阵吸收失效,因此需要解耦RoPE)

MLA本质上是把投影矩阵拆成了两个低秩矩阵的乘积,共用一个下投影矩阵

于是,KV会被投影成相同的低维向量被KVCache,需要的时候再通过上投影矩阵恢复。这个低维的隐向量只有一份,它被该层所有的注意力头共同读取和共享,因此MLA可以理解为一个升级版的MQA

但其实它甚至不需要做恢复动作,在实际推理的decoding阶段,MLA采用了一种名为矩阵吸收的优化,将用于隐向量还原的高维升维矩阵提前融合到投影矩阵中,使得模型不需要把K和V显式还原放大。

对比一下原始Transformer就很明显了:

机制 注意力得分(Score)计算公式 推理时历史Token耗费的显存
原始 Transformer 存储所有头的高维
MLA (DeepSeek) 仅存储所有头共享的低维

MLA能奏效的核心原因是,不同头的隐状态中的信息密度其实没有那么高,所以才能压缩。

但是如开头所说,RoPE位置信息要单独携带,无法融入其中。因此除了一个低维的隐向量以外,还需要一个用于RoPE位置编码的共享向量。

最后是一个在工程实现上的点:矩阵吸收本质上是改变了升维矩阵的结合方式(是否要与Q结合)。如果Q少,就可以吸收(与Q结合),牺牲计算换取更小的显存带宽消耗;如果Q多,就不需要吸收。因此矩阵吸收通常只在推理decode阶段做,而在prefill或者训练阶段不做。

可训练的稀疏注意力机制(现代稀疏流派)

Note

MLA解决了隐状态的压缩问题,稀疏注意力机制主要解决对哪些KV产生注意力的问题。

稀疏注意力这一方向核心要解决的问题有几个:

  • 稀疏注意力gather操作与GQA等共享KV的访存模式冲突(最怕的就是每个头挑的token不一样导致KV没法共享),破坏内存合并访问,瓶颈从算力变成了不规则访存
  • 往往只对prefill和decode的其中之一有加速,很难兼顾
  • 稀疏注意力本质上要做离散选择,常见做法不可微,无法预训练

一种最简单的稀疏注意力机制,就是局部注意力,采用类似于滑动窗口的形式,简单粗暴。

随着研究深入,可训练的稀疏注意力机制被提出,典型方法如下:

  • NSA(Native Sparse Attention,DeepSeek 2025-02):引入三分支门控,三个分支的输出用一个学出来的门控加权求和,模型自己决定每层每头更依赖哪条路
    • 压缩分支:用可学习MLP聚合连续KV块,即把KV序列按连续块切开,每块用一个可学习的MLP压成一个代表性的K/V,Q对这些块摘要做全注意力
    • 选择分支:只看摘要毕竟有损,所以再从所有块里挑top n个最相关的,对这些块内的原始token做精确注意力(top n的选择复用压缩分支算出来的注意力分数),因为分数来自可学习的MLP,所以它可微分

      为了不与GQA产生冲突,NSA选择让同一个组内的多个Q头的打分做平均,从而合并为相同的决策。只有选择分支有这个问题,其他两个分支不会有冲突。
      如果不这么做,极端情况下访存开销退化到与没有用NSA一样的情况,这是因为:每个头的矩阵计算是独立的,如果Q头对应的KV切片一样,就可以复用;如果不一样,就还要把所有需要的KV切片拉出来

    • 滑窗分支:保留单独的近邻处理,防止局部模式吞掉长程学习
  • MoBA(Mixture of Block Attention,Moonshot 2025-02):把MoE搬到注意力上,采用无参数门控(Q与块内K均值池化的点积)取top n个块。它没有增加可训练的参数,但是稀疏pattern本身是被训练出来的
  • DSA(DeepSeek Sparse Attention,DeepSeek 2025-09):在注意力前加一个带参数的选路器(Lightning‑Indexer),先快速判断历史上哪些token值得关注,只把这部分送进真正的MLA注意力

    由于DSA直接把索引也做成per-token、全head共享的,所有head共享一份top n列表,因此它可以与MLA直接集成
    由于top n操作不可微,所以训练时会麻烦一些,需要分两步解决,先不开稀疏训练,再打开稀疏并通过计算图detach完成训练

但并不是每个方法都能与GQA/MLA同时使用的,所以在方案设计和选择上,与其他方法的冲突问题也是必须要考虑的。

从以上内容可以看出,各类方法其实已经在有机融合。

再额外提一下Attention‑Sink现象:模型会天然把大量注意力权重分配给序列开头少数几个token,和语义无关,是RoPE+softmax归一化带来的模型固有行为
针对Attention‑Sink现象,有一些不同的做法:有些模型会将这个现象显式化,也有一些模型会反向消除它
StreamingLLM就是利用Attention‑Sink现象,推理时强制永久保留前N个sink token并结合滑动窗口策略,是一种固定模式稀疏注意力机制

原生可训练稀疏已成为长上下文主流路径之一,且明显趋势是稀疏性向训练早期迁移(训练时就开启稀疏)。

线性注意力与状态空间模型(现代线性流派)

核心问题:能否用线性复杂度、固定大小状态的机制替代全注意力

  • 线性注意力:通过一个映射函数,把拆解为,然后利用结合律先计算,使得中间状态的大小只与维度有关而与序列长度无关,计算复杂度直接降为

    它与RNN的核心区别是,RNN是把全部历史压缩成一个向量,而线性注意力本质是快速权重,存储K到V的映射矩阵,用于与Q相乘得到结果
    线性注意力在训练阶段能够并行的核心原因是它的递归转移满足结合律,因此可以直接分块并行,而RNN不行

  • 状态空间模型(SSM):类似RNN,把文本序列压缩进一个能够随时间不断更新的隐状态中,但它不在隐状态的传递上引入非线性激活函数,而是在外部引入非线性,从而在支持并行计算的情况下提升表达能力(训练时并行,推理时像RNN一样串行),属于一种特殊的RNN

    SSM的隐状态迭代本质上就是线性层的叠加。
    对于静态SSM(每个线性层参数固定),该计算就是卷积,可以直接并行。
    对于动态SSM(每个线性层随着输入动态变化,称为选择性机制),可以通过并行扫描(前缀和)来并行。

线性注意力与状态空间模型在数学本质上是对等的关系。它们是从不同的视角(注意力视角、循环视角)去描述同一个计算逻辑,并在现代架构中走向了深度融合。

接下来分别介绍两个方向的典型模型,并不完全是最新的,后面还有一些衍生版本,但核心思想一致。

状态空间模型Mamba:属于动态选择性SSM,SSM参数由输入动态生成,自主控制历史信息的留存与丢弃;训练借助并行扫描实现序列并行,推理以固定大小隐状态迭代,无膨胀KVCache,为线性复杂度,再通过硬件定制kernel增强性能;整体是用状态更新机制替代Transformer自注意力

线性注意力Gated DeltaNet:区别于普通线性注意力的简单累加KV信息,它引入动态门控+增量Delta更新机制,模型会先通过输入自适应门控衰减、遗忘冗余的历史记忆,再仅用新token的残差信息修正、更新固定尺寸的记忆状态,而非无脑叠加新信息

混合注意力机制

很显然,GQA和MLA这种由于作用对象不同(一个是降低KV隐状态大小,一个是降低参与注意力计算的历史KV数量),其实是可以融合使用的。

事实上,线性注意力与全注意力也是可以混合使用的。例如新发布的Qwen3.8-Flash-Next就同时使用了线性注意力GDN(Gated DeltaNet)层与稀疏注意力QSA(Qwen Sparse Attention)层按3:1的比例交替堆叠,且稀疏注意力使用了MQA索引器结构。

混合注意力已成为新常态。

混合架构核心需要考虑几个问题:线性注意力与全注意力的配比与排布、稀疏还是全局、位置编码归谁、是否叠加MoE等。

在FFN网络上搞事情:提高知识存储容量和深层网络训练稳定性

FFN扩张比

在Transformer架构中,每个注意力层后面都紧跟着一个FFN层。FFN扩张比代表了FFN隐藏层(中间层)的维度与模型主隐层(输入/输出)维度之间的比例关系。

intermediate_sizehidden_size之比就是FFN扩张比。

MoE(混合专家)稀疏大模型架构

其核心要解决的问题是:如何让模型容纳更多知识而不等比例增加推理成本。

具体做法是把每层FFN换成多个专家FFN,由router决策每个token激活其中的哪些,且只激活其中少数几个。

MoE的本质就是将FFN层的总扩张比做到了几十倍甚至上百倍(拥有海量的隐藏神经元作为参数容器),但通过稀疏路由机制,让每个token在前向传播时只激活其中的一小部分专家,这在隐式上完成了前所未有的超高维投影。

以DeepSeek-V3为例,671B总参数、每层256个专家、激活9个(1共享+8路由),激活参数仅37B,却比稠密的405BLlama 3更强且推理更省。其中共享专家是指始终保持激活状态、不参与动态路由选择、负责捕获和整合全局通用知识的固定专家模块。

一个现象是稀疏度在持续走高

模型方案 总参数量 (Total) 激活参数量 (Active) 激活比例 专家设计特点
Mixtral 8x7B (2023底) 47B 13B ~27.6% 8个粗粒度专家,Top-2 路由
DeepSeek-V3 (2024年底) 671B 37B ~5.5% 256个细粒度专家 + 1个共享专家
Llama 4 Maverick (2025/2026) 400B 17B ~4.25% 128个细粒度专家,极高稀疏性
GLM-5.2 (2026年中) ~744B 40B ~5.3% 256个细粒度专家,Top-8 路由
DeepSeek V4-Pro (2026年中) 1.6T 49B ~3.0% 385个专家中仅激活6个

MoE也有几个固有难题:

  • 路由与负载均衡(常见解法是辅助损失、无辅助损失均衡策略)
  • 专家并行(Expert Parallelism, EP)带来的All-to-All通信开销
  • 硬件资源的错配(显存要按总参数算但算力要按激活参数算)

激活函数的演进

早期我们想要在FFN上实现非线性使用的是ReLU。当前,SwiGLU已成为事实上的标准激活函数配置。

SwiGLU采用双支路并行设计(一路传输原始特征,另一路通过Swish/SiLU激活函数生成0-1之间的门控权重),两路逐元素相乘。这类似于一个可学习的注意力开关,让模型能够自适应地筛选重要语义并压制冗余噪声。彻底解决了ReLU的神经元永久死亡、梯度不稳定问题,以及GELU在深层网络中非线性拟合上限低、训练后期容易饱和的硬伤。

在位置编码上搞事情:位置编码与长上下文扩展

要解决的核心问题是:位置信息如何注入才能泛化到训练时未见过的长度;以及窗口做大之后,模型是否真的能用好其中的信息。

从绝对位置编码到旋转位置编码

Transformer原文使用的是三角函数绝对位置编码,当前旋转位置编码RoPE已逐渐成为事实标准。

RoPE有几个十分优雅且重要的特性:

  • 完美结合绝对与相对位置:它通过将词元向量在二维子空间中进行旋转,使模型既能感知每个词的绝对位置,又能在计算注意力点积时自动暴露出两个词之间的相对距离
  • 支持长文本外推:RoPE理论上支持无限长度,使得模型可以零开销或通过极少量的续训,将上下文直接暴力扩展
  • 极致的计算效率:RoPE属于零参数机制,不增加训练负担;同时它的数学形式可以完美借助FlashAttention等现代GPU算子进行硬件级加速,几乎没有推理性能惩罚

再来详细分析一下RoPE为什么支持长文本外推:

RoPE的rope_theta在推理时可以根据需要修改。RoPE的数学推导证明了,Q和K乘以旋转矩阵后,进行点积运算时,绝对位置被消去了,只留下了相对位置差。不是像三角函数位置编码是一个绝对位置的概念。当调大rope_theta时相当于把整个特征空间里的相对距离等比例缩小或平滑拉伸了装置注意力机制来说,它看到的只是注意力权重矩阵的波形变得稍微平缓了一点,依然能识别出谁和谁应该产生注意力,模型已经学会了理解这种pattern。

不过这种操作也不是没有代价的:虽然调大后会减缓长距离注意力衰减,但是会牺牲短文本的局部精确度。

这种操作虽然可用,但如果是想要保障长文本的效果,通常必须配合一定量的长文本数据进行继续预训练或微调。

混合位置编码与NoPE

NoPE的核心洞察是:因果掩码本身就携带顺序信息(第t个token只能看到前t-1个token信息),这个可见计数就是位置,因此理论上NoPE可表达绝对与相对位置编码。

当然,理论是理论,实践是实践。NoPE与逐层差异化是近期的趋势。

实际落地的混合做法有四种形态:

  • 不同层不同base(rope_theta
  • RoPE与NoPE按层交错
  • 把位置职责整体外包,注意力放弃位置建模,交给注意力以外的模型结构处理
  • 部分RoPE,让部分维度不旋转

    朴素的想法是:编码位置所需的维度远少于编码语义,留一批无位置信息的通道是有价值的 例如MLA中,由于RoPE无法压缩,因此拆出小维度做RoPE,剩下保持无位置便于应用MLA

在嵌入层上搞事情:嵌入层优化也能无痛提升模型性能

大规模扩展词汇表

N-gram嵌入技术

在整体架构上搞事情:后Transformer架构

多Token预测(MTP)

微观结构与训练稳定性

参数量配比

已成既定标准的内部改动包括:Pre-LN 取代 Post-LN(Xiong et al. 2020 证明其初始化时梯度更良性且无需精心设计的学习率 warmup)、RMSNorm 取代 LayerNorm、SwiGLU 类门控激活、QK-Norm(在 RoPE 之前对 q/k 做 RMSNorm,可追溯至 2023 年 Scaling Vision Transformers)。有意思的是 OLMo 2 反其道采用 Post-Norm 变体(norm 移到注意力/FFN 之后但仍在残差连接内部)以提升训练稳定性,OLMo 3 延续了该选择;Gemma 3 则在注意力模块前后都放 RMSNorm,兼取两者之长 [2]。

门控残差连接是一种在标准残差连接基础上引入门控机制的神经网络结构

一个实际例子

欢迎留言