知识库 / 模型架构
GitHub
← 模型架构

LAYER 04 / MODEL ARCHITECTURE

长上下文

所属: 模型资产层(能力约束视角)。本页边界: 模型“能利用多长的上下文”由哪些条件共同决定,以及这一能力在训练、推理和检索之间的取舍。

#核心公式

Cattn=O(n2d),MKV=O(nLdkv) C_{\mathrm{attn}}=O(n^2d),\qquad M_{\mathrm{KV}}=O(nLd_{kv})

#符号说明

符号 含义 单位/条件
nn 当前上下文或输入序列长度 token 数
dd 模型隐藏维度 个元素
LL Transformer 层数 正整数
dkvd_{kv} 每层全部 KV 头合计的特征维度 个元素
CattnC_{\mathrm{attn}} 全注意力主要矩阵运算的计算复杂度 FLOPs 量级
MKVM_{\mathrm{KV}} 自回归推理时 KV Cache 的空间复杂度 元素量级
ww 滑动窗口注意力的窗口宽度 token 数
B,Hkv,dh,bB,H_{\mathrm{kv}},d_h,b 并发、KV 头数、头维度、每元素字节数 依上下文
D∗D^* 回答当前问题真正需要的证据子集 文档/片段集合
SS 声明窗口长度 token 数
SeffS_{\mathrm{eff}} 有效窗口长度 token 数
A(n,p,k,d)A(n,p,k,d) 任务变量依次为长度、证据位置、证据数和干扰强度:n, p, k, dn,\ p,\ k,\ d [0,1][0,1]
θ\theta 有效长度的保持阈值(如 85%) [0,1][0,1]

O(⋅)O(\cdot) 只表示随长度增长的量级,不包含 batch、头数、数据类型、常数和硬件效率。

#技术要点

  • 长上下文能力由四个相互约束的条件共同决定:位置编码的外推质量、注意力模式允许的实际访问范围、训练数据覆盖的有效利用长度、推理系统的 KV 管理效率。任何一个环节断裂,声明的窗口长度都无法转化为可用能力。
  • 声明窗口 SS 与有效窗口 SeffS_{\mathrm{eff}} 之间的差距不是实现细节,而是能力评估的核心对象。NoLiMa 基准定义有效长度为“模型维持至少 85% 短上下文基线分数的最长上下文”。
  • 位置编码的外推能力存在结构性上限:RoPE 及所有双线性正交位置编码在相对距离上计算有限傅里叶级数,Gibbs 现象从表示层面限制了外推质量。
  • 滑动窗口注意力的性能崩溃源于两个因素,可通过 sink token 保留和窗口适配策略缓解。
  • 长上下文训练需要多阶段长度课程,且长数据的质量比长度本身更关键。
  • 长上下文与 RAG 不是替代关系;LaRA 基准的分析表明最优选择取决于模型能力、上下文长度、任务类型和检索特性的复杂交互。
  • 位置偏差在多个证据片段之间存在时表现为“间距偏差”,比单点“lost in the middle”更难通过简单的位置调整缓解。

#原理与演进

#四个约束共同定义“有效上下文”

“能输入 1M token”是一个接口声明,它至少需要四个条件同时成立才能转化为可用的长上下文能力:

位置编码可表示。 位置编码必须为远距位置提供有区分度的表示。RoPE 在训练长度之外旋转相位,虽然数学上仍有定义,但模型从未在这些相位上学习过注意力分配。位置插值将新位置映射回已学尺度,代价是近距离分辨率被压缩。

注意力可访问。 即使位置编码可表示,注意力模式必须允许当前 token 实际读取到远距位置。全注意力的 O(n2)O(n^2) 代价在长上下文下不可接受;滑动窗口将代价降至 O(nw)O(nw),但窗口外的信息无法被直接访问,跨层多跳传播也不保证远距证据的语义保真度。

训练数据覆盖。 模型必须在训练中见过长距离依赖的样本,才能学会利用远距证据。如果训练数据的长度分布集中在短文本,模型即使推理时输入长序列,也会倾向于忽略远距 token。这就是为什么长上下文扩展需要专门的训练课程。

推理系统可管理。 KV Cache 随长度线性增长,精确全注意力的 prefill 计算量随长度二次增长。服务端的显存、带宽和调度策略决定了“可高并发服务的长度”远小于“理论窗口”。

这四个条件构成一条不可跳跃的链:位置编码决定上限,注意力模式决定可达范围,训练数据决定实际利用能力,推理系统决定部署可行性。评估长上下文时若只报告其中一个环节的指标,就会高估真实能力。

