Transformer 深入浅出:从问题推导到大语言模型核心架构
从一个问题开始理解 Transformer,而不是背 Q/K/V、Attention 公式。
1. 为什么需要 Transformer?
在 Transformer 出现之前,NLP(自然语言处理)主要依赖 RNN、LSTM 等循环神经网络。
例如:
我昨天去了银行办理贷款。
传统 RNN 的处理方式:
我
↓
昨天
↓
去
↓
银行
↓
办理
↓
贷款
模型需要按照顺序逐个读取。
这种方式存在两个核心问题:
问题 1:无法充分并行
GPU 擅长矩阵计算,但是 RNN 必须:
第1个词处理完成
↓
第2个词处理
↓
第3个词处理
前一个时间步完成之前,后一个无法开始。
因此训练效率较低。
问题 2:长距离依赖困难
例如:
我小时候住在北京,后来去了很多城市,二十年后我又回到了这里。
模型需要知道:
这里
↓
北京
二者距离很远。
RNN 需要经过很多计算步骤传递信息,容易丢失。
因此出现一个核心问题:
一个词如何直接关注句子中其他相关的词?
这就是 Attention 的来源。
2. Transformer 的核心思想
Transformer 的核心:
让每个 token 根据当前上下文,动态决定应该关注哪些 token。
例如:
我 去 银行 办理 贷款
理解:
银行
时:
模型发现:
办理
贷款
和它关系更强。
于是:
银行
+
办理
+
贷款
共同决定“银行”的当前含义。
这就是:
Contextual Representation
上下文表示
同一个词:
bank
在不同句子:
I went to the bank.
I sat near the bank of the river.
会产生不同含义。
3. 输入:文字如何进入 Transformer?
计算机不能直接理解:
银行
所以第一步:
Tokenization
文本:
我喜欢人工智能
转换:
token1 token2 token3
然后:
Embedding
每个 token 转换成向量:
银行
↓
[0.21, -0.53, 0.88 ...]
假设:
d_model = 768
那么:
一个 token:
768维向量
一句话:
seq_len × d_model
例如:
10 × 768
4. 为什么需要 Position Encoding?
Attention 有一个特点:
它只关心 token 之间的关系。
但是:
我打你
和:
你打我
如果没有位置信息:
模型不知道顺序。
因此 Transformer 加入:
Position Encoding
最终输入:
Token Embedding
+
Position Information
告诉模型:
这个词是什么
+
这个词在哪里
现代大模型中常见:
RoPE
Rotary Position Embedding
也是为了解决位置信息问题。
5. Self-Attention:Transformer 的核心
Attention 解决的问题:
当前 token 应该关注哪些 token?
例如:
我 去 银行 办理 贷款
处理:
银行
时,需要判断:
我
去
银行
办理
贷款
哪个重要。
于是产生:
Q
K
V
6. Q、K、V 到底是什么?
不要把 Q/K/V 理解成三个输入。
它们来自同一个输入:
X
通过三个不同的线性变换:
Q = XWq
K = XWk
V = XWv
其中:
Wq
Wk
Wv
都是模型训练出来的参数。
Query
表示:
我想寻找什么信息?
例如:
银行:
我想知道哪些词和我的金融含义相关?
Key
表示:
我是什么类型的信息?
例如:
贷款:
我是金融相关信息
Value
表示:
如果关注我,我提供什么内容?
所以 Attention 的流程:
Q
↓
和所有 K 比较
↓
得到相关程度
↓
根据权重读取 V
7. Attention 公式解析
公式:
$$ Attention(Q,K,V) = softmax ( \frac{QK^T}{\sqrt{d_k}} )V $$
拆开:
第一步:QKᵀ
计算:
Query
和
所有 Key
的相似度。
得到:
token之间的关系矩阵
例如:
我 去 银行 办理 贷款
我
去
银行
办理
贷款
每个位置代表:
一个 token 对另一个 token 的关注程度
第二步:Softmax
把分数转换成概率:
例如:
办理 25%
贷款 60%
银行 7%
表示:
银行主要关注:
贷款
办理
第三步:加权求和 V
最终:
银行的新表示
=
0.25×办理信息
+
0.60×贷款信息
+
其他信息
于是:
原来的:
银行
变成:
和金融业务相关的银行
8. 为什么需要 Multi-Head Attention?
一个 Attention 只能观察一种关系。
但是语言包含很多关系:
例如:
小明因为小红生病,所以他去医院看她。
同时存在:
他 → 小明
她 → 小红
医院 → 生病
因此 Transformer 使用:
Multi-Head Attention
多个注意力头:
Head 1
关注语法
Head 2
关注指代
Head 3
关注语义关系
最后:
Concat
↓
Linear
融合。
注意:
模型并没有人为规定:
Head1一定学语法
这些关系是训练过程中自动形成的。
9. FFN:Attention 后为什么还需要它?
这是很多人容易误解的地方。
Attention:
负责信息交换。
FFN:
负责信息加工。
例如:
Attention:
银行
获得:
贷款信息
办理信息
但是这些只是收集来的信息。
FFN 进一步处理:
贷款
+
办理
+
银行
↓
形成更高级特征
↓
金融行为
FFN 结构:
输入
↓
Linear
↓
激活函数
↓
Linear
↓
输出
通常:
768维
↓
3072维
↓
768维
为什么扩大?
因为更高维空间可以学习更多复杂组合。
可以这样记:
Attention:
我应该看谁?
FFN:
看完之后,我应该如何理解?
10. Residual Connection 为什么存在?
Transformer 很深:
Block1
↓
Block2
↓
Block3
...
容易:
- 信息丢失
- 梯度消失
所以加入残差:
普通:
x
↓
Layer
↓
y
残差:
x --------┐
↓
Layer(x) + x
公式:
$$ output=x+F(x) $$
意思:
新学习的信息建立在原信息基础上。
11. LayerNorm 的作用
深层网络中:
不同层的数据分布可能变化。
LayerNorm:
帮助:
- 稳定训练
- 加速收敛
- 防止数值异常
简单理解:
调整数据分布
让网络更容易学习
12. 一个 Transformer Block 的完整结构
输入
↓
Self Attention
↓
Residual
↓
Normalization
↓
FFN
↓
Residual
↓
Normalization
↓
输出
大量堆叠:
Block 1
↓
Block 2
↓
Block 3
↓
...
↓
Block N
形成大型语言模型。
13. 为什么高层表示更加抽象?
不是因为:
第1层负责语法
第30层负责推理
这种固定划分。
真实情况:
每一层都在:
Attention
+
FFN
不断加工。
简单理解:
低层:
词之间的关系
中层:
关系组合
高层:
更复杂的语义模式
例如:
第一层:
银行
关注
贷款
中间层:
银行 + 贷款 + 办理
更高层:
用户正在进行金融行为
14. Decoder-only 为什么成为 GPT 的主流?
Transformer 最初:
Encoder
+
Decoder
例如翻译任务。
后来发现:
很多任务只需要生成。
于是出现:
Decoder-only
代表:
GPT
Llama
Qwen
DeepSeek
它的特点:
只能看到过去:
我 今天 去
不能看到未来:
银行
因此使用:
Causal Mask
保证:
预测当前 token 时不能偷看答案。
15. GPT 如何生成文本?
输入:
中国的首都是
流程:
Tokenizer
↓
Embedding
↓
Transformer
↓
Hidden State
↓
Linear
↓
Vocabulary概率
得到:
北京 0.9
上海 0.02
广州 0.01
选择:
北京
然后:
中国的首都是北京
继续预测。
这叫:
Autoregressive Generation
自回归生成
16. 为什么只预测下一个 token,却能产生智能?
核心:
预测任务很简单,但是为了预测准确,模型必须学习复杂规律。
例如:
预测:
法国的首都是
需要知道:
法国
国家实体
首都
城市关系
巴黎
对应知识
预测:
def binary_search():
需要知道:
代码结构
算法逻辑
变量关系
预测:
小明有3个苹果,又买2个,一共有
需要知道:
数学推理过程
因此:
next-token prediction
↓
学习语言规律
↓
学习世界规律
↓
形成语义表示
↓
产生复杂能力
17. Transformer 与 LLM 的完整链路
最终:
文本
↓
Tokenizer
↓
Embedding
↓
Position Encoding
↓
Transformer Blocks
↓
Self Attention
↓
FFN
↓
Residual + Norm
↓
Hidden State
↓
LM Head
↓
下一个 Token
↓
循环生成
18. 最终理解框架
不要记:
Transformer = QKV + Softmax
应该记:
文字无法计算
↓
Embedding
词没有上下文
↓
Attention
不知道位置
↓
Position Encoding
信息需要加工
↓
FFN
网络需要稳定训练
↓
Residual + Norm
不断堆叠
↓
Transformer
预测下一个token
↓
LLM
一句话总结:
Transformer 本质是一种通过 Self-Attention 建立 token 之间关系,并通过 FFN 进行特征加工的深度神经网络架构。大型语言模型利用大量文本训练这个架构,使其在预测 token 的过程中学习到语言、知识、代码和复杂任务模式。