SIGNALFEED · 论文精读日报文章库论文库

COLM 2024 · 2024

RULER:长上下文模型的真实有效上下文有多大

RULER: What's the Real Context Size of Your Long-Context Language Models?

Cheng-Ping Hsieh · Simeng Sun · Samuel Kriman · Shantanu Acharya · Dima Rekesh · Fei Jia · Yang Zhang · Boris Ginsburg

NVIDIA

arXiv:2404.06654v3DOI 10.48550/arXiv.2404.06654首次提交 2024-04-09精读版本 2024-08-06入库 2026-07-22

论文许可 CC BY 4.0 · 代码许可 Apache-2.0。本文为中文重述与 AI 分析,不代表原作者背书。

#长上下文#模型评测#基准测试#合成数据
实验模型
Gemini-1.5-Pro · GPT-4-1106-preview · Llama 3.1 70B/8B · Qwen2-72B-Instruct · Command R+ · GLM-4-9B-Chat-1M · Yi-34B-200K · Mixtral-8x22B-Instruct · Phi-3 Medium-128K · Mistral-7B-Instruct-v0.2 · LWM-Text-Chat-1M · DBRX Instruct · GradientAI/Llama3-70B · Together Llama-2-7B-32K-Instruct · LongChat-7B-32K · LongAlpaca-13B
任务基准
RULER · SQuAD · HotpotQA

一句话结论

RULER 的核心发现不是“模型不能接收很长的输入”,而是可接收的最大 token 数不等于在复杂任务上仍然有效的上下文长度。在单针检索几乎满分的情况下,同一批模型面对多针干扰、跨位置追踪、全局聚合和带干扰文档的问答时,会随长度增加出现显著退化;因此上下文窗口必须连同任务类型、难度和判定阈值一起报告。

摘要译文

针藏草堆(needle-in-a-haystack,NIAH)测试考察模型从长篇干扰文本“草堆”中检索一条“针”信息的能力,已被广泛用于评估长上下文语言模型。然而,这种简单的检索测试只能反映较浅层的长上下文理解。为了更全面地评估长上下文语言模型,作者构建了新的合成基准 RULER,可灵活配置序列长度与任务复杂度。RULER 在基础 NIAH 上加入不同类型、不同数量的针,并引入多跳追踪和聚合任务,测试超出上下文搜索的行为。

作者用 RULER 的 13 项代表性任务评估了 17 个长上下文模型。尽管这些模型在基础 NIAH 上几乎达到满分,几乎所有模型都会随着上下文变长而显著下降。它们都声明支持至少 32K token,但只有约一半能在 32K 长度维持作者设定的“满意”表现。对声明支持 200K 的 Yi-34B 的进一步分析表明,输入长度与任务复杂度增加后仍有很大改进空间。作者开源 RULER,希望推动更全面的长上下文模型评估。

论文地图

问题 论文如何回答 主要证据
NIAH 是否足以代表长上下文能力 将评测扩展为检索、变量追踪、聚合和问答四类行为 §3、Table 2、Appendix B
“有效上下文长度”如何定义 以 Llama2-7B 在 4K 的 13 项任务均分 85.6% 作为定性阈值 §4、Table 3
声明窗口与有效窗口是否一致 对 17 个对齐模型在 4K–128K 的结果进行比较 Table 3
长度增加后具体坏在哪里 对 Yi-34B-200K 压测到 256K,并改变针类型、干扰数、返回项数和任务复杂度 §5、Figures 2–3
训练长度、模型规模和架构有何关系 比较 LWM 不同训练长度、Yi 不同规模,以及 RWKV/Mamba §6、Figure 4
结论不能外推到哪里 讨论位置控制、真实任务相关性、短上下文和提示鲁棒性的缺失 §8

1. 研究问题:窗口能装下,不等于模型用得好

长上下文模型通常用 passkey retrieval 或 NIAH 证明自己能在很长输入中找回一条信息。但这种测试有三个天然的简化:目标通常只有一个;查询与目标键可以精确匹配;输出通常也只有一个短值。它主要测“定位并复制”,没有充分测量模型是否能排除相似干扰、追踪跨位置依赖、汇总分散证据,或在大量无关文档中完成问答。

