1. 先建立模型地图:token、层与生成头

这一页讨论最常见的 decoder-only language model。tokenizer 把文本切成离散 token id,embedding 将它们变为连续向量,向量依次通过 N 个同类 decoder block。linear head 把末端隐藏状态投回词表 logits,采样器据此选出下一个 token。这里的“生成”指模型分布本身,与服务端如何调度请求无关。

token ids -> embedding + position information -> decoder block x N -> final norm -> vocabulary logits -> sampling -> next token

现代模型结构图通常还会列出 hidden size、层数、attention head 与 KV head 数、MLP intermediate size、上下文机制,以及是否用 MoE 代替 dense MLP。这些字段定义了每层要计算、保存和依赖的内容,部署参数只能在此基础上选择。

Attention Is All You Need 的原始 Transformer 编码器-解码器架构图
原始架构图:Vaswani et al., Attention Is All You Need, Figure 1。原图是 encoder-decoder 翻译结构;本页后续聚焦其中可自回归生成的 decoder 半边,并说明现代 LLM 怎样把 MLP 换成 MoE。

2. 一个 decoder block 实际做了什么

对输入隐藏状态 X,典型 pre-norm decoder block 依次做 RMSNorm、Q/K/V 投影、位置编码、因果 attention、输出投影、残差连接、第二次归一化,再进入 dense MLP 或 MoE。每一层都反复执行“读权重,读/写激活,必要时读历史 KV”的循环。生成第 t 个 token 时,新的 query 只来自当前 token,但它必须与 1 到 t 的历史 key/value 交互。

Q = XWq, K = XWk, V = XWv Attention(Q,K,V) = softmax(QKᵀ / √d + causal_mask)V Y = X + Wo Attention(RMSNorm(X)) Z = Y + MLP_or_MoE(RMSNorm(Y))

这组公式先定义了层内依赖:Q 由当前位置的表示产生,K/V 是每个可见位置的表示,attention 把它们汇聚回当前位置;随后 MLP 或 MoE 再逐位置变换该结果。它们说明模型在数学上必须读取什么、写出什么、等待什么。第 8 节之后才把这些依赖翻译成算子、缓存和通信成本。

3. Attention:因果关系怎样塑造 decoder

Self-attention 先从同一隐藏状态投影出 Q、K、V;每个 head 用当前 token 的 query 与允许可见的 key 做匹配,再对 value 加权求和。decoder 的 causal mask 规定位置 i 只能看见 1..i,所以模型在训练时可以并行计算整段序列的 loss,而定义的条件概率仍是从左到右的 p(x_i | x_<i)

多头 attention 让不同子空间同时建立依赖,并非简单复制同一个 head。GQA/MQA 让多个 query heads 共享较少的 KV heads;MLA、稀疏 attention 与分块索引则会改写历史表示的保存方式和可见位置。这些架构选择最终会改变 KV 字节数、读取模式和 kernel 形状,第 8 节以后再计算对应的推理成本。

4. Dense MLP:活跃参数和计算最可预测的一段

以 gated MLP 为例,输入分别经过 gate 和 up 投影,逐元素相乘后经 down 投影回到隐藏维。若中间维为 I、隐藏维为 H,这部分约含 3HI 权重,每个 token 都走同一套三段线性变换。它的权重路径固定,不会像 MoE 那样按 token 选择不同的 MLP。

g = SiLU(xWgate) ⊙ (xWup) MLP(x) = gWdown 每个生成 token 都要经过每层 MLP;dense 模型没有“只跑部分专家”的捷径。

RMSNorm、激活函数和线性层在实现中可以被融合,但融合不改变这里定义的数学图。区分“模型的等价计算图”与“某个运行时的实现方式”,是后面分析推理系统的前提。

5. MoE:总参数不等于每 token 的参数

Mixture-of-Experts 将 MLP 替成一组专家 E_i。router 对 token 计算分数,选择 top-k 专家;每个被选中的专家处理该 token,结果按门控权重合并。共享专家可以给所有 token 提供稳定路径,路由专家则扩大总容量。若共有 256 个专家但每 token 只选 8 个,单 token 的 MLP 计算接近 8 个专家加共享专家,而不是 256 个。

p = softmax(xWr) S = TopK(p, k) MoE(x) = Σ(i ∈ S) pᵢ Eᵢ(x) + Eshared(x)

活跃参数不是一个脱离口径的固定数字。它会随 top-k、是否计入 attention/共享专家以及 router 的容量与重路由规则而变。这里它描述的是一个 token 在模型计算图中会经过哪些权重;它本身还不能推出服务延迟或吞吐,后文才会把这些路由依赖放到设备、缓存和网络上讨论。

Sparsely-Gated Mixture-of-Experts 的原始门控网络和专家路由架构图
原始 MoE 架构图:Shazeer et al., Sparsely-Gated Mixture-of-Experts, Figure 1。图中 router 选择少数 expert,并按 gate 权重合并结果;现代 decoder-only MoE 将这种层放在 Transformer 的 MLP 位置。本页只借它解释条件计算,多 GPU 执行方式留到后续章节。

6. MoE 的层内数据依赖:router、expert 与合并