#1. 有效窗口的量化定义

设模型声明窗口为 SS,在长度 nn 的任务上的准确率为 A(n)A(n),短上下文基线为下式(n0≪Sn_0 \ll S)。有效窗口 Seff(θ)S_{\mathrm{eff}}(\theta) 定义为:

A0=A(n0) A_0=A(n_0) Seff(θ)=max⁡{n:A(n)A0≥θ} S_{\mathrm{eff}}(\theta)=\max\left\{n:\frac{A(n)}{A_0}\geq\theta\right\}

θ\theta 是保持阈值。NoLiMa 基准取下式。以 Llama 3.3 70B 为例,声明长度 128K,但有效长度仅为 2K——在 2K 以上的所有测试长度上,准确率都无法维持短上下文基线的 85%。GPT-4o 的有效长度为 8K,也远低于其 128K 的声明窗口。

θ=0.85 \theta=0.85

ATLAS 基准进一步将有效长度评估从单点指标扩展为长度感知的 AUC 评分:在固定的 8K–1M 网格上对得分–长度曲线积分,报告完整的性能退化剖面而非单一数值。这一方法揭示了单点评估会掩盖的两个失败模式:性能随长度增长急剧崩溃,以及检索式探针上的成功无法迁移到下游应用。

#2. 位置编码的外推边界

#2.1 RoPE 的 Fourier 障碍

RoPE 对 Query 和 Key 施加位置相关的旋转。在相对距离 m−nm-n 上,RoPE 的注意力分数展开为有限傅里叶级数。这一表示约束意味着:当训练中从未出现的远距相位组合被测试时,模型的注意力分配缺乏可泛化的结构基础。Gibbs 现象在相位不连续处引入振荡,使外推质量在训练长度之外迅速退化。

#2.2 位置插值与频率缩放

简单位置插值将新位置 mm 映射到 mL0/L1m L_0/L_1(L0L_0 为训练长度,L1L_1 为扩展长度)。这避免了进入完全未见的相位范围,但压缩了相邻 token 的位置差,近距离分辨率下降。NTK-aware 缩放通过调整 RoPE 的频率基来平衡近距与远距的表示精度。PEPE(Periodic Extrapolation Positional Encodings)采取了不同思路:不插值或缩放已有维度,而是周期性地复制预训练的高维位置编码分量,从而既不改变已学的位置编码空间,也不引入新的位置编码分布。实验表明 PEPE 仅需最先进方法四分之一的微调步数即可达到相当的长上下文扩展效果。

#3. 注意力模式的访问范围

#3.1 滑动窗口的性能崩溃与修复

滑动窗口注意力将每个 token 的可见范围限制在最近 ww 个位置,代价降至 O(nw)O(nw)。但其朴素实现面临灾难性的长上下文性能崩溃,根源是窗口外的信息完全不可访问,且窗口边界处的注意力分布出现不连续。缓解策略包括:

  • Sink token 保留:StreamingLLM 等工作表明,保留序列最前面的若干 token(attention sink)与最近的 ww 个 token 一起,足以维持稳定的注意力分布。
  • 动态窗口适配:SWAA 等方法根据内容动态调整窗口边界,减少固定窗口在语义边界处的截断损失。
  • 全局 token 注入:在滑动窗口之外额外保留少量可被所有位置访问的全局 token,为跨窗口信息传递提供通路。

#3.2 动态稀疏注意力

静态稀疏模式(固定滑动窗口、固定全局 token)无法适应注意力分布的内容依赖性变化。Dynamic Hierarchical Sparse Attention(DHSA)在线预测注意力稀疏模式,不重新训练即可适应不同输入类型的注意力分布。All-or-Here Attention(AHA)为每个注意力头配备二值路由单元,动态切换全局注意力和局部滑动窗口。实验表明,多达 93% 的原始全局注意力操作可被滑动窗口替代而不造成性能损失。

#4. 长上下文训练:长度课程与数据质量

#4.1 多阶段长度课程

长上下文扩展不能一步到位。HyperCLOVA X 32B 采用三阶段课程:4K → 8K → 32K,每个阶段使用对应长度的长文本文档(学术论文、源代码)进行继续预训练。QwenLong-L1 的 Curriculum-Guided RL 将训练分为多个阶段,从 20K 逐步过渡到 60K+,每阶段只使用对应长度的数据,避免一次性大跨度优化导致的训练不稳定。

#4.2 长数据质量比长度更重要

