← 返回题库
前沿专题困难

长上下文的外推方案有哪些?

#位置编码外推#RoPE#注意力机制#上下文扩展

题目

大模型如何把上下文从训练时的几 K 扩展到几十 K 甚至上百 K?请列举主流外推方案。

参考答案

长上下文的核心难点是:模型在长度 LtrainL_{train} 上训练,推理时若超过该长度,位置编码与注意力分布会”出分布”,性能骤降。外推方案围绕位置编码注意力展开:

1. 位置编码层面

  • RoPE(旋转位置编码):现代大模型主流。直接外推效果差,需配合下列技巧:
    • 位置插值(PI, Position Interpolation):把推理位置 mm 缩放到训练范围内(m=mLtrain/Ltargetm' = m \cdot L_{train}/L_{target}),等价于”压缩”位置。简单有效,需少量微调。
    • NTK-Aware Scaling:调整 RoPE 的基频 θ\theta,使低频部分外推、高频部分插值,无需微调即有不错效果。
    • YaRN:在 NTK 基础上分段缩放,长外推效果更好,是当前主流方案之一。
  • ALiBi:在注意力分数上加线性位置偏置,天然支持外推,无需改位置编码。

2. 注意力层面

  • 稀疏注意力:不计算全部 token 对,降低 O(n2)O(n^2) 开销(如 Sliding Window、Local+Global)。
  • 滑动窗口注意力(SWA):Mistral 等采用,每层只看局部窗口,叠层实现长程感受野。
  • StreamingLLM:保留”注意力 sink”(开头的若干 token)+ 滑动窗口,实现近乎无限长度流式生成。

3. 上下文工程层面

  • 分块检索(RAG):不真扩上下文,而是检索相关块——成本最低。
  • 递归摘要:长文档先分段摘要再合并。

4. 显存层面

  • 长上下文的瓶颈是 KV Cache(随长度线性增长),需 GQA/MQA、KV 量化、PagedAttention 配合(见 KV Cache 题)。

面试加分点:能讲清”为什么 RoPE 直接外推不行”(高频旋转在训练外位置从未见过)→ 由此引出 PI/NTK/YaRN 的设计动机;并指出长上下文的”大海捞针”评测只是基础,真实瓶颈常在 KV Cache 显存与注意力稀释。

出处:开源仓库 wdndev/llm_interview_note、前沿面经。

内容来源

整理自开源仓库 wdndev/llm_interview_note 与前沿面经

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。