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