AI 基建
0%
第一部分 · 基座模型的形成 · 第 9 章

超越稠密 Transformer:MoE、状态空间模型与混合架构

作者Changkun Ou
阅读时长约 17 分钟

第 8 章 介绍的因果解码器包含两个稠密子层:注意力负责在不同位置之间混合信息,前馈网络(FFN)负责逐位置变换。本章沿两条相互独立的轴改变这两个子层。

混合专家(MoE)FFN 会存储多个专家网络,但每个词元只执行其中一部分。MoE 改变参数激活方式,并不会让注意力变稀疏。状态空间层或线性递归层改变序列混合方式,以及解码时保留的状态,并不会自行加入专家路由。混合架构可以只采用其中一种改动,也可以在同一堆叠中同时采用两种。把两条轴分开,才能避免混淆三个量:存储参数、单个词元实际执行的算术量,以及一条序列需要保留的状态。

两条相互独立的架构轴

在稠密 Transformer 块中,每个词元都会执行同一套 FFN 权重,每个注意力层也会为所有缓存位置保留键和值。这是一种具体设计,而不是语言模型的定义。替代架构分别回答两个问题:

架构轴 稠密选择 替代选择 主要改变的资源
FFN 参数激活 同一个稠密 FFN 每个词元只路由到少数专家 存储参数与专家路径算术量的比例
序列混合 读取已缓存的位置 更新递归状态 上下文增长时的工作量与持久状态

替换稠密部件也会引入新成本。MoE 路由需要分发词元,并处理负载不均衡与通信。递归会把历史压缩进一个由架构固定宽度的状态,因此过去的位置不再以不断增长的键值缓存逐个保存。比较这些设计时,必须看完整工作负载,包括质量、训练算术量、内存、通信、批次形状和服务延迟。

MoE 让词元有条件地通过不同 FFN

稀疏专家模型早于 Transformer。Shazeer 等人 2017 年在循环语言模型中大规模使用了稀疏门控 MoE 层 (Shazeer et al. 2017)。GShard 随后把条件专家与 Transformer 和自动分片结合起来 (Lepikhin et al. 2020),Switch Transformer 则研究了 top-1 路由和万亿参数模型 (Fedus et al. 2022)。这些工作的核心思想比规模纪录更具体:模型可以存储多于单个词元实际执行的专家权重。

路由是一项定义明确的数学运算

Mixtral 使用的一种常见 top-kk 形式,先计算路由分数,再从中选出专家 (Jiang et al. 2024)。这里的两步运算可以写成:

zt=Wrht,St=TopK(zt,k).\begin{aligned} z_t &= W_rh_t, \\ \mathcal{S}_t &= \operatorname{TopK}(z_t,k). \end{aligned}

其中,每个入选专家的归一化门控权重为