RULER 因此把问题从“最大能输入多少 token”改写成两个更可操作的问题:

  1. 在给定长度和任务复杂度下,模型还能维持多少正确率?
  2. 模型在哪一种长上下文行为上先失效?

与真实长文基准相比,RULER 刻意采用合成输入。优势是可以直接控制长度、目标数量、干扰密度和推理链数,并减少模型参数知识对答案的干扰;代价是它不自动代表真实文档理解。论文把这种设计定位为可配置的行为检查,而不是长上下文能力的单一总分(§1、Table 1;§8)。

2. RULER 方法:从一根针扩展到四类行为

RULER 包含四类任务,主实验从多个配置中选择 13 项。任务复杂度主要由目标输出 token 数量和上下文信噪比共同决定(§3;Appendix B, Table 5)。

类别 主实验配置 主要考察点
检索 8 项 针的类型、多键干扰、多值召回、多查询召回
多跳追踪 1 项 跨位置变量绑定链的追踪
聚合 2 项 从全文计数并找出常见词或最高频词
问答 2 项 在 SQuAD、HotpotQA 黄金段落周围加入同数据集干扰段落

2.1 检索:不只检查一条词—数字映射

基础单针任务(S-NIAH)可改变键和值的类型:单词、7 位数字或 32 位 UUID;草堆可以是重复噪声句或 Paul Graham 文章。RULER 进一步加入三类压力:

  • 多键(MK-NIAH):上下文中存在多个针,只需找回目标键对应的值;其他针是难干扰项。
  • 多值(MV-NIAH):同一个键关联多个值,必须完整返回所有值。
  • 多查询(MQ-NIAH):一次查询多个不同键,必须完整返回所有答案。

这三类设置把精确定位、抗干扰和召回完整性拆开,避免一个“找到过一次”的满分掩盖漏项问题(§3.1、Table 2)。

2.2 多跳追踪:变量绑定作为最小共指代理

变量追踪(VT)先写入 X1 = V,再把 X2 = X1X3 = X2 等绑定语句分散到长输入的不同位置,要求输出所有最终指向同一值的变量名。增加跳数会延长依赖链,增加链数会加入结构相似的硬干扰。主实验使用 1 条链、4 次绑定跳,需要返回 5 个变量名(§3.2;Appendix B)。

2.3 聚合:相关信息不再是一根稀疏的针

常见词提取(CWE)从两个离散均匀分布采样:主实验有 10 个常见词,每个出现 30 次;不常见词各出现 3 次,且随上下文长度增加。频繁词提取(FWE)则按 Zeta 分布采样,词排名为 k 时概率与 kα 成正比;主实验取 α=2.0,要求返回频率最高的 3 个词。这里的答案依赖对全文进行计数,而不是找到一条局部句子(§3.3、Figure 1;Appendix B)。

2.4 问答:把黄金段落埋入同分布干扰文档

QA 类别把 SQuAD 单跳问答和 HotpotQA 多跳问答的黄金段落随机插入从同一数据集采样的干扰段落。问题仍是查询,黄金段落相当于针,但相关段落与干扰段落的语言分布更接近,模糊匹配比模板化键值检索更困难(§3.4)。

3. 实验设计与“有效上下文长度”

主实验比较 17 个对齐长上下文模型:2 个闭源模型和 15 个开源模型,参数规模从 7B 到 8×22B MoE,声明窗口从 32K 到 1M。每个任务、每个长度生成 500 个样本,长度为 4K、8K、16K、32K、64K、128K;开源模型通过 vLLM 运行,使用 BF16、8 张 NVIDIA A100 和贪心解码。模型采用各自聊天模板,输入末尾附加答案前缀以减少拒答和解释性输出;评分检查目标输出是否出现,使用基于召回的准确率(§4;Appendices A、D)。

论文的“有效上下文长度”不是模型架构的硬上限。作者把 Llama2-7B 在 4K 上的 13 任务平均分 85.6% 定为定性阈值;一个模型的有效长度,是其均分仍超过 85.6% 的最大测试长度。这个定义方便比较声明值与实测值,但明显依赖任务组合、阈值基线和评分方式(§4、Table 3)。

