大模型架构
问聊天助手一句“年假怎么申请?”,它一个字一个字地写出回答。每写一个字,模型都要把整段对话切成 token,把每个 token 变成几千维的向量,让这些向量穿过几十层同样结构的计算,最后对词表里十几万个候选逐一打分,挑出下一个字。这套结构叫 Transformer,2017 年为机器翻译提出,今天几乎所有大语言模型都建立在它之上。几十层里每一层都只有两个主要部件:让每个位置去看上下文的注意力,和对每个位置单独做变换的前馈网络(FFN)。主流大模型的大部分参数都在 FFN 里,以 Llama-3.1-8B 为例占 70%;KV Cache 和长上下文成本则主要由注意力决定。
这个系列讲清主流大语言模型的内部结构和工作原理:每个部件做什么、输入输出是什么形状、参数和计算花在哪里;GQA、MLA、MoE、RoPE 外推、滑动窗口、线性注意力这些改动分别为了解决什么问题、付出了什么代价;Llama、Qwen、DeepSeek、Mistral、Gemma、GLM、Kimi、gpt-oss 这些模型具体选了哪些设计。读完以后,你应该能看懂任意一个开源模型的 config.json 和 Transformers 里的模型源码,手算它的参数量、每个 token 的计算量和 KV Cache 大小,并在新模型发布时判断它在架构上改了什么、为什么改。
先读哪里
不需要会推导反向传播,也不需要先读完深度学习教材。知道“模型是一堆参数,训练是在调这些参数”就够了;没有这个印象,可以先看站内的模型训练入门。矩阵乘法会反复出现,每次都会写明形状,并给一组能手算的小数字。
全系列沿用站内另外三个系列里的公司内部资料助手:员工小林问“年假怎么申请?”。这里跟着这句话进入模型内部,看它被切成哪些 token,“申请”怎样通过注意力看到“年假”,FFN 怎样往向量里加入相关的知识,输出层怎样给出回答第一个字的概率。后面讲 MoE、长上下文和多模态时,继续用资料助手的需求举例:把整本员工手册放进上下文,上传报销单截图提问,用语音提问。
计算类例子统一用 Llama-3.1-8B(约 80 亿参数、32 层、隐藏维度 4096),和模型训练与调优、大模型推理优化两个系列的数字可以直接对照;动手实践用能在笔记本上跑的 Qwen2.5-0.5B-Instruct。各模型的配置以 2026 年 10 月下旬 Hugging Face 上的官方 config.json、官方技术报告和 Transformers 源码为准。
四个部分
第一部分:Transformer 逐层拆解。 先用第 00 篇把 2017 年原始 Transformer 的完整结构走一遍,再按计算顺序拆今天的 decoder-only 模型:从文字到 token,从 token 到向量,经过注意力和 FFN,再到输出层和解码。每篇讲一个部件,最后在实践篇里把一个真实的小模型逐层打开验证。
| 文章 | 回答的问题 |
|---|---|
| 00. Transformer:大模型共同的骨架 | Transformer 要解决什么问题?编码器、解码器、注意力、FFN、残差归一化、位置编码怎样组成一个模型?今天的大模型保留和换掉了什么? |
| 01. 全景:从一句话到下一个 token | 一个大模型由哪几块组成?8B 参数分别在哪里?什么是自回归生成? |
| 02. 分词与词嵌入 | 文字怎样切成 token,中文怎样切?词表大小影响什么?词嵌入和输出层为什么可以共享? |
| 03. 注意力:每个 token 怎样看上下文 | Q、K、V 是什么、从哪来?用一个手算例子走完缩放点积、softmax 和因果掩码 |
| 04. 多头注意力与 KV 头:MHA、MQA、GQA、MLA | 为什么要多个头?KV 头变少怎样省显存、会损失什么?MLA 的压缩怎样做? |
| 05. FFN:前馈网络做了什么 | FFN 是什么?为什么占了大半参数?SwiGLU 门控是什么?“FFN 存知识”的说法有多少证据? |
| 06. 残差连接与归一化 | 残差流是什么,为什么几十层的网络离不开它?RMSNorm、Pre-Norm、QK-Norm 各解决什么? |
| 07. 位置编码:RoPE 与长上下文 | 注意力怎样知道词的顺序?RoPE 怎样旋转向量?上下文从 8K 扩到 128K 改了什么? |
| 08. 输出层与解码:从 logits 到文字 | 最后一层的向量怎样变成词表上的概率?温度、top-k、top-p 怎样挑出下一个 token? |
| 实践:逐层拆开一个小模型 | 在笔记本上打开 Qwen2.5-0.5B:参数、形状、注意力、各层贡献、logit lens 和消融实验说明了什么? |
第二部分:架构演进。 从 2017 年的原始 Transformer 出发,看今天的大模型为什么只保留了解码器,以及为了更大、更长、更便宜,架构又做了哪几类改动。
| 文章 | 回答的问题 |
|---|---|
| 09. 从 Transformer 到 GPT:三种结构 | 编码器、解码器、编码器-解码器各适合什么?为什么大模型几乎都是 decoder-only?现代配方改了什么? |
| 10. 混合专家 MoE | 总参数 6710 亿、每个 token 只用 370 亿是怎么做到的?路由、负载均衡、共享专家怎样设计? |
| 11. 长上下文与高效注意力 | 长上下文贵在哪?FlashAttention、滑动窗口、稀疏注意力、注意力汇聚分别做什么? |
| 12. 线性注意力、状态空间模型与混合架构 | 能不能不要 KV Cache?Mamba 和线性注意力的弱点在哪?为什么新模型改用混合架构? |
第三部分:主流模型拆解。 用前两部分的知识读具体模型,每个家族按“每一代改了什么、为什么改”梳理,并给出逐项核对过的规格表。
| 文章 | 回答的问题 |
|---|---|
| 13. Llama 家族 | 从 Llama 1 到 Llama 4,每一代改了哪些结构?一层 LlamaDecoderLayer 的代码怎样读? |
| 14. Qwen 家族 | Qwen 各代在 QKV 偏置、QK-Norm、MoE、混合注意力上怎样选择?思考模式是架构吗? |
| 15. DeepSeek:MLA、MoE 与 MTP | MLA、DeepSeekMoE、多 token 预测、稀疏注意力在 DeepSeek 各代里怎样组合? |
| 16. 其他主流开源模型 | Mistral、Gemma、GLM、Kimi、gpt-oss、MiniMax 各有什么与众不同的设计?闭源模型公开了什么? |
第四部分:多模态与读懂模型。 图像和语音怎样接进语言模型;怎样自己读配置和源码;最后把所有模型放在一起对比。
| 文章 | 回答的问题 |
|---|---|
| 17. 多模态大模型的结构 | 一张报销单截图怎样变成几百到几千个 token?外挂编码器和原生多模态有什么区别?语音怎样接入? |
| 18. 读懂 config 与源码 | config.json 每个字段对应什么?怎样只用配置算出参数量、FLOPs 和 KV Cache?新模型先看哪里? |
| 19. 主流架构对比与演进趋势 | 主流模型在注意力、FFN、位置编码、归一化上的选择怎样对比?这几年的趋势是什么? |
两种读法
第一次系统了解大模型内部,先读第 00 篇建立 Transformer 的整体印象,接着按顺序读第 1—8 篇,再跟着实践篇在自己电脑上拆一次小模型。这十篇读完,你已经能对着任何一个开源模型的结构图说清每一块在做什么。之后读第 9—12 篇理解演进,第 13—16 篇挑感兴趣的模型家族读。
带着具体问题来的,可以直接跳:想知道 Transformer 整体长什么样,看第 0 篇;想知道 FFN 是什么,看第 5 篇;Q、K、V 没搞懂,看第 3 篇;KV Cache 为什么这么大、GQA 和 MLA 怎样省,看第 4 篇;MoE 的“总参数”和“激活参数”,看第 10 篇;上下文长度能不能再长,看第 7、11、12 篇;拿到一个新模型想快速读懂,看第 18 篇和第 19 篇的对比表。
模型是怎样训练出来的,是模型训练与调优系列的内容;训练好的模型怎样高效部署,是大模型推理优化和推理引擎与框架两个系列的内容。本系列讲到 KV Cache、量化、投机解码时只讲架构本身的影响,并链接到那里。
接下来从第 00 篇:Transformer开始,先看清这副所有大模型共用的骨架,再一块块拆开。
