一句话结论
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”改写成两个更可操作的问题:
- 在给定长度和任务复杂度下,模型还能维持多少正确率?
- 模型在哪一种长上下文行为上先失效?
与真实长文基准相比,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 = X1、X3 = X2 等绑定语句分散到长输入的不同位置,要求输出所有最终指向同一值的变量名。增加跳数会延长依赖链,增加链数会加入结构相似的硬干扰。主实验使用 1 条链、4 次绑定跳,需要返回 5 个变量名(§3.2;Appendix B)。
2.3 聚合:相关信息不再是一根稀疏的针
常见词提取(CWE)从两个离散均匀分布采样:主实验有 10 个常见词,每个出现 30 次;不常见词各出现 3 次,且随上下文长度增加。频繁词提取(FWE)则按 Zeta 分布采样,词排名为 时概率与 成正比;主实验取 ,要求返回频率最高的 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 会忽略上下文计数,回答 the、an、a;Yi 在较小 的 FWE 中难以区分接近的词频 |
定性错误分析,§5 |
| QA 幻觉增加 | SQuAD/HotpotQA 加入更多干扰段落后,Yi 接近无上下文基线,并出现与问题无关的答案 | Yi QA,Figure 3 右 |
这些错误说明长上下文失效不只有“找不到针”。模型可能找到附近区域却选错同分布干扰项,可能找到部分答案却无法维持集合完整性,也可能在注意力分配困难时退回复制输入开头或依赖参数知识。
7. 模型分析:训练更长不是充分条件
论文用三组对照分析性能来源(§6、Figure 4):
- 训练上下文长度:固定 LWM 为 7B,比较最大训练长度 128K、256K、512K、1M。训练得更长总体更好,但排序并不单调;LWM-1M 在 256K 输入上反而弱于 LWM-512K。作者推测这可能与对新 RoPE base frequency 的训练不足有关,但实验没有单独验证该机制。模型外推到未见长度时还会出现突降,例如 LWM-128K 在 256K 输入处。
- 模型规模:在相同 200K 训练长度和数据混合下,Yi-34B 比 Yi-6B 在 4K 绝对表现和随长度退化两方面都更好,说明容量扩展与长上下文使用能力正相关。这是 Yi 家族内对照,不能直接推导任意架构的缩放规律。
- 架构: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关注的是这些技术把窗口拉长后,模型是否真的在任务中利用了新增上下文。