LLM架构:Transformer原理详解 simplement
人们到处都在谈论“Transformer”“注意力”“参数”,却从不说明这些术语具体指什么。本指南揭开大语言模型(LLM)的内部结构,用简单的类比解释其架构,不涉及任何公式。读完后,您将从内部理解 LLM 的架构——尤其会明白,为什么这些设计选择决定了模型所需的显存容量,以及它在您电脑上的响应速度。
#理解 LLM 架构的原因
无需了解其内部运作,即可在本地运行一个大语言模型——一个 ollama run suffit. 但一旦希望为自己的设备选择合适的模型,技术规格中的每一个词都可能成为障碍:‘32 层’,‘70 亿参数’,‘MoE 8x7B’,‘注意力头数为 32’。正是这些数字决定了该模型是否能装入你的显卡,或会占用你的 CPU 资源。
好消息是:在当前所有大语言模型(LLM)中占主导地位的架构——Transformer——基于几项核心理念,无需借助数学就能解释清楚。理解这些理念,就意味着从“我只是复制命令,并不明白其中原理”转变为“我知道为什么这个模型需要 9 GB 显存,而不是 40 GB”。
#用一张图看懂 Transformer
只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。
- 在线空间,终身可用
- PDF + 文件
- 30 天内退款
现代大语言模型(LLM)是一种 Transformer:接收文本输入,然后不断预测下一个词的机器。这个名称源自论文《Attention Is All You Need》(Google,2017),该论文引入了这一架构。您接触到的所有模型——Llama、Qwen、Mistral、Gemma、DeepSeek、Phi——都是它的变体。
想象一条装配线。入口处,您的句子被拆分成片段。装配线上的每个工位(一个“层”)都会结合上下文,加深对文本的理解。出口处,模型会给出最可能的下一个片段。每生成一个新片段,就重复这一过程。基本过程就是这样——其余只是各个工位具体如何工作的细节。
- 输入
- 您的文本被分割为 token(单词的细小片段)
- 层堆叠
- 每一层都会进一步优化文本表示。一个模型包含数十层。
- 注意力
- 每一层的核心机制:它使每个词能够「查看」其他词。
- 输出
- 为每个可能的标记计算概率;模型从中选择一个,添加到文本中,然后继续生成。
#从您的文本到 token
LLM 看到的不是字母,甚至不是完整的单词,而是 token。Token 是常见的文本片段——有时是完整的短词(如“chat”),有时是单词的一部分(如“anti”、“constitution”),有时是空格或标点符号。在法语中,粗略估计每 2 个单词对应 3 个 token。
每个 token 随后都会转换成一串数字,称为「嵌入向量」(embedding)。这相当于把文本翻译成机器能够处理的语言:用空间中的坐标表示词语,含义相近的词在空间中的位置也相近。「国王」和「王后」在其中彼此相邻;「国王」和「西兰花」则相距很远。
#注意力机制,Transformer 的核心
注意力机制是改变了一切的理念。以这句话为例:“老鼠吃了奶酪,因为它饿了。”这里的“它”指谁?显然是老鼠。要判断这一点,就必须把“它”与前面隔了几个词的“老鼠”联系起来。这正是注意力机制所做的事:对于每个词,它判断句子中的哪些其他词与之相关,以及应赋予这些词多大的权重。
类比:在会议中,当你听到一个模糊的代词时,你的大脑会回溯之前说过的内容以确定指代对象。注意力也类似,它会并行处理所有词语。每个词都会‘提出问题’(我需要什么信息才能被理解?)并‘接收来自其他词的回应’,这些回应根据相关性进行加权。
人们常提到「注意力头」(attention heads)。一个注意力头就是观察关系的一种方式;拥有多个注意力头(32 个、64 个……),能让模型同时追踪多种联系——有的关注语法,有的关注文本主题,还有的关注时间指代。
#堆叠层
单个注意力层能理解简单的关系。模型的强大能力来自层层堆叠:一层的输出成为下一层的输入。小模型有大约二十层,大模型则有几十层。每一层都包含两个模块:注意力机制(将词语彼此关联起来)和前馈网络(单独处理每个词,就像一个思考刚刚读到的内容的微型大脑)。
类比:多层次阅读。第一层识别词语和语法。中间的各层构建句子的含义。最后的几层把握意图、语气以及接下来应该出现的内容。层数越多,模型就越能进行深入推理——但每生成一个 token 所需的计算量也越大。
- 注意力块
- 将词语相互关联起来(形成上下文)。
- 前馈块
- 对每个词进行深层变换(模型的“知识”所在)。
- 层数
- 「深度」。深度越大,模型的能力越强,但速度也越慢。
- 宽度(隐藏维度)
- 数字列表的长度。列表越长,模型就越“宽”,资源占用也越大。
#参数到底是什么意思
看到“7B”或“70B”时,B 表示“十亿”(英语中的 billion),指的是参数数量。参数是模型内部可调节的数值——就像训练过程中调整的无数个旋钮之一。这些旋钮编码了模型“知道”的一切:语法、事实、风格和推理。
打个比方:想象一个拥有数十亿个滑块的巨型混音台。训练就是调整每个滑块,让模型在数十亿个文本示例中预测出正确的下一个词。这些设置一旦固定下来,就是您执行 ollama pull 时下载的“权重”(weights)。
模型的参数越多,就越能记住信息并表达细微差别——但它占用的内存也越多,速度也越慢,因为每个生成的 token 都要经过所有这些参数的处理。这就是“7B”这个数字与您机器的硬件要求之间的直接联系。
#稠密架构与混合专家架构(MoE):两种模型连接方式
到目前为止,我们描述的是一种“稠密”Transformer:每个 token 都会经过全部参数。结构简单,但成本高昂——一个 70B 稠密模型每生成一个词,都会调用其 700 亿个参数。
MoE(混合专家)架构打破了这一规则。它在每一层中设置多个前馈模块(称为“专家”),而不是一个大型前馈模块;每处理一个 token,只激活其中少数几个,由一个小型分配模块(称为“路由器”)选择。可以这样类比:不是由一位全科医生回答所有问题,而是在一家专科诊所里,只咨询与您的情况相关的两位医生。
- Dense
- 所有参数在每个 token 上均生效。例如:Llama 3 8B,Qwen 14B,Gemma 27B。
- MoE
- 总参数量很大,但每个token实际激活的参数较少。例如:Mixtral 8x7B,DeepSeek V3,Llama 4 Scout。
- MoE表示法
- “30B-A3B” = 总参数 300 亿,但每个 token 仅激活 30 亿参数(A = active)。
这对本地运行有重大影响:混合专家模型(MoE)的速度表现像小模型(活跃参数较少),同时保留了大模型的广博知识(总参数量很大)。难点在于显存:必须将全部专家加载到内存中,即使每次只激活其中一小部分。
#为什么这些因素决定了显存需求和运行速度
现在来看实际应用中的关键问题。本地运行时,两种资源至关重要:内存(容纳模型)和计算能力(快速回答)。架构决定着这两方面的需求。
#内存:必须容得下模型权重
要运行得快,模型必须完全装入 GPU 的显存(或搭载 Apple Silicon 芯片的 Mac 的统一内存)。否则,模型的一部分就会转由 CPU 和系统内存处理,速度会急剧下降。模型大小取决于参数数量和量化方式。
- Q4 量化的 3B 模型
- 约 2 GB VRAM
- 7B Q4
- ≈ 5 GB
- 14B 量化为 Q4
- ≈ 9 GB
- 32B Q4
- ≈ 19 GB
- Q4 量化的 70B 模型
- ≈ 40 GB
还需计入上下文占用的内存(KV 缓存),其大小随提示词长度增长。长上下文可能额外需要数 GB 内存;显存已接近容量上限时,别忘了这一点。
#速度:每个 token 激活多少参数
生成速度(每秒生成的 token 数)主要取决于每个 token 实际激活的参数数量。因此,8B 稠密模型与 30B-A3B MoE 模型的生成速度可能相近:两者每个 token 都只激活约 30 亿至 80 亿个参数。只是 MoE 模型需要多得多的显存来容纳所有专家。
- RTX 3060 12 GB
- 最高可轻松运行 Q4 量化的 14B 模型,是理想的入门级显卡。
- RTX 4070 / 4080 (12–16 GB)
- 14B 模型运行轻松,32B 模型采用 Q4 量化时,在 4080 上显存余量很紧。
- RTX 4090 24 GB
- 可轻松运行 Q4 量化的 32B 模型,但仅靠 GPU 无法运行 70B 模型。
- Mac M4 Pro 24–48GB统一内存
- 统一内存可用作显存:48 GB 配置最高可运行 Q4 量化的 70B 模型。
#逐行阅读模型信息表
您现在已经掌握了读懂技术规格表的方法。下面来看一个典型示例,类似的内容在 Hugging Face 或 Ollama 模型库中很常见:
- 架构:仅解码器
- 生成式LLM的标准:模型仅预测文本的后续内容(不包含独立的「编码器」部分)
- 参数:14B
- 140亿参数。显存占用:约9GB(Q4),需至少12GB显存的显卡。
- type: dense
- 每个标记都激活所有参数。如果是MoE架构,你会看到类似30B-A3B的标注。
- layers: 40
- 40层堆叠。这是深度:层数越多,推理越精细,但速度也越慢。
- attention_heads: 40
- 每层 40 个注意力头——即并行关联词语的方式数量。
- context_length: 32768
- 上下文长度为 32k 个 token,相当于约 24,000 个单词。注意:填满此上下文会额外消耗 VRAM。
- 量化:Q4_K_M
- 精度降低至每个参数约 4 位。这是本地运行时模型质量与体积之间的最佳折中。
- size_on_disk: 9 GB
- 您下载的内容以及为实现最大速度所需加载到内存中的内容。
有了这七行内容,您就已经能回答唯一重要的问题:“它在我的机器上运行得好吗?”这里的情况是:14B 模型采用 Q4 量化 = 约 9 GB 的模型权重 + 上下文所需内存 → 一张 RTX 3060 12 GB 或更好的显卡,而且运行速度很快。
#深入了解
您现在了解了大语言模型的基本结构。三个延伸指南自然地补充了这些基础内容:第一个详细说明 MoE 的表示方法及其实际影响,第二个解释了量化选择如何决定磁盘占用大小,第三个则再次回顾了本文中提到的上下文窗口问题。
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。