| 1 | RoPE | 旋转位置编码,绝对+相对统一 |
| 2 | 长上下文挑战 | O(N²)复杂度、KV cache显存 |
| 3 | Ring Attention | 分布式长上下文计算 |
| 4 | Lost in the Middle | U形注意力现象 |
| 5 | 位置编码外推 | PI、YaRN等扩展方法 |
答:通过对Q和K做旋转变量来编码位置,使attention score天然只依赖相对距离(内积只与m-n相关)。优势:同时编码绝对和相对位置(统一两种路线);实现简单(只改Q/K,不改V);兼容线性Attention;是LLaMA等主流LLM的标配。
想听:旋转编码 + 相对距离性质 + 主流标配
答:两个核心挑战:1)计算复杂度O(N²)——100K tokens的attention矩阵需要100亿次计算;2)KV cache显存——推理时要存储所有历史token的K/V,100K tokens×40层×32头×128维≈几十GB。训练时还需要存N×N的中间激活。
想听:O(N²)计算 + KV cache显存,不只是"太长了"
答:把长序列按设备切分,每个设备只存一段KV block。计算时KV block在设备间环形传递,每个设备依次与其他设备的block计算attention。关键是计算与通信重叠(通信被计算覆盖),使上下文容量随设备数近似线性增长。
想听:序列切分 + KV环传 + 计算通信重叠
答:发现模型对长上下文的使用呈U形:开头和结尾的信息记得住,中间的信息容易丢失。影响:RAG中检索到的文档重排很重要,关键信息应该放在开头或结尾;中间位置的文档可能被"忽略"。
想听:U形注意力 + 对RAG重排的启示
答:模型训练时用固定长度(如4K),推理时需要处理更长序列(如32K),这叫外推。RoPE虽然能定义任意位置,但超出训练长度后性能会急剧下降(位置编码频率与训练分布不匹配)。PI(位置插值)和YaRN是常用的扩展方法。
想听:训练长度 vs 推理长度的gap
| 追问 | 应对要点 |
|---|---|
| "RoPE的旋转是在哪个维度上?" | 将Q/K的偶数维两两配对组成二维平面,每个平面以不同频率旋转。d维向量有d/2个旋转平面。 |
| "Ring Attention会改变Attention结果吗?" | 不会。它是精确计算,只是把序列分到多设备上,通过环形传递保证每个设备都能"看到"所有token。数学结果与单机一致。 |
| "YaRN和PI有什么区别?" | PI是简单的线性插值(把位置缩放到训练范围内),YaRN是NTK-aware插值(考虑不同频率分量的不同衰减),效果更好。 |
| "Lost in the Middle的U形现象有解释吗?" | 论文没有给出完整解释,但推测与位置编码的偏差有关。开头/结尾信息在训练中出现频率更高,模型学到了更强的注意力模式。 |
| "为什么不用稀疏Attention来加速?" | 稀疏Attention牺牲了全局依赖建模能力,对某些任务有损失。FlashAttention是精确计算,不牺牲质量。实际中两者可以结合(如LongLoRA的S²-Attn)。 |
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 训练时扩展 | RoPE + PI | 简单有效,兼容性好 |
| 推理时扩展 | YaRN | NTK-aware,效果更好 |
| 超长序列(100K+) | Ring Attention | 分布式,容量随设备线性增长 |
| 成本敏感 | LongLoRA | S²-Attn训练省算力,推理保持全注意力 |
| 论文 | 面试关键词 | 关联考点 |
|---|---|---|
| RoFormer/RoPE | 旋转位置编码 | 相对距离、主流标配 |
| Ring Attention | 分布式长上下文 | KV环传、计算通信重叠 |
| LongLoRA | S²-Attn | 训练省算力、推理全注意力 |
| YaRN | NTK-aware插值 | 位置编码扩展 |
| Lost in the Middle | U形注意力 | RAG重排启示 |