Transformer 核心机制深度理解笔记
一、QKV矩阵:规模与本质
1.1 矩阵规模的两个视角
| 视角 | 维度 | 规模 | 本质 |
|---|---|---|---|
| 训练态(权重) | [d_model, d_model] |
千万~亿级参数 | 可训练的参数矩阵 |
| 推理态(向量) | [1, d_model] |
千级维度(如4096) | 当前词的数学表示 |
1.2 参数量的计算
text
单个Q矩阵参数量 = d_model²
单层QKV总参数量 = 3 × d_model²
模型总参数量 ≈ L × (3 × d_model² + 其他)
示例:d_model=4096,L=32
- 单矩阵:4096² ≈ 1678万
- 单层QKV:3 × 1678万 ≈ 5034万
- 32层:32 × 5034万 ≈ 16.1亿(这只是Transformer部分)
1.3 关键校准点
- 1B = 10亿参数,不是1亿
- 模型 ≠ 单个QKV矩阵,而是多层×每层多矩阵的集合
- 输入→输出:通常是低维→高维映射,不是降维
二、多层机制:为什么维度不变却要堆叠?
2.1 残差连接:让深度成为可能
text
输出 = 层处理(输入) + 输入
- 保证输入输出维度一致
- 形成信息"高速公路",让梯度可以直达浅层
- 使数十层网络可训练
2.2 层次化抽象:每一层在做什么?
| 层数范围 | 学习内容 | 比喻 |
|---|---|---|
| 第1-5层 | 语法、短语结构 | 勾勒轮廓 |
| 第6-10层 | 语义角色、上下文消歧 | 上色、调光影 |
| 第11-20层 | 长距离依赖、逻辑关系 | 整体构图 |
| 第21层+ | 最终表示优化,准备预测 | 风格统一 |
2.3 核心洞察:微小修正的累积
每一层只做一件事:
text
向量_new = 向量_old + f(向量_old)
其中f是Attention+FFN。经过几十层微小调整,初始向量被"雕刻"成精确的语义表示。
三、核心类比:幂运算的启示
3.1 你的发现:多层 = 拆分复杂计算
| 方式 | 计算2¹⁰ | 特点 |
|---|---|---|
| 单层(大矩阵) | 直接算1024 | 一步到位,但这一步极复杂 |
| 多层(小递归) | 2→4→8→...→1024 | 每一步都简单,需要10步 |
3.2 神经网络的版本
text
单层网络:一步学会 *1024
深层网络:每步学会 *w_i,且 w_i 可学习,组合起来实现 *1024
3.3 为什么深度更好?
| 优势 | 解释 |
|---|---|
| 学习难度降低 | 学会 *2 比学会 *1024 容易得多 |
| 参数效率 | 在高维空间,深层网络可以用更少参数表达更复杂函数 |
| 特征复用 | 中间结果(2¹, 2²...2⁹)可在其他任务中复用 |
| 泛化能力 | 学到的不仅是最终结果,而是完整的计算路径 |
四、完整流程图解
4.1 单个token的旅程
text
输入词:"苹果"(初始向量 v₀)
↓
第1层:v₁ = v₀ + Attention₁(v₀) # 开始关注相邻词
↓
第2层:v₂ = v₁ + Attention₂(v₁) # 理解短语("红苹果")
↓
第3层:v₃ = v₂ + Attention₃(v₂) # 语义角色(是吃的还是品牌?)
↓
...
↓
第32层:v₃₂ = v₃₁ + Attention₃₂(v₃₁) # 最终精确表示,准备预测下一个词
4.2 语义空间中的移动
text
[水果区] [科技区]
| |
v₀(苹果) |
| (上下文:"红富士") |
↓ |
v₃(苹果) |
| (上下文:"iPhone")
| ↓
| v₂₀(苹果)
最终,两个"苹果"在语义空间中相距很远——这就是上下文理解
五、深度学习的哲学:用深度换精度
5.1 核心洞察
深度不是简单的堆叠,而是复杂函数的优雅分解
每一层都在做微小但关键的调整,就像雕刻家一刀一刀地去除多余的石料,最终呈现出精确的形态。
5.2 这个视角解释的现象
- 为什么模型越深效果越好?
复杂变换可以被分解为简单变换的序列 - 为什么浅层特征可以复用?
输入输出同维度,像乐高一样可堆叠、可嫁接 - 为什么残差连接必不可少?
没有它,深层网络就像没有中间结果的幂运算——每一步都从零开始,误差会累积
5.3 最终理解框架
text
单层网络:试图一步到位,学习一个巨大的映射 f: 输入→输出
深层网络:学习一系列微小映射 f₁,f₂,...,f_L,其中 f_i: 微小修正
最终效果:f_L ∘ f_{L-1} ∘ ... ∘ f₁ ≈ 理想中的复杂映射
六、思考题:基于当前理解
如果你已经理解了这些,你应该能回答:
- 为什么说"模型参数量"和"推理时显存占用"是两个概念?
(提示:权重 vs 激活值/KV Cache) - 如果去掉残差连接,32层网络还能训练吗?为什么?
- 为什么说浅层网络学到的特征更"通用",深层更"任务特定"?
笔记完成。这份总结整合了你从QKV规模到多层机制的全部理解,并用幂运算类比作为核心洞察贯穿始终。
评论
欢迎留下反馈,评论发布后会立即显示。