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 这个视角解释的现象

  1. 为什么模型越深效果越好?
    复杂变换可以被分解为简单变换的序列
  2. 为什么浅层特征可以复用?
    输入输出同维度,像乐高一样可堆叠、可嫁接
  3. 为什么残差连接必不可少?
    没有它,深层网络就像没有中间结果的幂运算——每一步都从零开始,误差会累积

5.3 最终理解框架

text
单层网络:试图一步到位,学习一个巨大的映射 f: 输入→输出
深层网络:学习一系列微小映射 f₁,f₂,...,f_L,其中 f_i: 微小修正
最终效果:f_L ∘ f_{L-1} ∘ ... ∘ f₁ ≈ 理想中的复杂映射

六、思考题:基于当前理解

如果你已经理解了这些,你应该能回答:

  1. 为什么说"模型参数量"和"推理时显存占用"是两个概念?
    (提示:权重 vs 激活值/KV Cache)
  2. 如果去掉残差连接,32层网络还能训练吗?为什么?
  3. 为什么说浅层网络学到的特征更"通用",深层更"任务特定"?

笔记完成。这份总结整合了你从QKV规模到多层机制的全部理解,并用幂运算类比作为核心洞察贯穿始终。