1. Token(最小处理单位)
是什么?
大模型不能直接处理文字。
比如:
我喜欢苹果
需要切成:
我
喜欢
苹果
或者:
我
喜
欢
苹果
这些片段叫:
Token
注意
Token ≠ 字
Token 是模型认为合适的信息单位。
例如英文:
playing
可能拆:
play
ing
因为:
play + ing
可以组合更多单词。
为什么需要 Token?
因为:
模型处理的是数字。
流程:
文字
↓
Token
↓
Token ID
↓
数字
2. Tokenizer(分词器)
是什么?
负责:
文字 → Token
例如:
输入:
I love AI
Tokenizer:
I
love
AI
然后:
映射:
I → 12
love → 532
AI → 891
得到:
Token ID。
为什么 Token ID?
因为模型不能理解:
love
它只能计算:
532
但是:
注意:
Token ID 本身没有语义。
比如:
苹果 = 1001
香蕉 = 1002
1001和1002没有任何意义。
只是编号。
真正有意义的是后面的:
Embedding。
3. Embedding(词向量)
是什么?
把:
Token ID
转换成:
向量。
例如:
苹果
↓
[0.23,0.51,0.72,...]
这个向量叫:
Embedding。
为什么向量有意义?
因为训练过程中:
语义相近的词:
距离更近。
例如:
苹果
香蕉
橙子
可能靠近:
水果区域
而:
汽车
发动机
在另一个区域。
核心:
Token ID:
只是门牌号。
Embedding:
才是房间里的东西。
4. Position Embedding(位置编码)
为什么需要?
因为 Transformer 不像人:
天然知道顺序。
例如:
我喜欢你
和:
你喜欢我
Token一样。
但是意思不同。
所以加入:
位置信息。
例如:
我
+
位置1
喜欢
+
位置2
你
+
位置3
最终输入:
Token Embedding
+
Position Embedding
↓
Transformer
5. Attention(注意力)
解决什么问题?
一句话:
当前 Token 应该关注哪些 Token?
例如:
小明把篮球放下,因为它太大了
"它"
需要知道:
是:
篮球
不是:
小明
Attention:
计算:
哪个词和我关系最大
6. Self Attention(自注意力)
为什么叫 Self?
因为:
Q、K、V 都来自同一句话。
例如:
猫 吃 鱼
每个 Token:
都会生成:
Q
K
V
然后:
自己的 Q:
去看:
所有人的 K。
流程:
Q
↓
和所有K比较
↓
得到关注权重
↓
加权V
↓
更新自己
7. Q、K、V(Attention核心)
Q Query
表示:
我想找什么?
例如:
"吃"
想找:
谁吃?
吃什么?
K Key
表示:
我有什么标签?
例如:
猫:
动物
主体
鱼:
食物
对象
V Value
表示:
我真正提供的信息。
记忆:
Q 找 K
K 决定匹配
V 提供内容
8. Multi Head Attention(多头注意力)
为什么需要?
一个 Attention:
只能学习一种关系。
但是一句话:
小明昨天在北京买车
"买":
同时需要知道:
谁买?
小明
什么时候?
昨天
哪里?
北京
买什么?
车
所以:
多个 Head:
分别关注不同关系。
例如:
Head1:
人物关系
Head2:
时间关系
Head3:
地点关系
Head4:
对象关系
结构:
输入
↓
多个Attention并行
↓
Concat拼接
↓
Linear融合
↓
输出
9. Feed Forward(FFN)
Attention 做什么?
负责:
信息交流
例如:
猫
知道
鱼的信息
但是:
还需要:
加工信息。
所以:
FFN:
负责:
对每个 Token 自己进行计算。
结构:
Linear
↓
激活函数
↓
Linear
典型:
768
↓
3072
↓
768
一句话:
Attention:
"和别人交流"
FFN:
"自己思考加工"
10. Residual(残差连接)
为什么需要?
防止信息丢失。
没有:
输入
↓
Attention
↓
输出
可能:
原始信息丢掉。
所以:
加回来:
输出
=
Attention(x)
+
x
作用:
保留原始信息。
让深层网络训练更容易。
11. LayerNorm(层归一化)
为什么需要?
Transformer很多层。
如果数据越来越乱:
例如:
0.1
100
-50
不好训练。
所以:
归一化:
让数据稳定。
作用:
不是改变语义。
只是调整数值分布。
12. Transformer(整体)
现在把所有东西串起来:
文本
↓
Tokenizer
↓
Token ID
↓
Embedding
↓
Position Embedding
↓
Transformer Block
|
|
↓
Multi Head Attention
↓
Residual
↓
LayerNorm
↓
FFN
↓
Residual
↓
LayerNorm
↓
输出预测
最重要的一句话总结
如果面试问:
Transformer 是怎么理解一句话的?
你可以这样回答:
Transformer首先通过Tokenizer将文本转换为Token,再通过Embedding将Token映射成向量,并加入位置编码。进入Transformer Block后,通过Multi-Head Self-Attention让每个Token动态关注上下文信息,再通过Feed Forward进行特征加工,Residual和LayerNorm保证深层网络稳定训练。经过多层堆叠后,模型获得上下文语义表示,最终预测输出。