614 分钟

Transformer 底层原理:从 Self-Attention 到 RoPE

理解 Self-Attention 公式推导、掌握 RoPE/KV Cache/FlashAttention 核心原理、了解现代 LLM 架构标配(RMSNorm/GQA/SwiGLU)。

TransformerSelf-AttentionRoPEKV CacheFlashAttention
进度保存在本机浏览器;验收通过后再点更稳妥

第19课:Transformer 底层原理 —— 从 Self-Attention 到 RoPE

本节目标:理解 Self-Attention 公式推导与手撕代码、掌握 RoPE/KV Cache/FlashAttention 核心原理、了解现代 LLM 架构标配(RMSNorm/GQA/SwiGLU)。

这是所有 LLM 岗位的必考底层。不要求逐行背,但要求能讲清原理。


1. Transformer 的革命

维度RNN/LSTM(旧时代)Transformer(新时代)
并行性串行处理完全并行
长依赖远距离信息衰减任意距离直接连接
训练速度快(GPU 并行)
可扩展性难以扩到超大万亿参数无障碍

2. Self-Attention 公式

code
                  Q · Kᵀ
Attention(Q,K,V) = softmax(─────────) · V
                  √d_k
符号含义
Q (Query)当前位置"在问什么"
K (Key)每个位置"是什么"
V (Value)每个位置"的内容"
d_kKey 的维度,用于缩放防止梯度消失

为什么除以 √d_k?

假设 q, k 是独立随机向量(均值 0 方差 1),则 q·k 的方差 = d_k。d_k 越大 → 数值越大 → softmax 后梯度接近 0。除以 √d_k 把方差归一化回 1。

实验证明:不除会让大模型训练崩溃。

Multi-Head Attention

单头只能学习一种关注模式。多头并行学习多种:

Code
Head 1: 学习"主谓关系"
Head 2: 学习"动宾关系"
Head 3: 学习"修饰关系"
Head 4: 学习"指代关系"
...

d_model=512 → 拆成 8 个 head,每个 64 维

3. 三大架构变体

架构注意力适用代表
Encoder-Only双向理解任务BERT
Decoder-Only单向(只看左边)生成任务GPT/Llama/Qwen/DeepSeek
Encoder-Decoder双向+交叉翻译/摘要T5/BART

为什么现代 LLM 都用 Decoder-Only?

① 训练简单:Next Token Prediction 一招打天下 ② 涌现能力强:规模扩展时表现更好 ③ 通用性强:所有任务都能转化为生成 ④ 训练数据充足:互联网文本天然适合 NTP


4. RoPE:旋转位置编码

Attention 本身没有位置信息——"我爱你"和"你爱我"对它一样。

RoPE 核心思想:用旋转矩阵编码位置。

code
对 Q, K 应用旋转:
  q'_m = R_m · q_m
  k'_n = R_n · k_n

那么 (q'_m)ᵀ · k'_n 只依赖于 (m-n) 相对位置!

三大优势

  • 显式编码相对位置
  • 外推性强(训 4K,能跑 32K)
  • 数学优雅,计算高效

Llama/Qwen/DeepSeek 全部用 RoPE。这是现代 LLM 的标配。


5. KV Cache:推理加速核心

问题

生成第 N 个 token 时,要重新计算前 N-1 个 token 的 K, V?→ O(N²) 复杂度。

解决

缓存之前的 K, V:

Code
第1步:计算 K_1, V_1,缓存
第2步:复用 K_1, V_1,只算 K_2, V_2
第N步:只算 Q_N, K_N, V_N,与缓存的 [K_1..K_{N-1}] 做 attention

复杂度:O(N²) → O(N)
速度:10-100 倍加速

KV Cache 显存优化演进

方案Cache 大小代表模型
MHA100%GPT-3
GQA~25%Llama-2/3, Qwen2.5
MQA~12.5%PaLM
MLA~7%DeepSeek-V2/V3

6. 现代 LLM 架构公式

code
Decoder-Only + RMSNorm + GQA/MLA + RoPE + SwiGLU + (MoE)
组件作用现代选择
Norm稳定训练RMSNorm(比 LayerNorm 快 7-64%)
Attention上下文理解GQA(Llama)/ MLA(DeepSeek)
位置编码注入位置信息RoPE(数学优雅+外推强)
FFN增加非线性SwiGLU(比 ReLU 效果好)
扩展增加容量MoE(671B 总参/37B 激活)

7. FlashAttention

问题:标准 Attention 显存 O(N²),受限于显存带宽。

FlashAttention 创新

  • 分块计算(tiling),在 SRAM 里完成
  • 不存储完整的 N×N attention 矩阵
  • 反向重计算节省显存

效果:训练速度 2-4x,显存减少 10-20x,支持 128K+ 上下文。现代框架默认启用,已成标配。


核心要点

  1. Self-Attention 公式必背:softmax(Q·Kᵀ/√d_k)·V
  2. 为什么 Decoder-Only:训练简单 + 涌现能力强 + 通用性强
  3. RoPE 是现代 LLM 标配——用旋转矩阵编码相对位置
  4. KV Cache 让推理从 O(N²) 降到 O(N)
  5. 现代 LLM 公式:Decoder-Only + RMSNorm + GQA/MLA + RoPE + SwiGLU

下一课:多模态 LLM 与多模态 RAG。