大语言模型技术指南:Transformer 为什么能成为基础架构?核心模块与参数怎么理解
前一篇我们先把大语言模型、视觉语言模型和多模态系统的整体地图搭起来了。
如果把那篇当成"先看全景",那这一篇就要正式进入地基部分。
因为你会发现,不管今天外面有多少模型名:
- Llama
- Qwen
- Mistral
- DeepSeek
- GPT 系列
- 以及很多视觉语言模型背后的语言骨架
往下追,基本都绕不开同一个核心词:
Transformer。
很多人知道它重要,但真正一问:
- Transformer 到底解决了什么问题?
- 它为什么能替代 RNN、LSTM,成为大模型时代的基础架构?
- self-attention 到底在"算什么"?
- 层数、隐藏维度、注意力头数这些参数,工程上分别意味着什么?
- 为什么上下文一长,推理成本就会迅速变高?
就容易开始模糊。
所以这一篇我不准备把你扔进一堆公式里,而是想把 Transformer 最值得真正理解的几件事讲透:
- 它到底是在解决什么老问题
- self-attention 为什么会成为核心机制
- 一个 Transformer block 里到底有哪些关键模块
- 层数、hidden size、head 数、FFN size 这些参数分别影响什么
- 从训练到推理,Transformer 的成本为什么会变得这么敏感
- 到了部署阶段,哪些地方最容易成为瓶颈
如果这篇吃透,后面再学预训练、长上下文、KV cache、LoRA / QLoRA、VLM 里的视觉 token 接入,你会顺很多。
一、先别急着背结构,先看 Transformer 到底替代了谁
Transformer 出现之前,序列建模主流长期是 RNN、LSTM、GRU 这条线。
它们的基本思路是:
- 输入一个 token
- 更新一次隐藏状态
- 再把状态传给下一个时间步
这种方式很符合"时间序列"的直觉。
问题也很明显。
1)计算天然是串行的
因为后一个时间步要依赖前一个时间步的状态,所以训练和推理都不容易并行。
2)长距离依赖不好学
理论上 LSTM 比普通 RNN 更能保留长期信息,但实际上当序列很长时,模型仍然容易出现:
- 远处信息传不过来
- 重要信息被中间过程逐步冲淡
- 训练变难,优化不稳定
3)通用性不够强
RNN 更像一种"按顺序滚动"的架构,而 Transformer 后来之所以厉害,在于它更像一种通用 token 交互框架。
所以 Transformer 真正改变的,不只是"效果更好",而是它把序列建模改造成了一种更适合大规模并行训练、也更适合通用模态接入的基础结构。
二、Transformer 最核心的一步:让 token 彼此直接看见对方
如果你只记一句话,我希望你记这句:
Transformer 的核心,是让当前 token 可以直接和上下文里其他 token 建立关联,而不是只能一跳一跳地传递信息。
这件事靠的就是 self-attention。
在传统 RNN 里,如果第 1 个词和第 80 个词之间有关联,中间要经过很多步状态传播。
而在 Transformer 里,第 80 个词可以直接去"看"第 1 个词,以及整段上下文里所有其他词。
这带来两个巨大变化:
- 信息路径变短
- 相关性建模更直接
所以 attention 的本质,不是"花哨权重",而是让模型动态决定:当前处理这个位置时,整段上下文里哪些地方最值得参考。
三、self-attention 到底在做什么?
很多人一看到 Q、K、V 就开始头大。
其实先别把它想得太玄。
你可以把 self-attention 先粗略理解成下面这件事:
当前 token 在问三个问题:
- 我在找什么信息? → Query
- 别人各自拥有什么信息特征? → Key
- 如果我决定关注它,我到底拿走它的什么内容? → Value
也就是说:
- Query 像是当前 token 的"检索需求"
- Key 像是每个 token 的"索引标签"
- Value 像是每个 token 真正可被聚合的内容
当当前 token 的 Query 和其他 token 的 Key 越匹配,说明它们越相关,模型就会给那个位置更高权重,并把对应的 Value 更多地加进来。
所以 attention 不是简单"平均看所有词",而是在做一种内容相关的加权聚合。
四、为什么叫 multi-head attention?"多头"到底有啥用?
如果只有一套 attention,模型每次只能用一种方式去理解上下文关系。
但现实语言关系很复杂:
- 有些头更容易关注语法依赖
- 有些头更容易关注主谓宾结构
- 有些头更容易关注远距离实体指代
- 有些头更容易捕捉局部模式或重复模式
所以 Transformer 不只做一次 attention,而是并行做多次,每次使用不同的投影空间。
这就是 multi-head attention。
直觉上可以理解为:让模型从多个"观察角度"同时看上下文。
五、一个 Transformer block 里到底有什么
如果你把一个典型 Transformer block 拆开,最核心一般就三层理解:
- attention 子层
- 前馈网络(FFN)子层
- 残差连接 + 归一化
六、第一部分:attention 子层负责"信息交互"
attention 子层最主要的工作,是让每个 token 和其他 token 发生信息交换。
你可以把它理解成:这一层先决定,当前位置应该从上下文哪里取信息。
在因果语言模型里,这里还要加上 mask,保证当前位置只能看见自己和前面的 token,不能偷看未来答案。
七、第二部分:FFN 负责"位置内变换"
很多初学者容易把 attention 看成全部,但其实 FFN 也非常重要。
attention 更像是在做 token 之间的信息交换;FFN 更像是在每个 token 自己的位置上做更深的非线性变换。
可以粗略理解成:
- attention:先把别处有用的信息搬过来
- FFN:再在当前位置把这些信息加工一遍
八、第三部分:残差连接和 LayerNorm 为什么这么关键
如果没有残差连接,深层网络训练会困难很多。
残差连接的直觉作用是:让每一层不是从头重写表示,而是在原表示基础上做增量修改。
而 LayerNorm 的作用,是帮助不同层、不同位置的数值分布保持相对稳定,减少训练过程中的数值漂移。
所以真正成熟的理解不是"Transformer = attention",而是:
Transformer = attention 负责全局交互 + FFN 负责局部变换 + 残差/归一化负责稳定训练。
九、位置编码为什么必不可少
attention 自己有一个天然问题:它本身如果只看 token 集合,并不知道顺序。
所以模型需要额外机制来感知:
- 哪个词在前
- 哪个词在后
- 相对距离大概多远
这就是位置编码存在的原因。
早期有绝对位置编码,后面很多 LLM 更常用的是 RoPE。
你现在先不用急着吃透细节,但要先记住:没有位置信息,Transformer 很难真正理解序列结构。
十、几个最关键的模型参数,到底分别在影响什么
最核心的先抓这几个:
- 层数(num layers)
- 隐藏维度(hidden size)
- 注意力头数(num heads)
- FFN 中间维度(intermediate size)
- 上下文长度(context length)
十一、层数:决定"计算深度"和表达层级
层数越多,模型就越能逐层抽取更复杂的表示。
带来的变化包括:
- 表示能力增强
- 训练难度增大
- 推理延迟增加
- KV cache 层数同步增加
十二、hidden size:决定主表示通道有多宽
hidden size 大致决定每个 token 在主干表示里有多宽的向量空间。
它越大,模型每个位置能承载的信息容量越高;但参数量、计算量、显存开销也会明显增加。
十三、num heads:决定注意力被拆成多少个并行视角
头数的意义是让模型从多个子空间并行看上下文。
但它不是越多越好。
如果 hidden size 不变,头数越多,每个头的维度就越小;头太多可能反而让单头表示能力不足。
十四、FFN intermediate size:决定每层内部变换容量
这个参数常常被忽略,但其实非常重要。
FFN 一般会把 hidden size 扩展到更大的中间维度,再投回去。
所以 intermediate size 越大,通常意味着:
- 每层局部非线性变换更强
- 参数量显著增加
- 计算量也会上升
十五、context length:决定一次能看多长,但也会迅速推高成本
上下文长度变长意味着:
- 可以塞更多历史对话
- 可以放更多检索片段
- 可以做更长文档处理
- 多图多模态任务里也能容纳更多 token
但与此同时,attention 成本会随着序列长度显著上升。
这就是为什么超长上下文从来不是免费午餐。
十六、Transformer 为什么训练时和推理时表现得像两种不同动物
训练时通常可以并行处理整段序列;
推理时尤其是自回归生成,要先 prefill,再一个 token 一个 token 地 decode,所以天然更串行。
这也是为什么模型在线服务时经常卡在:
- TTFT 太高
- decode 太慢
- 并发一多就掉速
十七、为什么说 attention 是能力核心,也是成本核心
attention 给了模型强大的上下文建模能力;同时它也是长序列成本爆炸的根源之一。
所以后面你会看到很多优化几乎都围着 attention 在转:
- FlashAttention
- GQA / MQA
- 滑窗注意力
- 稀疏注意力
- KV cache 优化
- 长上下文外推技巧
十八、到部署阶段,哪些参数最该盯紧
如果从服务部署角度,我建议你重点盯:
- 模型规模与显存占用
- context length 与真实请求长度分布
- TTFT 和 decode speed
- KV cache 开销
- 量化后的精度变化
十九、如果你把 Transformer 学成"公式题",后面会很难用起来
更有用的理解应该是:
- attention 负责跨位置找相关信息
- FFN 负责在当前位置做深加工
- residual + norm 负责把深层训练稳住
- position encoding 负责把顺序信息带进来
- layer / hidden / heads / FFN size 共同决定能力与成本
二十、最后总结:Transformer 之所以成为基础架构,不只是因为"效果好"
如果只用一句话概括这篇,我会说:
Transformer 成为基础架构,不只是因为它在论文上更强,而是因为它同时满足了表达能力、并行训练能力和通用模态扩展能力。
你这篇真正应该带走的,是下面这几个核心认识:
1)它替代 RNN,不只是因为新,而是因为更适合大规模并行和长距离建模
2)self-attention 的本质,是让每个 token 动态决定自己该关注上下文中的哪些位置
3)一个 Transformer block 不只有 attention,FFN、残差连接、LayerNorm 同样关键
4)层数、hidden size、头数、FFN size、context length,不是抽象数字,而是能力与成本的共同账本
5)attention 既是 Transformer 的能力核心,也是长上下文时代最大的成本核心之一