跳转至

四:位置编码与 RoPE自测题

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247483778&idx=1&sn=e2c5f4f20682c61638b76899f8652075&chksm=f01eb2fbc7693bede7e98795181cba3490a4e0c010d7ea55b205f8a9fe7f9376968423bc045b#rd

覆盖范围

  • Transformer 为什么需要位置编码

  • 绝对位置编码、相对位置编码、sinusoidal encoding

  • RoPE 的二维旋转直觉和高维实现

  • RoPE 如何让 attention score 依赖相对位置

  • RoPE 在 Q/K 上的位置、shape、实现和 KV cache 细节

  • RoPE 与 learned absolute PE、relative PE、ALiBi 的对比

  • 长上下文外推、RoPE scaling、常见工程错误

``

一、位置编码基础

  • Transformer 为什么需要位置编码?

  • 如果 self-attention 中完全不加入位置信息,会出现什么问题?

  • 请解释 permutation equivariant 在 self-attention 里的含义。

  • “我爱你”和“你爱我”为什么能说明位置编码的重要性?

  • 位置编码提供的是绝对顺序信息、相对距离信息,还是二者都可能提供?

  • 位置编码通常会影响 Transformer 的哪些计算环节?

  • 位置编码和 attention mask 是同一类东西吗?它们有什么区别?

  • 位置编码和 tokenizer 的 position id 有什么关系?

二、绝对位置编码与 Sinusoidal

  • 什么是绝对位置编码?它通常如何加入模型输入?

  • learned absolute position embedding 的优点和缺点是什么?

  • 原始 Transformer 的 sinusoidal position encoding 公式是什么?

  • sinusoidal encoding 中不同频率有什么作用?

  • 为什么 sinusoidal encoding 比 learned absolute embedding 更有长度外推潜力?

  • sinusoidal encoding 是否直接建模相对距离?为什么说它仍然是绝对位置编码?

  • 把 position embedding 加到 token embedding 后,shape 是否变化?语义上发生了什么?

  • 绝对位置编码为什么在超出训练最大长度时可能失效?

三、相对位置编码

  • 什么是相对位置编码?

  • 相对位置编码为什么更贴近 attention 的建模需求?

  • 请写出一种给 attention score 加 relative position bias 的形式。

  • Shaw et al. 这类相对位置表示的大致思想是什么?

  • T5 类 relative position bias 和把位置向量加到 embedding 有什么差异?

  • 相对位置编码相比绝对位置编码有哪些优势?

  • 相对位置编码可能带来哪些实现成本或复杂度?

四、RoPE 核心思想

  • RoPE 的全称是什么?它主要解决什么问题?

  • RoPE 和普通绝对位置 embedding 的核心区别是什么?

  • RoPE 通常作用在 Q、K、V 的哪些张量上?

  • RoPE 为什么一般不作用在 V 上?

  • RoPE 的一句话核心思想是什么?

  • RoPE 为什么可以被理解为“用绝对位置方式实现相对位置效果”?

  • RoPE 在 attention 计算流程中的位置在哪里?

五、RoPE 数学推导

  • 请写出二维旋转矩阵 R_m 的形式。

  • 对二维向量 [x0, x1],写出旋转后的两个分量。

  • 旋转矩阵为什么不改变向量模长?

  • 高维 RoPE 为什么要把 head_dim 两两分组?

  • RoPE 中常见的频率 theta_i = base^(-2i/d) 表示什么?

  • 请写出 RoPE 的核心恒等式 (R_m q)^T (R_n k) 如何变成只依赖 n-m

  • 为什么 R_m^T R_n = R_{n-m}

  • RoPE 如何让 attention score 感知相对距离?

  • RoPE 中 m-nn-m 的符号差异重要吗?工程上如何保持一致?

  • RoPE 与复数乘法、欧拉公式有什么关系?

六、RoPE 工程实现

  • 实际实现中为什么不显式构造完整旋转矩阵?

  • rotate_half(x) 通常做什么?

  • 请写出 x_rot = x * cos + rotate_half(x) * sin 的含义。

  • 给定 q, k: [B, H, T, D],RoPE 中 cos/sin 常见可广播 shape 是什么?

  • RoPE 为什么要求 head dimension 为偶数,或者只旋转偶数维?

  • interleaved pair 和 half-split pair 两种实现有什么需要注意的地方?

  • RoPE 应该在 multi-head attention 的哪一步应用?

  • 为什么 Q 和 K 的 position ids 必须一致地反映真实 token 位置?

  • 推理使用 KV cache 时,RoPE 的 position id 应如何处理?

  • left padding 场景下 RoPE position id 可能出现什么问题?

  • cos/sin cache 的作用是什么?长度不够会怎样?

  • 请写出一个最小 RoPE apply 的 PyTorch 风格伪代码。

七、对比与长上下文

  • RoPE 和 sinusoidal absolute PE 有什么相似点和差异?

  • RoPE 和 learned absolute position embedding 相比有什么优势?

  • RoPE 和传统 relative position bias 相比有什么优势和局限?

  • RoPE 和 ALiBi 的核心区别是什么?

  • ALiBi 是如何注入位置信息的?

  • 为什么 RoPE 对长度外推有一定帮助?

  • 为什么 RoPE 不能保证无限长上下文都稳定?

  • RoPE scaling、NTK-aware scaling、YaRN 等方法大致想解决什么问题?

  • 现代 decoder-only LLM 为什么常用 RoPE?

八、工程排错与面试追问

  • 如果只对 Q 做 RoPE、不对 K 做 RoPE,会有什么问题?

  • 如果错误地对 V 做 RoPE,可能有什么影响?

  • 如果 KV cache 推理和不使用 cache 的结果明显不一致,RoPE 相关原因有哪些?

  • 如果扩展上下文长度后模型困惑度明显变差,RoPE 相关原因有哪些?

  • 如果不同框架迁移模型后效果异常,RoPE 配置需要检查哪些字段?

  • RoPE 的 base、rotary_dim、rope_scaling 为什么不能随意改?

  • 请总结 RoPE 的优点、局限和常见 bug。

  • 面试官让你 30 秒解释 RoPE,你会怎么说?

  • 请总结今天从位置编码到 RoPE 的完整知识链路。

            预览时标签不可点
    
    修改于
    

    <div class="