LLM面试题: Transformer
Q:请详细解释一下 Transformer 模型中的自注意力机制是如何工作的?它为什么比 RNN 更适合处理长序列?
难度:⭐⭐
公司:字节、阿里、腾讯(高频)
算法岗回答要点:
-
自注意力机制原理
- 输入序列通过三个线性变换得到 Q(Query)、K(Key)、V(Value)
- 计算注意力分数:scores = QK^T / √d_k
- Softmax 归一化得到注意力权重
- 加权求和:output = softmax(scores) · V
-
数学推导
Attention(Q,K,V) = softmax(QK^T/√d_k)V- 为什么除以√d_k?防止点积过大导致梯度消失
- Multi-Head 机制:并行计算多个注意力头,捕获不同子空间的特征
-
vs RNN 的优势
- 并行计算:RNN 必须顺序计算,Transformer 可以并行处理整个序列
- 长距离依赖:RNN 存在梯度消失/爆炸,Transformer 通过直接注意力机制解决
- 计算复杂度:序列长度 n,RNN 为 O(n),Self-Attention 为 O(n²)但可并行
开发岗回答要点:
-
理解注意力机制的作用
- 模型能自动关注序列中重要的部分
- 类似于"加权平均",权重由模型学习得到
-
工程实现要点
- 使用成熟框架(PyTorch/TensorFlow)内置的 Attention 层
- 注意 Attention Mask 的使用(Padding mask、Causal mask)
- 推理时可以使用 KV Cache 加速
-
优化技巧
- Flash Attention:减少显存占用,加速计算
- Multi-Query Attention(MQA):共享 K/V,降低显存
延伸问题:
- Multi-Head Attention 的作用是什么?
- 答:类似CNN的多通道,不同head关注不同特征子空间
- Self-Attention vs Cross-Attention 的区别?
- 答:Self-Attention 的 Q/K/V 来自同一序列;Cross-Attention 的 Q 来自一个序列,K/V 来自另一个序列(如 Encoder-Decoder)
面试技巧:
- 开场先说核心公式,展示理论功底
- 画图说明计算流程(Q/K/V 矩阵乘法)
- 主动提及优化技术(Flash Attention)加分
查看10道真题和解析