Transformer 架构
Transformer 是 LLM 的基石(2017《Attention Is All You Need》)。面试必考:自注意力机制、为什么要多头、位置编码。
整体结构
一个 Transformer 层: 注意力 + 前馈 + 残差
每层 = 多头自注意力 + 前馈网络 + 残差连接 + LayerNorm,堆叠 N 层。
自注意力
核心思想:每个 token 根据与序列中其他 token 的相关性,聚合信息。
Q(查询): 我在找什么
K(键): 我是什么
V(值): 我携带的信息
Attention(Q,K,V) = softmax(QK^T / √d) · V- QK^T 算两两相关性(打分),softmax 归一化成权重,加权求和 V
- 除以 √d:防点积过大导致 softmax 饱和(梯度消失)
- 复杂度 O(n²):n 是序列长度(长上下文的瓶颈,见注意力优化篇)
例子:“猫追老鼠,它跑得很快”,“它”的注意力集中在“猫”上。
多头注意力
- 把 Q/K/V 切成 h 个头(如 8 头),每个头独立算注意力,拼接后投影
- 每个头学到不同的关系模式:语法关系、指代、长距离依赖
- 效果:一个头注意“指代”,另一个头注意“语义相似”
位置编码
自注意力本身没有顺序概念(打乱 token 结果一样),必须注入位置信息:
- 绝对位置编码(原始版):sin/cos 函数,每个位置一个向量
- RoPE(旋转位置编码)(现代标准):旋转矩阵编码相对位置,外推性好(见注意力优化篇)
编码器 vs 解码器
| 结构 | 注意力 | 用途 |
|---|---|---|
| 编码器(BERT) | 双向(看全上下文) | 理解任务 |
| 解码器(GPT) | 单向(只能看左边,掩码) | 生成任务 |
| 编码器-解码器(T5) | 混合 | 翻译等 seq2seq |
LLM 主流是纯解码器(GPT 架构):自回归生成。
面试追问
- 自注意力公式? softmax(QK^T/√d)V:QK 打分、softmax 加权、V 聚合。除以 √d 防饱和
- 为什么多头? 每个头学不同关系模式(指代、语法、语义),拼接增强表达
- 为什么位置编码? 注意力无顺序概念。RoPE 是现代标准(相对位置 + 外推)
- 复杂度? O(n²):序列平方。长文本的瓶颈,催生各种优化
- 残差和 LayerNorm 干什么? 残差防梯度消失(深层可训练),LayerNorm 稳定分布