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 × 7684. 为什么需要 Position Encoding?
Attention 有一个特点:
它只关心 token 之间的关系。
但是:
我打你和:
你打我如果没有位置信息:
模型不知道顺序。
因此 Transformer 加入:
Position Encoding最终输入:
Token Embedding + Position Information告诉模型:
这个词是什么 + 这个词在哪里现代大模型中常见:
RoPE Rotary Position Embedding也是为了解决位置信息问题。
5. Self-Attention:Transformer 的核心
Attention 解决的问题:
当前 token 应该关注哪些 token?
例如:
我 去 银行 办理 贷款处理:
银行时,需要判断:
我 去 银行 办理 贷款哪个重要。
于是产生:
Q K V6. Q、K、V 到底是什么?
不要把 Q/K/V 理解成三个输入。
它们来自同一个输入:
X通过三个不同的线性变换:
Q = XWq K = XWk V = XWv其中:
Wq Wk Wv都是模型训练出来的参数。
Query
表示:
我想寻找什么信息?
例如:
银行:
我想知道哪些词和我的金融含义相关?Key
表示:
我是什么类型的信息?
例如:
贷款:
我是金融相关信息Value
表示:
如果关注我,我提供什么内容?
所以 Attention 的流程:
7. Attention 公式解析
公式:
拆开:
第一步: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公式:
意思:
新学习的信息建立在原信息基础上。
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 的过程中学习到语言、知识、代码和复杂任务模式。