只看单层,router 读取 token 的隐藏状态并选择少数专家。各专家独立完成同类 MLP 变换,结果按 gate 权重合并回原 token 位置。MoE 与 dense MLP 的差别就在这条“分发 - 独立变换 - 合并”路径上。

它还解释了两个结构现象:同一批 token 不一定经过同一组权重,因此每个专家看到的 token 数可能不均衡;每个 token 的输出则必须等所有被选专家完成后才能确定。这里尚未假设专家放在哪张卡,也尚未讨论网络,只定义模型层内应当发生哪些计算和依赖。

7. 从结构图到模型报告:哪些事实已经写在架构里

模型报告不应该只给一个参数总数。至少应让读者找出 dense 还是 MoE、每层是否都有 MoE、top-k 和共享专家、attention 是 full/GQA/MLA/稀疏中的哪一种、KV head 数、上下文处理方式、位置编码,以及是否还有 MTP、视觉 encoder 或 diffusion head。它们决定了模型的语义计算图,而不是后续服务端可以随意改写的实现细节。

在 2026 年公开模型中,DeepSeek-V4-Pro 被描述为大规模 MoE,Qwen3.5-397B-A17B 的名称同时给出总参数量与活跃参数量,Gemma 4 则有 dense、MoE 和统一多模态变体。比较这些模型时,应把 层内结构条件计算attention 状态宽度模态输入路径分开核对,而非只看宣传数字。具体证据边界见 DeepSeek-V4GLM-5.2Gemma 4 与 DiffusionGemma

8. 架构如何自然推出推理的四本账

模型卡上的总参数量只能估算权重文件大小。推理还要分别计算四项:总权重决定模型能否常驻以及如何分片;活跃参数决定一个 token 经过多少矩阵乘;KV cache随上下文和会话增长;瞬时激活与通信缓冲决定峰值显存是否溢出。Dense 模型的总参数与活跃参数接近,MoE 模型中两者可能相差一个数量级。

部署显存预算 ~= weight shards + KV cache + activation/workspace + communication buffers + fragmentation throughput bottleneck != parameter count alone; it can be compute, HBM, network, or queueing.

这些推理成本都能从结构中找到来源:attention 需要历史 K/V,MoE 需要 dispatch/combine,MLP 要读取对应权重,残差与 norm 会产生临时张量。进入 runtime 之前,Mainline 还会比较稀疏/线性 attention、视觉编码器、图像/视频 latent 和离散文本 canvas 等不同状态形态。

9. 从结构推导后续服务问题

假设一个 MoE 有 400B 总参数、20B 活跃参数,FP8 权重大约 400 GB。这个数字还不能回答能否服务,但结构已经告诉我们接下来该问什么:专家如何分片或复制?top-k 路由是否跨节点?attention 是多少 KV heads?上下文一长时历史状态怎样增长?一台 8 GPU 节点里,权重之外还会给 KV、通信缓冲和工作区留下多少空间?

这些问题不是这一页的部署结论。若按完整模型主线继续,应先读 20 Attention 与条件记忆10 多模态模型架构12 图像/视频 Diffusion 架构11 文本 Diffusion 模型;它们把不同的状态和生成循环补齐。只研究 decoder-only LLM 的读者可以直接跳到 02。

当这个层内依赖落实到多 GPU,才出现专家并行(EP):router 按目标专家把 token dispatch 到持有该专家的 GPU,专家计算后再把输出 combine 回原位置,通常对应两轮 all-to-all。此时单卡上的专家 micro-batch 可能很小,系统才会面对 Tensor Core 欠饱和、网络小消息、交换机拥塞和路由不均衡。工程上需要共同选择专家数、top-k、EP group、专家复制、token packing 与通信重叠;具体放置、NVLink/NVSwitch 域和跨节点边界留给后续并行与通信章节验证。

10. 完成模型地图后,才进入“它应该怎样推理”

架构直接规定系统负担。Dense 或 MoE 决定 MLP 是本地 GEMM 还是需要 all-to-all;full/GQA/MLA/稀疏 attention 决定历史状态的宽度与读取模式;图像、音频、视频的输入路径决定 prefill token 或 latent 的形状;自回归、MTP、离散 diffusion 或连续 diffusion 决定生成循环的串行轴。调度器和数据中心设计都要以这些结构为输入。

建议接着阅读 attentionmultimodaldiffusion,补齐不同架构的状态差异。02 Prefill 与 decode把这些模型放进实际执行阶段,03 GPU 算子再解释各段为何会在硬件上成为瓶颈。

11. 阅读任何模型报告时的核对表

  • 模型是 dense、MoE 还是混合结构?总参数、活跃参数的口径分别是什么?
  • attention 使用多少 query/KV heads,是否 GQA、MLA、稀疏或分块索引?
  • 上下文长度是原生、插值、稀疏窗口还是外部检索共同得到的?
  • 权重、KV、激活、通信缓冲在目标精度和并发下各占多少?
  • 专家在哪里,dispatch/combine 是否跨节点,热点专家如何处理?
  • 技术报告的数字对应单请求、固定 batch、离线吞吐还是生产 P99?

12. 一手来源与边界

本页的公式和系统分解是通用解释;2026 模型数字只以其公开模型卡、官方发布或技术报告为准。模型更新很快,具体实现必须回到对应版本的 release 与运行时文档。