“How to Train Long-Context Language Models (Effectively)”的工作确立了可靠的长上下文训练评估协议,核心发现是:长数据的质量(信息密度、远距依赖的真实性)比长度本身更决定最终的有效上下文能力。合成拼接的“假长文本”——将短文档简单拼接而不引入真实的跨段依赖——无法训练出有效的远距利用能力。

#5. 长上下文与 RAG 的判据

#5.1 LaRA 基准的结论

LaRA 基准对 11 个模型的系统评估表明,长上下文与 RAG 的最优选择取决于四个因素的复杂交互:模型能力、上下文长度、任务类型和检索特性。没有“银弹”式的最优策略——长上下文和 RAG 都不是通用解决方案。

具体判据:

  • 自包含信息(叙事、故事、单篇长文中的多处证据):长上下文通常更优,因为它保留了原始上下文顺序和完整段落。
  • 碎片化信息(从大规模文档库中抽取少量相关片段):RAG 在延迟和成本上显著更优。Modular RAG 在 142 页文档上的准确率可能降至 4.1/10,但延迟仅 4.2 秒、成本仅 $0.0012。
  • 对话式和通用问答:RAG 具有优势,因为检索可以动态适应查询的变化。
  • 信息频繁更新或需要来源追溯:RAG 能保留文档引用和权限边界,长上下文无法做到。

#5.2 混合路线

实际部署中,长上下文和 RAG 常组合使用:先用检索缩小候选范围,再将检索到的长段落送入长上下文窗口进行精读和跨段推理。SagaScale 基准的评估显示,直接提供完整上下文的长上下文方法可以大幅超越 Naïve RAG,而 Agentic RAG 通过多步检索有效解决了 Naïve RAG 的检索瓶颈。三者的关系是:长上下文定义可读范围,检索决定送入哪些信息,引用与验证决定回答是否受证据支持。

#6. 位置偏差的复杂形态

#6.1 从单点“lost in the middle”到多证据间距偏差

原始的“lost in the middle”现象描述的是单个证据片段位于上下文中间时被忽略。LongPiBench 的发现更细致:当存在多个相关证据片段时,模型表现出与证据间距相关的偏差,而不仅仅是与单个位置相关的偏差。即使大多数当前模型对单点“lost in the middle”的鲁棒性有所改善,多证据之间的间距仍然系统性地影响准确率。

#6.2 偏差与上下文占用率的关系

“Positional Biases Shift as Inputs Approach Context Window Limits”的工作揭示了偏差随上下文占用率变化的规律:当输入占据模型上下文窗口的 50% 以内时,“lost in the middle”效应最强;超过 50% 后,首因偏差减弱,而近因偏差保持相对稳定。这一发现说明位置偏差不是固定的模型属性,而是随输入在窗口中的相对位置动态变化的。

#7. 资源下界与部署取舍

对 LL 层、HkvH_{\mathrm{kv}} 个 KV 头、头维 dhd_h、每元素 bb 字节、并发 BB、长度 nn,KV 近似:

MKV=2BLnHkvdhb M_{\mathrm{KV}}=2BLnH_{\mathrm{kv}}d_hb

窗口翻倍时 KV 线性翻倍,而精确全注意力的 prefill 计算量近似四倍。工程缓解手段包括分页 KV、GQA、上下文并行和 KV 量化,但它们不消除模型是否读懂长证据的能力问题。服务可用长度是在时延、显存和成本约束内可提供的长度,应作为独立指标与有效上下文能力分开报告。

#8. 评测矩阵

用长度 nn、证据位置 pp、证据数 kk、干扰强度 dd 四轴分层,报告 A(n,p,k,d)A(n,p,k,d)。单轴只测 A(n)A(n) 会隐藏“中间失败”和多证据间距偏差。同时报告 TTFT、峰值 KV 和成本。有效长度应是满足质量和资源阈值的区域,而非一个孤立数字。

ATLAS 的评估框架提供了方法论参考:将长上下文能力分为基础操作层(检索、追踪、聚合)和应用工作负载层(上下文学习、代码理解、跨文档分析),两层之间的跨模型方差仅共享 61%,说明检索能力不能自动迁移到应用能力。

原始资料: Lost in the Middle;FlashAttention;RULER;HELMET。

#原始资料

本页由仓库中的 Markdown 生成。具体技术结论请结合正文引用与实验条件理解。

输入关键词,探索整个知识库

↑ ↓ 选择 ↵ 打开36 篇笔记,一次搜索