Appearance
Transformer 高频面试问答
本文件用于秋招技术面试口头表达训练,不承担完整原理正文职责。
详细原理参见:
02_AI/Transformer/01_transformer-foundation.md02_AI/Transformer/02_attention.md02_AI/Transformer/03_transformer-block.md
1. Transformer 相比 RNN 为什么更适合并行训练?
RNN 在序列维度存在递归依赖:
后一个位置依赖前一个位置的计算结果。
Transformer 使用 Self-Attention,可以将整段已知序列组织成矩阵运算,同时计算各位置的表示。
因此训练阶段不同 token position 之间具有更好的并行计算能力。
需要区分:Decoder-only 模型训练时可以并行处理已知序列中的多个位置,但自回归生成时仍然需要逐 token 生成。
2. Token ID 为什么不能直接作为连续数值特征?
Token ID 本质上只是词表索引。
例如 173 和 174 数值接近,并不意味着对应 token 在语义上接近。
Embedding 将离散 Token ID 映射到可学习的连续向量空间:
3. Transformer 为什么需要位置信息?
Self-Attention 本身主要根据表示之间的匹配关系进行信息交互,并没有天然编码完整的序列顺序信息。
因此需要额外引入位置表示,使模型能够感知 token 顺序、位置和距离关系。
4. 与 Q/K/V 有什么区别?
是模型的可学习参数。
当前输入
所以 Q/K/V 是当前 Forward 中动态产生的 activation。
参数长期保存,Q/K/V 随输入动态变化。
5. 每个 Token 是否拥有独立的 ?
不是。
同一个 Attention Head 内的所有 token 共享同一组投影参数。
虽然使用相同参数,但由于各 token 的 hidden representation 不同,得到的 q/k/v 也不同。
6. Q、K、V 分别负责什么?
Q 与 K 用于计算 token 间的信息路由权重:
V 承载实际被路由和聚合的内容:
Q/K 决定从哪里获取多少信息,V 决定真正获取什么信息。
7. 为什么 K 和 V 要分开?
用于判断“某个位置是否值得关注”的表示,不一定等于“关注以后应该传递什么内容”的表示。
因此 K 和 V 使用不同的可学习投影,使匹配与内容传递可以分别学习。
8. 为什么 Attention 要除以 ?
在经典简化假设下:
其方差大约随
如果不缩放,维度增大后 Attention logits 的尺度容易变大,使 Softmax 分布过度尖锐并进入饱和区域。
因此:
用于稳定 logits 的数值尺度。
9. 的维度是什么?
如果:
则:
第
10. Causal Mask 的作用是什么?
Decoder 自回归生成时,当前位置不能访问未来 token。
因此在 Softmax 前将未来位置的 Attention Score 设为
如果训练阶段没有 Causal Mask,模型会读取未来真实 token,产生未来信息泄漏。
11. Multi-Head Attention 的意义是什么?
不同 Head 使用不同的 Q/K/V 投影参数,因此可以在不同表示子空间中形成不同的信息路由与内容表示。
Multi-Head Attention 不是将同一个 Attention 重复计算多次,而是在多个可学习子空间中并行建模不同的信息交互模式。
12. Attention 输出 是什么?
对于一个 Head:
其中每个
它不是用于“更新 V”的参数操作,而是 Attention 子层产生的 contextualized representation。
13. Concat 后为什么还需要 ?
不同 Head 输出首先通过 Concat 拼接:
再通过:
重新组合不同 Head 的特征,并将结果投影回统一的 hidden representation 空间。
14. Residual Connection 为什么重要?
Residual:
使子层可以学习对当前表示的增量修正,同时保留原始信息。
从梯度角度:
因此存在较直接的 identity path,有助于深层模型中的信息与梯度传播。
15. Pre-Norm 与 Post-Norm 有什么区别?
Post-Norm:
Pre-Norm:
Pre-Norm 在子层前进行归一化,同时 Residual Path 保持更加直接,因此现代深层 Transformer 和大语言模型中更加常见。
16. FFN 在 Transformer 中负责什么?
Attention 主要负责不同 token 之间的信息通信。
FFN 对每个位置已经上下文化的 hidden representation 独立进行非线性特征计算。
text
Attention → 跨 token 通信
FFN → token 内部计算17. 为什么 FFN 需要非线性?
如果:
则可以写成:
多层线性变换仍然等价于一个线性变换。
加入 ReLU、GELU、SiLU 等非线性后,网络无法再整体合并成一个固定线性或仿射映射,从而获得更复杂的函数表达能力。
18. 为什么 Bias 不能代替非线性激活?
因为:
可以整理为:
仍然只是一个仿射变换。
真正产生非线性的是激活函数。
19. FFN 为什么通常先升维再降维?
典型 FFN:
先映射到更大的中间特征空间进行非线性特征加工,再投影回 residual stream 所需的
20. 一个 Pre-Norm Transformer Block 的完整数据流是什么?
首先对当前 hidden representation 归一化,再通过多个 Attention Head 完成跨 token 的信息路由与聚合;各 Head 的结果拼接后经
Quick Calculation Checks
A. Matrix Shape
若:
则:
B. Head Dimension
若:
经典 MHA 中:
C. Causal Visibility
对于 3 个 token 的 Decoder Self-Attention:
text
T1 → T1
T2 → T1, T2
T3 → T1, T2, T3Mistakes:
05_Mistakes/AI.md