Transformer 核心机制与面试高频
本章聚焦 Transformer 四大核心机制:Attention、Self-Attention、Multi-Head 与 位置编码。面试中不仅考察原理推导,更关注为什么这样设计以及工程落地时的取舍。掌握 3 张问答卡片 + 1 个实战项目,即可覆盖 90% 高频考点。
1. 请解释 Scaled Dot-Product Attention 的计算过程
| 考察点 | 公式推导理解、缩放因子作用、Mask 机制 |
| 回答框架 | 公式 → 三步计算(相似度、归一化、加权求和)→ 缩放因子 → 可选 Mask |
| 示例回答 | Attention(Q,K,V)=softmax(QK^T/√d)V。Q与K点积得相似度,缩放后 softmax 归一化,再加权求和。√d 防止梯度消失,使 softmax 梯度平稳。 |
| 可能追问 | 为什么用点积而不是加性注意力?缩放因子为什么取 √d?Mask 怎么用? |
| 避坑提醒 | 不要只说“算相似度”而不提缩放因子;忘记解释 sqrt(d) 的来源会被质疑数学基础。 |
2. 为什么 Transformer 需要 Multi-Head Attention?
| 考察点 | 模型容量、注意力多样性、多头与单头的差异 |
| 回答框架 | 动机 → 分组投影 → 独立运行 → 拼接融合 → 实际收益 |
| 示例回答 | 单头注意力关注单一模式。多头将 Q/K/V 线性投影到 h 个子空间,并行计算注意力,拼接后再次投影。每个头捕捉不同语义子空间,提升模型表达能力。 |
| 可能追问 | 头数 h 如何选择?多头降维后参数总量?有没有理论分析多头的必要性? |
| 避坑提醒 | 避免只说“并行”而不提“不同表示空间”;不要忽略拼接后的线性层(Proj)。 |
3. 位置编码为什么是必要的?简述 Sinusoidal 位置编码
| 考察点 | 位置信息重要性、三角编码设计、相对位置直觉 |
| 回答框架 | Self-Attention 无位置感 → 编码方式 → 频率/偏移设置 → 相对位置表达 |
| 示例回答 | PE(pos,2i)=sin(pos/10000^{2i/d}),PE(pos,2i+1)=cos(...)。不同维度不同频率,使模型能通过线性变换表达相对位置,且无需训练,可外推至更长序列。 |
| 可能追问 | 可学习位置编码与三角编码对比?RoPE 与 ALIBI 改进思路?位置编码能否被替代? |
| 避坑提醒 | 不要只说“加位置向量”;必须解释相对位置的数学特性,否则面试官会追问 RoPE。 |
📌 项目案例:长文本摘要生成系统(基于 BERT+)
业务背景
电商评论自动摘要,每日新增 50 万条评论,需实时生成 2~3 句摘要。
规模指标
日处理 50 万条,摘要长度 < 100 字,ROUGE-L 0.38,模型参数量 350M
技术栈
Pytorch + Transformers + BART + TensorRT + ONNX
核心难点
- 长文本 > 512 截断导致摘要缺失关键信息
- 摘要控重词与事实一致性(Hallucination)
- 推理延迟要求 < 200ms / 条
面试高频追问
- 如何解决位置编码外推问题?
- Multi-Head 注意力头裁剪对效果影响?
- 长文本分段后 Self-Attention 如何拼接?
💡 可迁移回答话术
“面对长文本位置编码外推问题,我们在 BART 基础上引入 ALIBI 相对位置偏置,零额外参数使推理长度从 512 扩展到 2048,ROUGE-L 提升 1.2 个点。同时,我们对 Multi-Head 进行重要性分析,裁剪掉 30% 低贡献头,推理速度提升 40% 而效果仅下降 0.3。”