第 03 章 · 大模型算法岗
Transformer 与注意力
从缩放点积注意力走到 RoPE、GQA、Mask、长上下文与复杂度,回答 Transformer 最核心的追问。
Self-Attention 的完整计算过程是什么?
30 秒口述版
输入分别线性投影为 Q、K、V,计算缩放点积、加 mask、softmax 得到权重,再对 V 加权求和并做输出投影。
原理与推导
Q 表示当前查询,K 决定匹配,V 提供被汇聚内容;多头只是并行使用不同投影子空间。
公式、代码或工程案例
写出 Attention(Q,K,V)=softmax(QKᵀ/√dₖ)V,并逐项说明张量形状。
高频追问
- 为什么 K 和 V 可以缓存而 Q 不缓存?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把注意力权重直接等同于可靠的因果解释。
权威来源
Attention 为什么除以根号 d_k?
30 秒口述版
QK 点积方差会随维度 d_k 增大,除以 √d_k 可把尺度拉回稳定区,避免 softmax 过早饱和。
原理与推导
若 Q、K 分量独立且单位方差,点积方差约为 d_k;缩放后方差约为 1。
公式、代码或工程案例
从随机变量方差推导缩放项,并联系 softmax 梯度。
高频追问
- 能否学习一个温度参数?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要说它只是“防止数值太大”,关键是控制分布方差与梯度。
权威来源
多头注意力相比单头有什么作用?
30 秒口述版
多头允许模型在不同表示子空间并行学习位置、语义和句法等关系,再拼接融合。
原理与推导
固定 d_model 时增加头数不会按头数倍增主投影参数,但会减小每头维度并改变内核效率。
公式、代码或工程案例
比较 h 个 d_head=d_model/h 的头与一个大头的表达约束。
高频追问
- 注意力头越多越好吗?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要宣称每个头都有稳定、可解释的固定功能。
权威来源
Causal Mask 与 Padding Mask 有何区别?
30 秒口述版
Causal mask 阻止当前位置看到未来 token,padding mask 排除无效填充;两者作用原因不同但可合并到 attention logits。
原理与推导
训练时错误 mask 会泄漏答案或让有效 token 被遮蔽;现代内核常使用布尔 mask 或结构化 causal 参数。
公式、代码或工程案例
画出 4×4 下三角可见矩阵,并说明 batch padding 如何广播。
高频追问
- 推理单 token 解码还需要显式 causal mask 吗?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把 mask 加在 softmax 之后,那无法正确归一化。
权威来源
Self-Attention 与 Cross-Attention 有何区别?
30 秒口述版
Self-attention 的 Q/K/V 来自同一序列;cross-attention 的 Q 来自当前序列,K/V 来自另一编码序列或模态。
原理与推导
前者建模内部依赖,后者实现条件信息对齐;decoder-only 模型也可通过拼接上下文只用 self-attention。
公式、代码或工程案例
以 encoder-decoder 翻译和视觉语言模型说明 K/V 来源。
高频追问
- 为什么 decoder-only 也能做条件生成?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把 causal 与 cross-attention 混为同一维度的分类。
权威来源
Transformer 的时间和空间复杂度怎样分析?
30 秒口述版
标准注意力核心 QKᵀ 对序列长度 n 是 O(n²d),注意力矩阵空间 O(n²);线性投影和 FFN 通常是 O(nd²)。
原理与推导
短序列大隐藏维时 FFN/投影可能主导 FLOPs,长序列时二次注意力与 KV cache 更突出。
公式、代码或工程案例
分别代入 n、d、层数 L、batch B 说明训练和解码成本。
高频追问
- 为什么 FlashAttention 不改变理论 FLOPs 却更快?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要只写 O(n²) 而忽略 d、层数和训练/推理差异。
权威来源
RoPE 的核心原理是什么?
30 秒口述版
RoPE 按位置对 Q、K 的二维通道对施加旋转,使点积自然依赖相对位置差,同时保留绝对位置信息的相位。
原理与推导
旋转矩阵满足 ,因此注意力分数可表达相对距离;它应作用于 Q、K 而不是 V。
公式、代码或工程案例
用二维旋转矩阵解释位置 m 与 n 的点积只依赖 n-m。
高频追问
- RoPE 为什么有外推困难?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要说 RoPE 直接给 token embedding 加一个位置向量。
权威来源
绝对位置编码、ALiBi 与 RoPE 如何比较?
30 秒口述版
绝对编码把位置加入表示;ALiBi 给注意力分数加入随距离变化的线性偏置;RoPE 旋转 Q/K。
原理与推导
三者在参数量、相对关系表达、外推行为和内核兼容性上不同,没有脱离训练配方的绝对优胜者。
公式、代码或工程案例
从“加到 hidden state、logits 或 Q/K”三个位置对比。
高频追问
- 长上下文扩展时为什么不能只改 max length?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把训练长度外表现好等同于真正理解长上下文。
权威来源
MQA、GQA 与 MHA 的区别是什么?
30 秒口述版
MHA 每个查询头有独立 K/V 头;MQA 所有查询头共享一组 K/V;GQA 让若干查询头共享一组 K/V。
原理与推导
共享减少 KV cache 和内存带宽,GQA 通常在质量与吞吐之间取得折中。
公式、代码或工程案例
KV cache 规模近似与 KV 头数成正比,比较 h_q、h_kv 的比例。
高频追问
- 从 MHA 转 GQA 能否直接平均 K/V 权重?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要说 GQA 会等比例减少所有计算,Q 与输出投影仍在。
权威来源
FFN 为什么先升维再降维?
30 秒口述版
FFN 在每个 token 位置独立执行非线性通道混合,升维提供更大的特征容量,降维回到残差主干维度。
原理与推导
注意力负责 token 间通信,FFN 负责通道内变换;SwiGLU 等门控结构会改变中间维与参数预算。
公式、代码或工程案例
比较 ReLU/GELU FFN 与 SwiGLU 的矩阵数量和参数量。
高频追问
- 为什么现代模型中 FFN 参数常多于 Attention?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把 FFN 说成跨 token 操作。
权威来源
Pre-LN 与 Post-LN 有什么训练差异?
30 秒口述版
Pre-LN 在子层前归一化,残差主路更直接,深层训练通常更稳定;Post-LN 在残差相加后归一化,对初始化和 warmup 更敏感。
原理与推导
两者改变梯度路径和层间表示尺度;稳定性与最终效果需结合具体架构判断。
公式、代码或工程案例
写出 x+F(LN(x)) 与 LN(x+F(x)) 两个式子。
高频追问
- DeepNorm、Sandwich Norm 解决什么问题?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把 Pre-LN 说成一定更高上限。
权威来源
KV Cache 的原理是什么?
30 秒口述版
自回归解码时历史 token 的 K/V 不会变化,因此缓存每层 K/V,只为新 token 计算 Q/K/V,避免重复前缀计算。
原理与推导
它把每步注意力从重复计算历史投影变为读取缓存,但缓存随层数、序列、batch 和 KV 头增长。
公式、代码或工程案例
给出 cache≈2×L×tokens×h_kv×d_head×bytes 的估算式。
高频追问
- 为什么 prompt prefill 仍能并行?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要说 KV cache 消除了注意力的全部线性增长。
权威来源
训练阶段和自回归推理的 Attention 有何不同?
30 秒口述版
训练用 teacher forcing 一次并行处理所有位置并应用 causal mask;推理逐 token 生成,通过 KV cache 复用历史。
原理与推导
prefill 更偏计算密集,decode 常受内存带宽和并发调度限制,优化目标并不相同。
公式、代码或工程案例
分别分析 TTFT 与 TPOT 受哪些阶段影响。
高频追问
- 连续批处理为何能提高吞吐?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要用训练 FLOPs 直接推断在线解码延迟。
权威来源
局部、滑动窗口与块稀疏注意力解决什么?
30 秒口述版
它们限制每个 token 可见范围或连接模式,把长序列的二次成本降为近线性或稀疏成本。
原理与推导
代价是远距离信息可能无法直接交互,需要全局 token、跨层传播或混合全局层补足。
公式、代码或工程案例
若窗口 w 固定,局部注意力约为 O(nwd)。
高频追问
- 怎样选择窗口大小?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把稀疏连接误说成所有任务上都无损。
权威来源
长上下文“支持 128K”应该怎样验证?
30 秒口述版
不仅要能输入 128K,还要评估检索、跨段推理、位置鲁棒性、首尾偏置、延迟和显存。
原理与推导
needle 测试只能验证简单定位,应增加多针、干扰、组合推理及真实长文任务。
公式、代码或工程案例
报告不同位置、长度与干扰强度下的准确率曲线。
高频追问
- Lost in the Middle 说明了什么?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要把不报错当成有效上下文能力。
权威来源
Attention 是否等于模型的解释?
30 秒口述版
注意力权重展示模型在一次前向中的信息混合比例,但并不自动构成因果解释或特征重要性证明。
原理与推导
不同参数可产生相近输出却有不同注意力分布,残差和 FFN 也参与决策。
公式、代码或工程案例
结合消融、梯度归因和反事实测试交叉验证。
高频追问
- 怎样验证某个头是否真正必要?
- 这个结论在规模、数据或硬件条件变化时,边界会怎样改变?
易错点
不要用一张热力图直接下业务或安全结论。
