核心要点

  • 能写出 Attention(Q,K,V) = softmax(QK^T / √d_k) V

  • 理解 Q/K/V 含义及缩放因子作用

  • 知道多头注意力的作用与复杂度

简要回答

Self-Attention 将每个 token 投影为 Q/K/V,用 Q 与所有 K 点积得分数,缩放后 Softmax 得权重,再对 V 加权求和,得到融合全局上下文的新表示。

标准回答

计算步骤:给定输入序列 X,先线性投影得到 Q=XW_Q、K=XW_K、V=XW_V,再计算缩放点积注意力:

Attention(Q,K,V) = softmax(QK^T / √d_k) · V

直觉:每个 token 的 Query 与所有 Key 算相似度,Softmax 归一化为权重,对 Value 加权求和,得到融合全局上下文的新表示。

多头注意力(MHA):在 h 个独立子空间并行计算 Attention,拼接后再线性变换。不同 head 可学习语法、共指、位置等不同依赖关系。

缩放因子 √d_k:防止 d_k 较大时点积过大,Softmax 进入饱和区导致梯度消失

详见 Transformer 原理 与术语 注意力机制

常见误区

⚠️ 常见踩坑

只背概念不会举例;混淆相似术语;忽略工程落地约束。

追问

追问 1Self-Attention 的时间/空间复杂度是多少?

标准 Self-Attention 对序列长度 n 为 O(n²·d),显存与计算都随上下文平方增长。Flash Attention 通过分块计算降低显存;线性 Attention、稀疏 Attention 可降至近似 O(n)。

追问 2Causal Mask 在 Decoder 中的作用?

题库专题:为什么主流大模型多采用 Decoder-only 架构?

自回归解码器中,掩码阻止位置 i 注意到未来 token j>i,保证训练时不会「偷看」答案,与逐步生成时的信息可见性一致,避免标签泄漏。

题库延伸:与本追问相关的专题题 → 为什么主流大模型多采用 Decoder-only 架构?

追问 3Flash Attention 优化了什么?

题库专题:FlashAttention 如何在不改变数学结果的前提下加速注意力并节省显存?

通过分块计算避免物化完整 n×n 注意力矩阵,减少 HBM 读写,在相同数学结果下显著降显存、提速度。

题库延伸:与本追问相关的专题题 → FlashAttention 如何在不改变数学结果的前提下加速注意力并节省显存?

🔗 相似问题

同一考点的不同问法,换着练更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习