gt,e={exp(zt,e)jStexp(zt,j),eSt,0,eSt.g_{t,e}= \begin{cases} \dfrac{\exp(z_{t,e})} {\sum_{j\in\mathcal{S}_t}\exp(z_{t,j})}, & e\in\mathcal{S}_t,\\[6pt] 0, & e\notin\mathcal{S}_t. \end{cases}

MoE 输出是入选专家输出的加权和:

mt=e=1Egt,eFe(ht).m_t=\sum_{e=1}^{E}g_{t,e}F_e(h_t).

其中,htRdh_t\in\mathbb{R}^{d} 是词元位置 tt 的隐藏向量,EE 是路由专家数,WrRE×dW_r\in\mathbb{R}^{E\times d} 是路由矩阵,zt,ez_{t,e} 是专家 ee 的路由 logit,St\mathcal{S}_tkk 个入选专家的索引集合,gt,eg_{t,e} 是归一化门控权重,Fe:RdRdF_e:\mathbb{R}^{d}\rightarrow\mathbb{R}^{d} 是专家网络,mtRdm_t\in\mathbb{R}^{d} 是 MoE 输出。残差连接和任何共享专家都不包含在这条公式中。

这只是一个路由契约,并不是 MoE 的唯一定义。Switch 使用 top-1 路由。有些系统在选择前做 softmax,有些在选择后做,还有一些使用 sigmoid 亲和度。top-kk 之后的门控值也可能重归一化,也可能保持原值。这些选择会改变梯度和检查点语义,模型说明必须把它们写清楚。

moe h 词元状态 h_t r 路由器 W_r E 个分数 h->r shared 可选的共享专家 (始终执行) h->shared k top-2 选择 r->k e1 路由专家 i k->e1 g_i e2 路由专家 j k->e2 g_j idle 其他专家 不执行 k->idle mix g_i F_i(h_t) + g_j F_j(h_t) e1->mix e2->mix out MoE 输出 mix->out shared->out 相加
图 9.1. 一条 top-2 MoE 路径。路由器为所有路由专家打分,选出两个,再用门控权重组合它们的 FFN 输出。可选的共享专家单独执行,其输出不经过路由门控便直接相加。

图中的共享专家不经过路由门控。它是否存在、如何与路由专家组合,都属于架构契约。

存储参数、选中权重与运行时间不是一回事

假设每个专家都是无偏置的 SwiGLU FFN,模型宽度为 dd,专家隐藏宽度为 dfd_f。根据 第 8 章,一个专家大约包含

Pe=3ddfP_e=3dd_f

个参数。这里 PeP_e 包含门控投影、值投影和下投影。若有 EE 个路由专家且没有共享专家,该层存储和执行的参数量分别为

Pstored=EPe+Ed,Pevaluated(t)=kPe+Ed.\begin{aligned} P_{\mathrm{stored}} &= EP_e+Ed, \\ P_{\mathrm{evaluated}}(t) &= kP_e+Ed. \end{aligned}

其中,EdEd 是路由矩阵。每个词元都要计算全部 EE 个路由分数;EPeEP_e 包含所有已存储专家,kPekP_e 只包含入选专家。这里省略了偏置和其他始终执行的块参数。文献中的“活跃参数”还可能包含嵌入、注意力、归一化和共享专家,因此报告时必须说明计数口径。

图 9.2d=4096d=4096df=14336d_f=14336k=2k=2 计算这些公式。随着 EE 增加,入选专家项不变,路由器项却会增长。图中的两条线都不能直接当作实际运行时间,因为运行时间还取决于词元分发、填充或非齐整内核、all-to-all 通信、内存流量,以及最慢的专家分片。

2026-08-03T21:31:42.538662 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 10 20 30 40 50 60 路由专家数 E(选中 k = 2) 0 2 4 6 8 10 单个 MoE 层参数量(十亿) 存储的参数 每词元实际计算的参数
图 9.2. 一个无偏置 SwiGLU MoE 层的参数计数。模型宽度为 4096,专家宽度为 14336,并采用 top-2 路由。存储参数包括所有专家和路由器;每词元实际计算的参数包括两个专家以及所有路由得分。图中不含注意力和其他始终执行的权重。

下面的可运行单元使用同一套公式,不依赖绘图库。可以修改 EEkk 或两个宽度,检查其他层配置。

model_width = 4096
expert_width = 14_336
selected_experts = 2

def moe_parameter_counts(experts):
    if not 1 <= selected_experts <= experts:
        raise ValueError("selected_experts 必须介于 1 和 experts 之间")
    per_expert = 3 * model_width * expert_width  # 无偏置 SwiGLU
    router = experts * model_width
    stored = experts * per_expert + router
    evaluated = selected_experts * per_expert + router
    return stored, evaluated

for experts in (8, 16, 32, 64):
    stored, evaluated = moe_parameter_counts(experts)
    print(
        f"E={experts:2d}, k={selected_experts}: "
        f"存储={stored / 1e9:.3f}B, "
        f"每词元执行={evaluated / 1e9:.3f}B, "
        f"比值={stored / evaluated:.2f}x"
    )

路由会产生分发问题

专家权重通常分布在一个专家并行组的不同设备上。一次前向传播因此包含四个阶段:计算路由分数;按目标专家整理词元副本;把副本发送给持有相应专家的设备;再把专家输出恢复到原来的词元顺序。常见实现会使用两次 all-to-all,一次用于分发,另一次用于返回。不过,当所有专家都在本地,或者采用其他放置方式时,并不一定需要 all-to-all。因此,all-to-all 并不是 MoE 的固有要求。

专家 FFN 省下的算术量,可能被网络时间或规模很小、利用率很低的矩阵乘法抵消。应测量的量包括分发字节数、各专家词元数、填充槽与有效槽、集合通信时间、通信与计算的重叠,以及尾延迟。这些指标都不能由“活跃参数”单独推出。

假设一个路由组包含 TT 个词元、EE 个专家,每个词元产生 kk 次专家指派。均匀负载是每个专家 kT/EkT/E 次指派。固定容量的实现可以为每个专家预留

Ce=ckTEC_e=\left\lceil c\frac{kT}{E}\right\rceil

个槽位。这里 c>0c>0 是容量系数,CeC_e 是专家 ee 能接收的指派数,kTkT 是路由组中的指派总数。超出容量的指派可以跳过、改路由或延后。Switch 论文给出的公式是 k=1k=1 的情形 (Fedus et al. 2022)。另一些系统使用无丢弃的非齐整或块稀疏执行,不设置固定容量上限 (Gale et al. 2023)。

图 9.3. 一个包含六个专家的 top-2 分发示例。均衡模式会分散指派,集中模式会把指派压到少数专家。虚线表示容量系数乘以当前均匀指派数,超过这条示意上限的指派会标记为丢弃。生产路由器和无丢弃内核可能采用不同策略。

均衡损失改变优化过程,而不只是利用率

不加约束的路由可能把指派集中到少数专家,使其他专家训练不足,并让负载最重的专家设备成为慢节点。Shazeer 等人使用了相互独立的重要性目标和负载目标 (Shazeer et al. 2017)。Switch 为 top-1 路由提出了更简单的辅助损失:

Lbal=αEe=1Efeqe,fe=1Tt=1T1 ⁣[argmaxjpt,j=e],qe=1Tt=1Tpt,e.\begin{aligned} \mathcal{L}_{\mathrm{bal}} &=\alpha E\sum_{e=1}^{E}f_eq_e, \\ f_e &= \frac{1}{T}\sum_{t=1}^{T} \mathbf{1}\!\left[\arg\max_j p_{t,j}=e\right], \\ q_e &= \frac{1}{T}\sum_{t=1}^{T}p_{t,e}. \end{aligned}

其中,pt=softmax(zt)p_t=\operatorname{softmax}(z_t) 是词元 tt 的完整路由分布,fef_e 是实际送到专家 ee 的词元比例,qeq_e 是该专家的平均路由概率,TT 是路由组中的词元数,EE 是专家数,α0\alpha\ge0 是损失系数,1[]\mathbf{1}[\cdot] 是指示函数。乘积会惩罚同时拥有高流量和高概率质量的专家。Top-kk 系统会采用相关但并不完全相同的定义。

系数本身就是优化选择。均衡压力太弱会造成利用率低下,太强又可能压过由任务驱动的路由。DeepSeek-V3 主要通过依据近期负载调整的逐专家偏置来引导 top-kk 选择,同时保留一个较小的逐序列辅助损失,以防出现极端不均衡 (DeepSeek-AI 2024; Wang et al. 2024)。偏置影响专家选择,不影响组合专家输出时使用的门控权重。因此,不能据此说模型完全移除了所有均衡损失。

ST-MoE 还提出了路由器 z-loss。这个量用来约束 log-sum-exp 项 (Zoph et al. 2022):

Lz=βTt=1T(loge=1Eexpzt,e)2.\mathcal{L}_{z} =\frac{\beta}{T}\sum_{t=1}^{T} \left(\log\sum_{e=1}^{E}\exp z_{t,e}\right)^2.

其中,zt,ez_{t,e} 是前文定义的路由 logit,括号中的 log-sum-exp 是词元 tt 的路由配分函数,β0\beta\ge0 控制惩罚强度。Switch 还报告过在 bfloat16 模型中,只把路由计算保留为 float32 (Fedus et al. 2022)。这些是有实验依据的稳定手段,但不能证明硬 top-kk 或低精度是所有 MoE 故障的唯一原因。

不同改进解决不同的路由问题

以下设计是彼此不同的选择,并不构成通往同一个默认方案的单一路线:

  • Top-1 与 top-kk Switch 每个词元执行一个专家,Mixtral 执行两个。增大 kk 会提高专家算术量和通信量;只有当 kk 接近 EE 时,才逐渐接近执行所有专家的稠密形式。
  • 专家选择与均衡指派。 Expert Choice 让每个专家从固定容量的词元桶中选择输入,因而不会发生专家侧溢出,但每个词元入选的专家数不固定,甚至可能为零 (Zhou et al. 2022)。BASE Layers 则把路由写成均衡指派问题 (Lewis et al. 2021)。
  • 细粒度专家与共享专家。 DeepSeekMoE 把专家容量拆成更小的路由专家,并加入始终执行的共享专家 (Dai et al. 2024)。在该设计中,共享专家的输出不经过路由门控便直接相加。论文报告了更好的专业化结果,但“共享”这个名称并不能保证网络只学到了通用知识。
  • 稀疏升级改造。 可以把一个稠密 FFN 复制成多个专家,再加入新路由器继续训练 (Komatsuzaki et al. 2023)。这种做法改变的是初始化成本,不会改变最终的分发和服务契约。

GLaM 和 Mixtral 展示了这片设计空间中的其他位置 (Du et al. 2022; Jiang et al. 2024)。它们的实验不能据此确定普遍最优的专家数、kk、容量系数或路由损失。答案取决于训练预算、批次形状、网络拓扑、内存、内核和目标延迟。

状态空间层用递归替代不断增长的历史记录

第二条轴是序列混合。状态空间模型(SSM)的数学来源是动力系统和控制理论,远早于神经序列模型。S4 在 2022 年展示了结构化线性状态空间层对长序列的建模能力 (Gu et al. 2022)。Mamba 随后让递归中的关键项依赖输入,并提供了面向硬件的选择性扫描实现 (Gu and Dao 2024)。

从连续系统到离散层

线性时不变状态空间系统可以写成

dh(t)dt=Ah(t)+Bx(t),y(t)=Ch(t)+Dskipx(t).\begin{aligned} \frac{dh(t)}{dt} &= Ah(t)+Bx(t), \\ y(t) &= Ch(t)+D_{\mathrm{skip}}x(t). \end{aligned}

其中,连续时间为 ttx(t)Rdinx(t)\in\mathbb{R}^{d_{in}} 是输入,h(t)Rnh(t)\in\mathbb{R}^{n} 是状态,y(t)Rdouty(t)\in\mathbb{R}^{d_{out}} 是输出;ARn×nA\in\mathbb{R}^{n\times n} 是状态转移矩阵,BRn×dinB\in\mathbb{R}^{n\times d_{in}} 把输入写入状态,CRdout×nC\in\mathbb{R}^{d_{out}\times n} 从状态读出输出,DskipRdout×dinD_{\mathrm{skip}}\in\mathbb{R}^{d_{out}\times d_{in}} 是输入直连路径。dind_{in}nndoutd_{out} 都由层配置固定。

按固定步长离散化后,同一层可以写成

ht=Aˉht1+Bˉxt,yt=Cht+Dskipxt.\begin{aligned} h_t &= \bar A h_{t-1}+\bar Bx_t, \\ y_t &= Ch_t+D_{\mathrm{skip}}x_t. \end{aligned}

这里整数 tt 表示词元位置,xtx_thth_tyty_t 是采样后的输入、状态和输出,Aˉ\bar ABˉ\bar B 是离散化后的转移矩阵和输入矩阵。即使实现从连续参数中推导它们,它们也不等同于连续矩阵 AABB

固定系数使递归与卷积等价

h0=0h_0=0,并且 Aˉ\bar ABˉ\bar BCC 固定,展开递归可得

Ki=CAˉiBˉ,yt=j=1tKtjxj+Dskipxt.\begin{aligned} K_i &= C\bar A^{i}\bar B, \\ y_t &= \sum_{j=1}^{t}K_{t-j}x_j +D_{\mathrm{skip}}x_t. \end{aligned}

其中,i0i\ge0 是滞后量,KiRdout×dinK_i\in\mathbb{R}^{d_{out}\times d_{in}} 是该滞后上的卷积核,Aˉi\bar A^i 是矩阵的第 ii 次幂,jj 是较早的词元位置。递归视角和卷积视角计算的是同一个线性算子。S4 利用 AA 的结构高效生成并应用长卷积核,但它仍有滤波器生成和 FFT 成本,不能笼统地把所有 SSM 实现都说成简单的 O(S)O(S)

Mamba 让递归具有选择性

对一个简化的 Mamba 通道,选择机制从当前输入生成三个随词元变化的项:

(Δt,Bt,Ct)=sθ(xt),Aˉt=exp(ΔtA),Bˉt=0Δtexp ⁣((Δtτ)A)Btdτ.\begin{aligned} (\Delta_t,B_t,C_t) &= s_\theta(x_t), \\ \bar A_t &= \exp(\Delta_tA), \\ \bar B_t &= \int_{0}^{\Delta_t} \exp\!\bigl((\Delta_t-\tau)A\bigr)B_t\,d\tau. \end{aligned}

这些项定义离散递归:

ht=Aˉtht1+Bˉtxt,yt=Ctht+Dskipxt.\begin{aligned} h_t &= \bar A_th_{t-1}+\bar B_tx_t, \\ y_t &= C_th_t+D_{\mathrm{skip}}x_t. \end{aligned}

其中,sθs_\theta 是参数为 θ\theta 的学习投影,Δt>0\Delta_t>0 是依赖输入的离散步长,BtB_tCtC_t 是依赖输入的写入与读出映射,AA 是学习得到但不依赖输入的连续转移矩阵,exp\exp 是矩阵指数,τ\tau 是积分变量。也就是说,Δt\Delta_tBtB_tCtC_t 随输入变化,连续转移矩阵 AA 不随输入变化 (Gu and Dao 2024)。

输入依赖性意味着上一节的单一平稳卷积核 KK 不再存在。Mamba 在训练时对仿射递归更新执行融合的结合扫描,从而恢复并行性;自回归解码时则使用递归形式。Mamba-2 把一类受限 SSM 转移与半可分混合矩阵联系起来,并使用分块矩阵乘法。论文报告其核心层在测试设置中比 Mamba 的选择性扫描快 2 到 8 倍 (Dao and Gu 2024)。这是特定实现和测试条件下的实测结果,不是与架构无关的速度比例。

线性注意力也是一条固定状态路线

核化因果注意力也可以重排计算,得到递归状态。一种简化的门控形式为

St=λtSt1+ϕ(kt)vt,zt=λtzt1+ϕ(kt),yt=ϕ(qt)Stϕ(qt)zt+ε.\begin{aligned} S_t &= \lambda_tS_{t-1}+\phi(k_t)v_t^{\top}, \\ z_t &= \lambda_tz_{t-1}+\phi(k_t), \\ y_t &= \frac{\phi(q_t)^{\top}S_t} {\phi(q_t)^{\top}z_t+\varepsilon}. \end{aligned}

其中,qtq_tktk_tvtv_t 是查询、键和值向量;ϕ\phi 是使核可分解的特征映射;StS_t 是固定形状的键值汇总矩阵;ztz_t 是归一化状态;λt[0,1]\lambda_t\in[0,1] 是可选的学习遗忘门;ε>0\varepsilon>0 防止除零。消除所有查询与键两两配对的关键是结合律分解,而不只是去掉 softmax。Gated DeltaNet 在这一家族中加入了有针对性的 delta 规则更新 (Yang et al. 2025)。

线性序列扩展不等于自动提速

固定模型维度时,完整序列上的稠密注意力会形成与 S2S^2 成正比的查询键关系,而递归扫描执行与 SS 成正比的状态更新。图 9.4 只画出以 1,000 个词元归一化后的序列长度增长项。它不是 FLOPs 或实测运行时间曲线,投影宽度、状态大小、内核融合、内存流量和硬件共同决定常数项。

2026-08-03T21:24:59.918395 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 1 2 4 8 16 32 64 128 上下文长度(千词元) 1 0 0 1 0 1 1 0 2 1 0 3 1 0 4 相对 1K 词元的增长倍数 注意力关系(二次增长) 递归更新(线性增长)
图 9.4. 以 1,000 词元上下文为基准的序列长度增长项。模型维度固定时,稠密注意力关系数随上下文长度二次增长,递归状态更新数线性增长。这是渐近计数,不是运行时间基准。

解码时,稠密注意力层会让一个新查询与每个已缓存位置的键比较。递归层则更新一个形状不随上下文长度变化的状态。“不随上下文长度变化”并不表示状态很小或没有成本。对原始 Mamba 实现,持久解码状态可以近似写成

Mrec=BbatchLrecdinner×(nstate+dconv)b字节.\begin{aligned} M_{\mathrm{rec}} &=B_{\mathrm{batch}}L_{\mathrm{rec}}d_{\mathrm{inner}} \\ &\quad\times \bigl(n_{\mathrm{state}}+d_{\mathrm{conv}}\bigr)b \quad\text{字节}. \end{aligned}

其中,BbatchB_{\mathrm{batch}} 是驻留序列数,LrecL_{\mathrm{rec}} 是递归层数,dinnerd_{\mathrm{inner}} 是递归通道数,nstaten_{\mathrm{state}} 是每个通道的 SSM 状态宽度,dconvd_{\mathrm{conv}} 是短卷积缓冲区长度,bb 是每个存储元素的字节数。精确布局因实现而异。状态会随批大小、层数、通道宽度、状态宽度、卷积宽度和精度增长,但不会随已缓存的上下文长度增长。

图 9.5. 序列长度变化时的持久解码状态形状。注意力层为每个缓存位置保留一条键值记录;递归层保留由架构规定数量的固定状态槽。此图只比较存储结构,不声称注意力能够完美检索,也不假设所有递归模型都会以固定速率遗忘远处词元。

代价体现在表示方式上。注意力为每个过去位置保留独立的缓存表示,并允许按内容直接访问。递归层反复把先前信息压缩进固定形状的状态,信息可能相互干扰或丢失。两种机制都不保证召回。必须在目标分布、目标长度和匹配的训练条件下测量检索质量。

混合架构选择层级排布

MoE 与递归序列混合可以组合,因为它们占据块中的不同位置。一个混合架构可以在部分层使用注意力,在其他层使用递归;每个混合器之后又可以接稠密 FFN 或专家 FFN。不存在固定比例。

hybrid x 输入残差流 r1 递归混合器 1 x->r1 f1 MoE FFN 1 r1->f1 r2 递归混合器 2 f1->r2 f2 MoE FFN 2 r2->f2 r3 递归混合器 3 f2->r3 f3 MoE FFN 3 r3->f3 a 因果注意力混合器 f3->a f4 MoE FFN 4 a->f4 y 下一组残差状态 f4->y
图 9.6. 一个用于说明结构的 3:1 混合周期。三个递归混合器和一个注意力混合器之后都接 MoE FFN。混合器排布与 FFN 选择是彼此独立的配置字段,并不存在普遍适用的块顺序。

已经发布的模型展示了不同的排布和参数报告方式:

模型 序列混合器 FFN 稀疏性 报告证据的适用范围
Jamba 主要配置中,每七个 Mamba 层插入一个注意力层 在部分层使用 16 个专家、top-2 作者在指定硬件和上下文设置下,报告了相对若干基线更高的吞吐量和更低的 KV 内存 (Lieber et al. 2024)
MiniMax-01 每个 softmax 注意力块之前有七个 Lightning Attention 块 32 个专家、top-2;总参数 456B,激活参数 45.9B 报告训练到 100 万词元上下文,并评估到 400 万词元的外推 (MiniMax 2025)
Qwen3-Next-80B-A3B 十二次重复,每次包含三个 Gated DeltaNet 层和一个门控注意力层 512 个路由专家,选中 10 个,另有一个共享专家 官方模型卡报告总参数 80B、激活参数 3B,原生上下文 262,144 词元 (Qwen Team 2025)
Nemotron-H Mamba-2、注意力与稠密 FFN 层 稠密 FFN 作者报告了 8B、56B 和蒸馏后的 47B 版本;吞吐量比较只适用于其基准设置 (NVIDIA 2025)

这些例子证明各部件能够在大规模下训练和实现,但不能证明混合架构在每一种质量指标和服务工作负载上都优于完整注意力。MiniMax 后来的 M2 改用完整注意力,并报告混合架构在更大规模的复杂多跳任务上暴露出弱点;低精度状态、前缀缓存、推测解码、内核成熟度和评测也仍是实际问题 (Sun 2025)。这是一个团队的第一方证据,并不是反对递归或混合模型的普遍结论。

争议所在

问题不在于次二次复杂度的混合器能否运行,而在于:针对某个具体工作负载,它的质量、状态容量和实现成本会在何处与完整注意力基线交叉。规模太小或已经饱和的基准可能掩盖检索和多步推理缺陷;理论上的线性工作量仍可能受内存带宽限制;围绕注意力优化的软件栈也可能抵消架构上的名义优势。比较时,需要在数据、词元数、参数量、训练算力、内核、硬件、上下文长度和服务功能上做匹配。

下层约束

架构现在为 第 10 章 固定了两份契约。MoE 决定专家放置、分发流量和设备拓扑上的负载不均衡。递归与混合序列层决定扫描内核、状态精度,以及哪些层仍需分配 KV 缓存。这些选择又会限制 第 31 章 中的批处理、前缀复用、推测解码和内存调度。只有分布式实现和服务实现真正兑现了节省,渐近优势才有意义。

把稀疏与递归架构记录成一份契约

一份可复现的架构说明至少应写明:

  • 哪些层使用注意力、SSM、线性注意力或其他混合器;
  • 每种注意力的掩码、头布局、位置规则和 KV 缓存数据类型;
  • 递归状态形状、离散化或门控参数化、卷积宽度、重置语义和状态精度;
  • 专家数、共享专家数、入选路由专家数、专家 FFN 形状,以及哪些层使用稀疏 FFN;
  • 路由打分、归一化、top-kk 平局处理、门控重归一化和输出组合规则;
  • 均衡损失和 z-loss 的方程与系数,以及任何偏置更新规则;
  • 路由组大小、容量系数、溢出或无丢弃策略,以及组合后的词元顺序;
  • 专家放置、专家并行组、分发集合通信、路由器精度,以及总参数和激活参数的报告口径。

“MoE”“Mamba 混合架构”或“80B-A3B”这类名称并不能确定上述大部分字段。检查点张量、训练代码、推理内核和模型卡必须遵守同一份契约。

在扩大规模前分别验证两条轴

  1. 核对参数量。 把存储参数、入选参数、共享参数、路由参数和始终执行的参数与序列化检查点逐项核对。
  2. 精确测试路由。 用小批次比较分片后的分发与组合和单设备参考实现,覆盖平局、溢出、填充和零词元专家。
  3. 测量负载分布。 在训练数据和评测数据上报告每个专家的指派数、不均衡程度、丢弃或改路由的指派、填充、熵,以及最慢的专家设备。
  4. 测量通信。 在真实批大小下记录分发与组合字节数、集合通信时间、计算重叠和端到端每秒词元数。
  5. 比较扫描与递归。 确认并行训练路径和逐词元递归路径在声明的数值容差内一致。
  6. 测试状态边界。 在文档和序列边界重置状态,并测试打包样本、前缀复用、状态复制和推测解码回滚。
  7. 压力测试检索与状态跟踪。 在部署长度范围内评测直接查找、顺序、重复键、干扰项和多跳使用,而不是只依赖一次针尖检索测试。
  8. 对完整工作负载做基准测试。 在预算匹配的条件下,对照稠密模型和纯注意力模型比较质量、训练吞吐量、预填充、解码、内存、批次容量和故障恢复。

MoE 和递归层分别移除了一个稠密假设,但都没有取消资源核算。真正有用的抽象是一份契约:一个词元执行哪些权重,这些权重位于哪里,序列状态如何演化,以及哪些成本转移到了通信或服务环节。

延伸阅读

  • Shazeer et al., “Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer” (top-k 门控与辅助均衡损失的起源), 2017. arXiv:1701.06538
    本文提出稀疏门控混合专家(MoE)层,通过可训练门控网络从数千个前馈网络专家中稀疏选取,在语言建模和机器翻译任务上以极小的计算开销实现超过 1000 倍的模型容量提升。
  • Lepikhin et al., “GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding” (专家分片与全互连通信,第四章也有讨论), 2021. arXiv:2006.16668
    GShard 提出轻量级注解 API 与 XLA 编译器扩展,通过自动 SPMD 分片,在 2048 块 TPU v3 上训练了 600B 参数的混合专家 Transformer,实现 100 种语言的多语言翻译。
  • Fedus et al., “Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity” (万亿参数规模下的 top-1 路由), 2022. arXiv:2101.03961
    Switch Transformer 将混合专家(MoE)路由简化为每词元单专家选择,在相同 FLOPs 下实现万亿参数稀疏模型,预训练速度较 T5 最高提升 7 倍。
  • Du et al., “GLaM: Efficient Scaling of Language Models with Mixture-of-Experts,” 2022. arXiv:2112.06905
    GLaM 通过稀疏激活的混合专家(MoE)将仅解码器语言模型扩展至 1.2T 参数,在 29 项 NLP 任务上超越 GPT-3,同时训练能耗仅为其三分之一。
  • Zhou et al., “Mixture-of-Experts with Expert Choice Routing” (从构造上实现均衡), 2022. arXiv:2202.09368
    Expert Choice MoE 提出让每个专家主动选择 top-k 词元而非词元选择专家,从根本上保证负载均衡,相比 Switch Transformer 和 GShard 的混合专家路由实现超过 2 倍的训练收敛加速。
  • Zoph et al., “ST-MoE: Designing Stable and Transferable Sparse Expert Models” (路由器 z-loss,稳定性), 2022. arXiv:2202.08906
    ST-MoE-32B 是一个 269B 参数的稀疏混合专家(MoE)模型,通过 router z-loss 等技术解决训练不稳定和微调迁移差距,在多项 NLP 基准上达到最优性能。
  • Komatsuzaki et al., “Sparse Upcycling: Training Mixture-of-Experts from Dense Checkpoints,” 2023. arXiv:2212.05055
    稀疏升循环(sparse upcycling)从预训练的稠密检查点初始化混合专家(MoE)模型,以约 50% 的原始预训练算力同时超越稠密继续训练和从头训练的 MoE 模型。
  • Jiang et al., “Mixtral of Experts” (稀疏 MoE,8 选 2 专家), 2024. arXiv:2401.04088
    Mixtral 8x7B 是一个稀疏混合专家(MoE)仅解码器模型,总参数量 46.7B,每词元仅激活 12.9B 参数,在 Apache 2.0 许可下以 6 倍更快的推理速度超越 Llama 2 70B。
  • Dai et al., “DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models” (细粒度专家与共享专家), 2024. arXiv:2401.06066
    DeepSeekMoE 通过细粒度专家分割和共享专家隔离两项策略,提升混合专家(MoE)语言模型的专家专业化程度,以更少计算量达到稠密模型的性能水平。
  • DeepSeek-AI, “DeepSeek-V3 Technical Report” (前沿规模的 fp8 预训练), 2024. arXiv:2412.19437
    介绍 DeepSeek-V3,一个 671B 参数、每词元激活 37B 的混合专家模型,用 14.8T 词元与 fp8 矩阵乘法训练,采用无辅助损失的负载均衡,以低成本比肩闭源模型。
  • Lewis et al., “BASE Layers: Simplifying Training of Large, Sparse Models” (把路由视作指派问题,作为对照), 2021. arXiv:2103.16716
    BASE 层将词元到专家的分配建模为线性分配问题,无需辅助损失或额外超参数即可保证混合专家(MoE)模型中各专家负载均衡。
  • Wang et al., “Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts” (独立的无辅助损失均衡方法,区别于 DeepSeek-V3 报告), 2024. arXiv:2408.15664
    Loss-Free Balancing 通过动态更新每个专家的路由偏置来维持混合专家(MoE)模型的负载均衡,消除辅助损失引入的干扰梯度并提升模型性能。
  • Gu et al., “Efficiently Modeling Long Sequences with Structured State Spaces” (S4), 2022. arXiv:2111.00396
    S4 通过低秩加正规矩阵分解重参数化状态空间模型(SSM),实现 O(N+L) 计算复杂度,并在长程序列基准(包括此前无模型能解的 Path-X 任务)上达到最优性能。
  • Gu & Dao, “Mamba: Linear-Time Sequence Modeling with Selective State Spaces,” 2024. arXiv:2312.00752
    Mamba 提出带输入依赖参数的选择性状态空间模型(SSM)和硬件感知并行扫描算法,以线性时间复杂度实现与 Transformer 相当的语言建模质量。
  • Dao & Gu, “Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality” (Mamba-2), 2024. arXiv:2405.21060
    Mamba-2 通过半可分矩阵建立状态空间模型(SSM)与注意力之间的结构化状态空间对偶(SSD)框架,使 SSM 层训练速度提升 2-8 倍,在语言建模上与 Transformer 竞争。
  • Yang et al., “Gated Delta Networks: Improving Mamba2 with Delta Rule” (Gated DeltaNet), 2025. arXiv:2412.06464
    Gated DeltaNet 在线性注意力递归中把门控遗忘机制与 delta 规则的状态更新结合起来,在语言建模与长上下文任务上超过 Mamba2 与 DeltaNet。
  • Lieber et al., “Jamba: A Hybrid Transformer-Mamba Language Model,” 2024. arXiv:2403.19887
    Jamba 是基于混合 Transformer-Mamba 混合专家架构的大语言模型,支持 256K 词元上下文,在单张 80GB GPU 上实现比 Mixtral-8x7B 高 3 倍的吞吐量。
  • MiniMax, “MiniMax-01: Scaling Foundation Models with Lightning Attention” (456B 的 lightning attention 混合体), 2025. arXiv:2501.08313
    MiniMax-01 在一个 456B 参数的 MoE 模型里交错排布 lightning attention(一种线性注意力)与 softmax 注意力,以前沿质量支撑百万词元上下文。
  • Qwen Team, “Qwen3-Next-80B-A3B-Instruct Model Card” (Gated DeltaNet 与门控注意力约 3:1 排布), 2025. huggingface.co
    Qwen3-Next 是总参数 80B、激活 3B 的 MoE 模型,48 层按三层 Gated DeltaNet 线性注意力配一层门控全注意力交替排布。
  • NVIDIA, “Nemotron-H: A Family of Accurate and Efficient Hybrid Mamba-Transformer Models” (8B 与 56B 的 Mamba 与注意力混合模型), 2025. arXiv:2504.03624
    Nemotron-H 在 8B 与 56B 模型里把大部分注意力层换成 Mamba 层,在保持 Transformer 精度的同时把长上下文推理加速最多 3 倍。
  • Sun, “Why Did M2 End Up as a Full Attention Model?” (一家前沿实验室退回全注意力的理由), 2025. minimax.io
    MiniMax 预训练负责人解释 M2 为何放弃 lightning attention 混合设计:混合体的短板要到规模上去后才在多跳推理上显形,而高效注意力周边的推理与评估栈尚未达到生产成熟度。

评论

登录后评论