为了避免阈值只给出一个粗粒度长度,作者还计算两种加权平均:wAvg.(inc) 随长度增加权重,模拟长输入占主导的使用分布;wAvg.(dec) 随长度降低权重,模拟短输入占主导。论文没有真实流量分布,因此两者是边界情景,而不是经验使用率(§4)。

4. 主结果:声明窗口与任务有效窗口分离

下表重述 v3 论文 Table 3。每个长度列是 13 项 RULER 任务的平均准确率(%);“有效”列使用 85.6% 阈值。短横线表示没有对应测试结果。

模型 声明 有效 4K 8K 16K 32K 64K 128K
Llama2-7B 基线 4K 85.6
Gemini-1.5-Pro 1M >128K 96.7 95.8 96.0 95.9 95.9 94.4
GPT-4 128K 64K 96.6 96.3 95.2 93.2 87.0 81.2
Llama 3.1 70B 128K 64K 96.5 95.8 95.4 94.8 88.4 66.6
Qwen2 72B 128K 32K 96.9 96.1 94.9 94.1 79.8 53.7
Command R+ 104B 128K 32K 95.6 95.2 94.2 92.0 84.3 63.1
GLM-4 9B 1M 64K 94.7 92.8 92.1 89.9 86.7 83.1
Llama 3.1 8B 128K 32K 95.5 93.8 91.6 87.4 84.7 77.0
GradientAI/Llama3 70B 1M 16K 95.1 94.4 90.8 85.4 80.9 72.1
Mixtral-8×22B 64K 32K 95.6 94.9 93.4 90.9 84.7 31.7
Yi-34B-200K 200K 32K 93.3 92.2 91.3 87.5 83.2 77.3
Phi-3 Medium 14B 128K 32K 93.3 93.2 91.1 86.8 78.6 46.1
Mistral-7B-Instruct-v0.2 32K 16K 93.6 91.2 87.2 75.4 49.0 13.8
LWM 7B 1M <4K 82.3 78.4 73.7 69.1 68.1 65.0
DBRX Instruct 32K 8K 95.1 93.8 83.6 63.1 2.4 0.0
Together 7B 32K 4K 88.2 81.1 69.4 63.0 0.0 0.0
LongChat 7B 32K <4K 84.7 79.9 70.8 59.3 0.0 0.0
LongAlpaca 13B 32K <4K 60.6 57.0 56.6 43.6 0.0 0.0

Gemini-1.5-Pro 在论文测试上保持最稳定:从 4K 的 96.7 到 128K 的 94.4,主实验没有找到其阈值内上限。GPT-4 在 64K 仍为 87.0,但到 128K 降为 81.2,因此按该阈值记作 64K。多款声明 128K 或 1M 的模型在 32K、64K 或更早就越过阈值。

这张表也展示了阈值的局限。GLM-4 在 128K 仍有 83.1,虽然离 85.6 只差 2.5 点,却被标记为有效 64K;LWM 从 4K 起就低于基线,因此记作 <4K,但它在 128K 仍有 65.0,退化斜率比一些短上下文强、随后归零的模型平缓。论文因此同时报告两种加权均分,提醒“短输入绝对水平”和“随长度相对退化”是两个维度(§4、Table 3)。

还需保留一处版本内冲突:v3 的 Table 3 将 Mixtral 8×22B 的声明长度写为 64K,而 Appendix A 的 Table 4 写为 32K。上表是在重述主结果表,因此沿用 64K;本文不替作者判断哪一个才是正确值。

5. 为什么基础 NIAH 会给出过度乐观的印象

Appendix E 把同一批模型单独放回 passkey retrieval 和基础 NIAH。Gemini-1.5、GPT-4、Llama 3.1 8B、GLM-4、Yi-34B 和 LWM 等模型在 passkey 的 4K–128K 全部得到或接近 100%;Yi-34B 在基础 NIAH 的六个长度也全部是 100%。但 Yi 在 13 项 RULER 上从 4K 的 93.3 降至 128K 的 77.3(Tables 3、10、11)。

