TransformerSelf-AttentionLLM深度学习LLM深入简述

Transformer 架构:Self-Attention 与位置编码的数学本质

一、算法概览

Transformer 是一种完全基于 Self-Attention(自注意力)机制 的序列建模架构,由 Vaswani 等人在 2017 年提出。它彻底抛弃了 RNN/LSTM 的循环结构,通过并行计算所有位置之间的关系,实现了对长距离依赖的高效建模。其核心思想可以浓缩为一句话:让序列中的每个 token 都能直接"看到"所有其他 token,并根据相关性动态加权聚合信息。


二、历史背景与问题起源

在 Transformer 出现之前,NLP 领域由 RNN 及其变体(LSTM、GRU)主导。RNN 的致命缺陷有三个:

  1. 串行计算瓶颈:第 t 步必须等第 t-1 步完成,无法并行,训练慢。
  2. 长距离梯度消失:即使 LSTM 加了门控机制,超过 50 步的依赖关系仍然难以捕捉。
  3. 信息路径长度:两个距离为 n 的 token 需要经过 O(n) 步才能交互。

2014-2015 年,Bahdanau 等人提出 Attention 机制用于 Seq2Seq,但本质上仍是 RNN 的"外挂"。Transformer 的突破在于:Attention 不再是辅助,而是主角。它用 O(1) 的路径长度替代了 O(n),使得任意两个位置的交互都是"一步直达"。


三、核心原理深入

3.1 Self-Attention 的数学本质

Self-Attention 的核心是一个 可学习的软检索(Soft Retrieval) 过程。想象你在一间图书馆里找书:

  • 你心中有一个 查询意图(Query,即 Q
  • 每本书有一个 标签描述(Key,即 K
  • 每本书的 实际内容(Value,即 V

你做的不是"挑一本",而是根据查询与所有标签的匹配度,对所有书的内容做加权平均

数学上,对于输入序列 X ∈ R^(n×d)

第一步:线性投影
Q = X · W_Q
K = X · W_K
V = X · W_V

第二步:计算注意力权重并聚合
Attention(Q, K, V) = softmax( Q·K^T / √d_k ) · V

其中 d_k 是 Key 向量的维度,n 是序列长度。

三个关键细节值得深究:

① 为什么除以 √d_k?

点积 Q·K^T 的方差会随着维度 d_k 线性增长。当 d_k 很大时(如 64 或 128),点积值会变得很大,导致 softmax 输出趋向于 one-hot 分布——梯度趋近于零,模型无法学习。除以 √d_k 将方差控制为 1,保持梯度健康。

直观理解:假设 Q 和 K 的每个分量都是均值为 0、方差为 1 的独立随机变量,则点积 Q·K 的方差 = d_k。除以 √d_k 后,方差回到 1,softmax 输入落在"温和区"。

② Multi-Head 的意义

单头 Attention 只能捕获一种"关系模式"。Multi-Head Attention 将 Q, K, V 分别投影到 h 个子空间,每个头学习不同的注意力模式:

MultiHead(Q, K, V) = Concat(head_1, head_2, ..., head_h) · W_O

其中:
head_i = Attention(Q·W_Qi, K·W_Ki, V·W_Vi)

类比:一个评审团中,有人关注语法,有人关注逻辑,有人关注情感——最后综合所有人的意见。这就是 Multi-Head 的本质:多角度并行建模

③ 计算复杂度

Self-Attention 的复杂度是 O(n²·d),这也是它的最大软肋——序列长度翻倍,计算量翻四倍。后续的 Flash Attention、Sparse Attention 等优化技术正是为了解决这个问题。

3.2 位置编码(Positional Encoding)

因为 Self-Attention 是置换不变的(打乱输入顺序,输出相同),必须显式注入位置信息。原始论文使用正弦位置编码:

对于位置 pos 和维度索引 i:

PE(pos, 2i) = sin( pos / 10000^(2i/d) )
PE(pos, 2i+1) = cos( pos / 10000^(2i/d) )

这个设计的精妙之处在于:对于任意固定的偏移 kPE(pos+k) 可以表示为 PE(pos) 的线性变换。这意味着模型理论上可以学会"相对位置"的概念。

现代大模型(如 LLaMA)普遍改用 RoPE(旋转位置编码),通过旋转矩阵编码相对位置,效果更优。


四、架构流程

Input Tokens → Embedding + Positional Encoding
    │
    ▼
┌─────────────────────────────────────┐
│         Encoder Block (×N)          │
│  ┌─────────────────────────────────┐│
│  │   Multi-Head Self-Attention     ││
│  │          ↓ (Add & Norm)         ││
│  │   Feed-Forward Network (FFN)    ││
│  │          ↓ (Add & Norm)         ││
│  └─────────────────────────────────┘│
└─────────────────────────────────────┘
    │
    ▼
┌─────────────────────────────────────┐
│         Decoder Block (×N)          │
│  ┌─────────────────────────────────┐│
│  │  Masked Multi-Head Self-Attn    ││
│  │  Cross-Attention (Encoder→Dec)  ││
│  │   Feed-Forward Network          ││
│  └─────────────────────────────────┘│
└─────────────────────────────────────┘
    │
    ▼
 Linear + Softmax → Output

关键组件:

  • Add & Norm:残差连接 + Layer Normalization,解决深层网络的梯度传播问题
  • FFN:两个线性变换 + 一个激活函数(通常是 ReLU/GELU),即 FFN(x) = W₂ · σ(W₁x + b₁) + b₂
  • Masked Self-Attention:Decoder 中防止看到未来 token(自回归生成的要求),通过将注意力矩阵的上三角部分置为 -∞ 实现

五、与其他算法的关系

Transformer 是大模型技术栈的地基

层级代表技术与 Transformer 的关系
架构变体GPT(Decoder-only)、BERT(Encoder-only)、T5(Encoder-Decoder)直接继承,裁剪不同子结构
高效推理Flash Attention、KV Cache、Speculative Decoding对 Attention 的工程优化
参数高效微调LoRA、QLoRA冻结 Transformer 主体,只训练低秩适配器
强化学习对齐RLHF、DPO、GRPO在预训练好的 Transformer 上做偏好对齐
稀疏化MoE(Mixture of Experts)将 FFN 替换为稀疏专家网络

可以说,理解 Transformer 是理解一切大模型技术的先决条件


六、关键论文

#论文要点
1"Attention Is All You Need" — Vaswani et al., NeurIPS 2017提出 Transformer 架构的原始论文,引用量已超 10 万次
2"Neural Machine Translation by Jointly Learning to Align and Translate" — Bahdanau et al., ICLR 2015首次在 Seq2Seq 中引入 Attention 机制,是 Transformer 的前置工作
3"RoFormer: Enhanced Transformer with Rotary Position Embedding" — Su et al., 2021提出 RoPE,已成为现代大模型(LLaMA、Qwen、DeepSeek)的位置编码标配

七、实践思考

三个常见理解误区:

误区正解
❌ "Self-Attention 能自动学到位置关系"✅ 没有位置编码的 Self-Attention 是置换不变的,完全不知道词序
❌ "Multi-Head 就是把 Attention 算多次取平均"✅ 每个头在不同子空间独立计算,最后拼接而非平均
❌ "除以 √d_k 只是经验技巧"✅ 它有严格的方差控制原理:不除会导致 softmax 饱和、梯度消失