面试知识库
困难

Transformer架构#

一句话答案#

Transformer 基于自注意力机制(Q·K^T/√d→Softmax→V),Multi-Head Attention + FFN + 残差 + LayerNorm。

核心要点

核心组件:

  1. 自注意力:Q·K^T/√d → Softmax → ·V
  2. 多头注意力:多组 QKV 并行计算
  3. 前馈网络:两层全连接 + ReLU
  4. 残差连接 + LayerNorm

位置编码: 正弦/余弦函数(原始)/ 可学习位置编码 / RoPE(旋转位置编码)

面试回答(2分钟版)

Transformer是当前所有大语言模型的基础架构,核心创新是自注意力机制。具体来说,输入序列的每个token会生成Query、Key、Value三个向量,通过Q乘K的转置再除以根号d做缩放,经过Softmax得到注意力权重,最后加权求和Value,这样每个token都能直接关注到序列中任意位置的信息,解决了RNN长距离依赖的问题。多头注意力是把QKV分成多组并行计算,让模型从不同子空间捕获不同类型的关系。每个Transformer Block还包括前馈网络做非线性变换、残差连接防止梯度消失、LayerNorm稳定训练。位置编码方面,原始论文用正弦余弦函数,现在主流大模型多用RoPE旋转位置编码,能更好地建模相对位置关系。从工程角度看,自注意力的计算复杂度是O(n^2),这也是长文本推理的瓶颈所在,业界通过FlashAttention、KV Cache等技术来优化。理解Transformer架构对于做LLM应用调优、理解模型行为边界都很有帮助。

追问与易错

追问方向:

  • 自注意力的计算复杂度是多少?为什么是 O(n²)?有哪些优化方案? → QK^T 矩阵乘法是 n×n,所以 O(n²)。优化:FlashAttention(IO 感知)、稀疏注意力、滑动窗口注意力、线性注意力
  • 多头注意力的”多头”有什么好处?头数越多越好吗? → 不同头关注不同语义子空间(语法/语义/位置关系),相当于”多角度看问题”。头数受限于 hidden_dim,太多则每头维度太小效果反降
  • 位置编码为什么需要?RoPE 和 ALiBi 的区别? → 注意力机制本身不感知顺序,位置编码注入序列位置信息。RoPE 用旋转矩阵编码相对位置,ALiBi 用距离衰减偏置,ALiBi 外推性更好
  • Encoder-only / Decoder-only / Encoder-Decoder 各自适合什么任务? → Encoder-only(BERT):理解/分类/NER;Decoder-only(GPT):生成/对话;Encoder-Decoder(T5):翻译/摘要等 seq2seq 任务

易错点:

  • ❌ 说不清 Q/K/V 三个矩阵各自的作用 → Q 是查询,K 是被匹配的键,V 是实际取的值;注意力 = softmax(QK^T/√d) × V
  • ❌ 混淆三种架构 → BERT 是 Encoder-only(理解/分类),GPT 是 Decoder-only(生成),T5 是 Encoder-Decoder(翻译/摘要)
  • ❌ 不知道为什么除以 √d → 防止点积值过大导致 softmax 梯度消失