差异来自测试目标改变:单针只要求一次精确键值复制,RULER 还要求排除相似针、返回完整集合、沿多跳绑定追踪变量、统计全文频率,以及在自然语言干扰段落中回答问题。论文的关键对照不是“另一个模型排行榜”,而是同一模型在简单检索和复合长上下文行为之间的落差

6. Yi-34B 压测:长度增加后如何失效

作者选择声明 200K 且在开源模型中表现较好的 Yi-34B-200K,把输入进一步扩展到 256K,并系统改变任务难度(§5、Figures 2–3)。主要失败模式如下:

失败模式 观察 证据边界
针类型不鲁棒 词—数字检索接近满分,但 UUID 最容易退化;超过 128K 时会漏掉 32 位 UUID 的一部分 Yi 单模型压测,Figure 2 左
难干扰无法排除 MK-NIAH 的无关针越多,性能越低;草堆全部由干扰针构成时,256K 约下降 40 点 极端 MK 配置,Figure 2 中左
多项返回不完整 查询数从 1 增至 8 时约下降 15 点;同键多值会重复答案并漏值 MQ/MV,Figure 2 中右和右
复制示例而非完成任务 CWE 在 128K 时,超过 80% 输出直接复制 one-shot 示例;短序列没有这种现象 CWE 特定提示;移除示例后会复制输入开头,§5 脚注 7
追踪链不可靠 增加跳数或并行链都会退化,错误包括空输出和返回其他链的变量 VT,Figure 3 左两图
聚合退回参数知识 Mistral 会忽略上下文计数,回答 theana;Yi 在较小 α 的 FWE 中难以区分接近的词频 定性错误分析,§5
QA 幻觉增加 SQuAD/HotpotQA 加入更多干扰段落后,Yi 接近无上下文基线,并出现与问题无关的答案 Yi QA,Figure 3 右

这些错误说明长上下文失效不只有“找不到针”。模型可能找到附近区域却选错同分布干扰项,可能找到部分答案却无法维持集合完整性,也可能在注意力分配困难时退回复制输入开头或依赖参数知识。

7. 模型分析:训练更长不是充分条件

论文用三组对照分析性能来源(§6、Figure 4):

  1. 训练上下文长度:固定 LWM 为 7B,比较最大训练长度 128K、256K、512K、1M。训练得更长总体更好,但排序并不单调;LWM-1M 在 256K 输入上反而弱于 LWM-512K。作者推测这可能与对新 RoPE base frequency 的训练不足有关,但实验没有单独验证该机制。模型外推到未见长度时还会出现突降,例如 LWM-128K 在 256K 输入处。
  2. 模型规模:在相同 200K 训练长度和数据混合下,Yi-34B 比 Yi-6B 在 4K 绝对表现和随长度退化两方面都更好,说明容量扩展与长上下文使用能力正相关。这是 Yi 家族内对照,不能直接推导任意架构的缩放规律。
  3. 架构:RWKV-v5-7B 和 Mamba-2.8B-slimpj 到 8K 都显著退化,在 4K 以内也明显落后 Llama2-7B。它证明论文所测的两个早期非 Transformer 模型没有因线性序列机制自动获得强长上下文理解,不等于所有状态空间模型都如此。

8. 局限:RULER 仍不是“真实上下文长度”的最终答案

作者在 §8 明确列出四项限制:

  • 没有位置控制:每个长度只报告一个汇总分,没有按目标在上下文中的深度绘制曲线,无法专门诊断 lost-in-the-middle。
  • 代理任务与真实任务的相关性未验证:VT、CWE、FWE 被设计成共指、总结等行为的代理,但论文没有证明它们与现实长文任务的分数关系。作者强调 RULER 适合便捷行为检查,不应优先于 NoCHA 等真实设置。
  • 没有覆盖更难的短上下文任务:主套件选择了多数模型在 4K 表现尚可的配置,因此不能把 4K 高分读成短上下文能力已经解决。更高复杂度在几千 token 也会失败,但未纳入主结果。
  • 提示鲁棒性不足:模型对提示格式敏感,论文只做了早期初步测试;VT 变量名长度、CWE/FWE 词表大小等固定超参数也没有广泛消融。

此外,85.6% 阈值来自一个特定基线,召回式评分也可能宽于严格的集合相等或生成质量评估。“有效长度”因此是论文给出的操作性比较指标,不应变成脱离基准配置的产品规格。

