Transformer 核心架构
校招考察频度:★ 高频(核心必背·高频生死线) 一句话速记:自注意力计算全局两两关联,除以 √d_k 缩放方差保梯度;多头切分独立子空间捕捉多样语义;Decoder-Only 因 KV Cache 友好与工程扩展性统治现代 LLM。
Transformer(2017 年 Google 论文《Attention Is All You Need》)是整个大模型与现代 AI 产业的物理地基。面试官考察重点:自注意力计算公式各部分物理含义、为什么除以 √d_k、多头注意力作用、以及为什么当前主流大模型(GPT/Llama/DeepSeek)清一色采用 Decoder-Only 架构。
一、自注意力机制(Self-Attention)深度推导
核心直觉:序列中的每个 Token,根据与其他所有 Token 的语义相关度,动态加权聚合上下文信息。
自注意力计算数据流向图
核心计算公式:
Attention(Q, K, V) = softmax( (Q · K^T) / √d_k ) · V灵魂拷问:为什么除以 √d_k?(大厂数学高频必问!)
- 回答:防止点积结果过大导致 Softmax 进入饱和区,产生梯度消失(Vanishing Gradients)。
- 数学证明:
- 假设向量 Q 和 K 的各维度分量是相互独立的随机变量,均值为 0,方差为 1。
- 点积
q · k = Σ(q_i * k_i)(从 1 到 d_k)是 d_k 个独立变量之和。根据概率论,其均值仍为 0,但方差变成了 d_k(标准差为 √d_k)。 - 当向量维度 d_k 很大时(如现代大模型的 128 或更大),点积的绝对值会变得极大!
- 一旦输入给 Softmax 的数值极大,Softmax 函数输出的概率分布就会极度陡峭,陷入饱和区(即输出非 0 即 1),此时它的反向传播导数几乎处处为 0,导致模型梯度彻底消失,根本无法继续训练!
- 结论:除以 √d_k 将方差重新缩放归一化回 1,使数值落在 Softmax 导数最敏感、梯度最充沛的区间。
二、经典指代消解案例(Winograd Schema)
自注意力是如何让机器理解人类语言中的“指代与多义”的?看这组经典对比句:
句子 A: The animal didn't cross the street because IT was too tired.
(动物没有穿过马路,因为【它】太累了。)
-> 自注意力计算中,Token "it" 与 "animal" 的点积打分极高,"it" 的信息主要聚合自 "animal"。
句子 B: The animal didn't cross the street because IT was too wide.
(动物没有穿过马路,因为【它】太宽了。)
-> 仅改变了一个词 "wide",Token "it" 与 "street" 的注意力权重立刻飙升,"it" 自动消解为 "street"!这种不需要人工编写规则、纯粹通过训练自动学习上下文关联的能力,正是自注意力的强大之处。
三、多头注意力(Multi-Head Attention)
- 机制:不直接在原高维空间计算注意力,而是将 投影切分成 个低维子空间(例如 4096 维切成 32 个头,每个头 128 维),每个头各自独立进行注意力计算,最后将 个头的输出拼接(Concat)并经线性层投影输出。
- 作用:允许模型在不同的表征子空间中同时关注不同位置、不同维度的语义模式。
- 一个头专门关注语法主谓宾结构;
- 一个头专门捕捉长距离指代关系;
- 另一个头专门捕捉专有名词与属性对应。
- 类似“多个人从不同视角同时审阅一段文本”,表征能力远超单头注意力。
| 结构 | 注意力 | 用途 |
|---|---|---|
| 编码器(BERT) | 双向(看全上下文) | 理解任务 |
| 解码器(GPT) | 单向(只能看左边,掩码) | 生成任务 |
| 编码器-解码器(T5) | 混合 | 翻译等 seq2seq |
LLM 主流是纯解码器(GPT 架构):自回归生成。
面试追问
- 自注意力公式? softmax(QK^T/√d)V:QK 打分、softmax 加权、V 聚合。除以 √d 防饱和
- 为什么多头? 每个头学不同关系模式(指代、语法、语义),拼接增强表达
- 为什么位置编码? 注意力无顺序概念。RoPE 是现代标准(相对位置 + 外推)
- 复杂度? O(n²):序列平方。长文本的瓶颈,催生各种优化
- 残差和 LayerNorm 干什么? 残差防梯度消失(深层可训练),LayerNorm 稳定分布