本文收集并整理了 Transformer 面试中最常见、最核心的问题,覆盖基础概念、模块细节、注意力机制、位置编码、训练技巧、架构演进等多个维度,非常适合用于面试复习、深入理解和学习 Transformer 模型。
基础概念与架构理解
- Transformer 为什么要使用多头注意力机制?多头注意力带来了哪些优势?
- 为什么不使用单一头注意力?多个头之间的信息是如何互补的?
- 为什么 Q 和 K 要使用不同的权重矩阵?为什么不能进行自身点乘?
- Attention 中为什么使用 softmax 之前要先对 score 进行 scaled(除以√dk)?数学和数值稳定性角度如何理解?
- Attention 中的 padding mask 和 attention mask 各起什么作用?分别在 Encoder 和 Decoder 中何时使用?
Attention 与位置编码机制
- Attention 是如何计算的?选择加法 attention 还是点乘 attention 有什么区别?复杂度和效果分别如何?
- Transformer 中位置编码(Positional Encoding)有哪些方式?绝对和相对位置编码的区别是什么?
- 你了解哪些位置编码技术?请简要比较它们的优劣和应用场景。
- 为什么在获取到自注意力结果后仍要加上 embedding?Embedding size 的选择有何影响?
模块结构与实现细节
- Transformer 的 Encoder 和 Decoder 的结构分别是什么样的?有何异同?
- Encoder 和 Decoder 之间是如何交互的?Encoder 的输出如何影响 Decoder?
- Decoder 中的 self-attention 为什么需要使用 causal mask(或 sequence mask)?
- Transformer 中前馈神经网络(Feed Forward Layer)是怎么设计的?为什么使用两个线性变换和激活函数?
- 为什么使用 ReLU 或 GELU?这两种激活函数在训练中的实际表现如何?
- 残差连接(Residual)和 LayerNorm 的顺序为何是「Add → Norm」而不是「Norm → Add」?
正则化与训练策略
- Transformer 中为什么使用 LayerNorm 而不是 BatchNorm?两者适用场景有何不同?
- Dropout 在训练和测试时分别需要注意哪些问题?它是如何提升泛化能力的?
- Transformer 训练过程中常见的优化器有哪些?AdamW 与 Adam 有哪些区别?
实战与性能调优
- 大模型(如 GPT、BERT)中的 Transformer 和基础结构有何异同?是否完全一致?
- Transformer 模型在推理时如何进行屏蔽 score 的技巧?是否可以结合 beam search 等解码策略?
- 引用一个关于 BERT 的问题:BERT 的 mask 为什么不能用于 GPT-style 解码任务中?
- 你了解过一些改进版 Transformer 吗?如 Longformer、Performer、Reformer、Linformer 等,它们分别解决了哪些问题?