9. 论文结论与证据边界

作者通过一个可配置的合成基准证明:在 v3 论文选取的 17 个对齐模型、13 项任务、4K–128K 长度和特定提示/评分协议下,基础 passkey 或 NIAH 的近满分不能保证多干扰检索、多项召回、变量追踪、聚合和长文问答仍然可靠。Table 3 显示,绝大多数模型在达到其声明窗口前就低于作者设置的 85.6% 阈值;§5 的 Yi 压测则把退化具体分解为漏项、误选干扰、复制示例、参数知识替代上下文和问答幻觉。

这些证据直接支持“声明窗口不能单独代表任务有效窗口”,但不支持以下更强结论:

  • 不能据此声称某模型在阈值外完全不能使用;例如 83.1 和 85.6 的产品含义取决于任务容错。
  • 不能把 RULER 排名外推为所有真实长文工作流的排名,论文没有验证代理任务与真实任务的普遍相关性。
  • 不能把 2024 年的 GPT-4、Gemini、Llama、Qwen 等具体版本结果套用到后续同名模型。
  • 不能据两个非 Transformer 模型推断所有状态空间或混合架构的长上下文能力。
  • 不能从相关对照确认训练长度、RoPE 频率或模型规模是单一因果来源。

10. AI 解读:真正需要测的是“上下文能力曲面”

以下是 AI 基于论文证据作出的延伸分析,不是作者原文结论。

10.1 上下文窗口更像兼容性上限,而不是质量承诺

模型 API 的窗口数字回答“请求能否被接收”,RULER 的有效长度回答“在一组行为和阈值下,质量能否维持”。两者之间还隔着任务难度、目标密度、干扰相似度、返回项数量、提示模板和评分规则。因此更合理的产品规格不是一个 128K,而是一张能力曲面:任务 × 长度 × 难度 × 质量阈值

10.2 长上下文评测应区分定位、完整性与整合

NIAH 的成功主要证明定位。MV/MQ 测完整性,VT 测跨位置状态保持,CWE/FWE 测全局整合,QA 则同时要求定位和语义判断。实际系统若只测“能否找到一条事实”,很可能漏掉更危险的故障:遗漏多条约束、把相似实体串线、复制示例,或在证据存在时仍用参数知识作答。

10.3 “有效长度”应该针对业务失败成本定义

论文用 85.6% 作为统一阈值便于研究比较,但生产系统的阈值应由错误成本决定。日志摘要允许偶尔漏一条与合规审查要求完整召回,不能共享同一个有效窗口。工程上可以保留 RULER 作为模型升级回归测试,再用真实业务样本、严格集合指标和人工错误分级确定部署长度。

10.4 合成基准最适合做受控诊断,而不是替代真实评测

RULER 的合成性使它能稳定操控干扰量和输出规模,特别适合定位模型在哪个维度先坏;它缺失的位置控制和真实任务相关性,则意味着最终验收仍应组合 lost-in-the-middle 测试、现实长文数据和提示扰动。合成与真实评测不是二选一:前者负责可重复诊断,后者负责外部效度。

11. 相关工作坐标

  • Passkey / Needle-in-a-Haystack:主要测单条键值定位;RULER 把针的类型、数量、查询数和干扰密度变成可控变量,并增加非检索任务。
  • LongBench、L-Eval、ZeroSCROLLS、InfiniteBench:覆盖更真实或混合的长文任务,外部效度更强,但长度和复杂度通常不如合成任务容易独立控制;RULER 与它们互补。
  • LV-Eval / Lost in the Middle:强调目标在上下文不同深度的表现;这是 RULER v3 明确缺失的诊断维度。
  • BABILong、NoCHA、FlenQA:分别增强长上下文推理、真实书籍问答或较短长度上的推理压力,提醒“比 NIAH 难”仍有多种不同含义。
  • Long-context scaling 方法:FlashAttention、Ring Attention、RoPE 外推、稀疏注意力、记忆压缩与状态空间架构解决可计算或可训练的长度问题;RULER关注的是这些技术把窗口拉长后,模型是否真的在任务中利用了新增上下文。