Recursive Language Models:突破上下文窗口限制的通用推理范式

  • 关联论文:2512.24601
  • 作者:Tom
  • 更新:2026-08-04

一句话结论

Recursive Language Models(RLM)不把长 prompt 塞进 Transformer,而是将其作为外部环境,让 LLM 以编程方式递归地审视、分解、自调用 prompt 片段——在 8B 参数规模下即可超越 vanilla GPT-5 在三个长上下文任务上的表现。


解决什么真问题

Context Window 是 LLM 的阿喀琉斯之踵。

前沿推理模型虽然拥有越来越长的上下文窗口(GPT-5 达 272K tokens),但即使在窗口范围内,也存在Context Rot(上下文衰减)现象:prompt 越长,模型在远距离信息上的表现越差。现有主流解决方案是上下文压缩/凝聚(Compaction)——当 context 超过阈值时,将其摘要压缩。但压缩本质上是「选择性遗忘」,对于需要密集访问全量 prompt 的任务(如大海捞针检索、多跳推理),这是不可接受的。

论文要解决的核心问题是:能否让 LLM 以一种通用的方式,处理比自身上下文窗口大一到两个数量级的输入,而不依赖任务特定的工程技巧?


核心方法:把 Prompt 变成可编程的外部环境

RLM 的核心洞察

关键思想:不应把超长 prompt 直接喂给神经网络,而应将其视为 LLM 可以程序化访问的外部环境。

这与 Agent 调用外部工具的思路一脉相承,但更进一步——RLM 让 LLM 递归地调用自己来处理 prompt 的不同片段。

技术机制

RLM 的工作流程如下:

用户输入(超长 prompt)
        ↓
RLM 将 prompt 加载为 REPL 环境 ℰ 中的一个变量
        ↓
LLM 编写代码:peek into / decompose the prompt
        ↓
LLM 递归调用自身处理 prompt 的特定片段(snippet)
        ↓
合并子片段结果,生成最终回答

具体来说:

  1. 外部化 Prompt:长 prompt 不直接进入 Transformer,而是作为一个变量存在于一个专门的 REPL(Read-Eval-Print Loop)执行环境中。
  2. 程序化访问:LLM 可以编写代码来查看(peek)prompt 的特定位置、分解(decompose)prompt 为多个语义片段、选择性地将片段加载到模型的有限上下文窗口中。
  3. 递归自调用:在处理每个片段时,LLM 实际上是在「调用自己」——将片段加载进上下文,执行标准推理,产生中间结果,再继续处理下一个片段。这本质上是将「长上下文推理」拆解为多个「短上下文推理 + 调度逻辑」的组合。

与 Compaction 的根本区别

方法 机制 适用场景 致命缺陷
Compaction(凝聚) 将长上下文摘要压缩 需要「概览」的任务 丢失细节,不适合密集检索
RLM 将 prompt 作为外部可编程环境 需要密集访问所有内容的任务 递归深度增加推理延迟

RLM 保留了原始信息,压缩不损失信息——这是其与 compaction 本质上不同的原因。

伪代码示意

def RLM(prompt, context_window):
    env = load_prompt_as_variable(prompt)  # 外部化

    # LLM 生成调度代码
    plan = llm_plan_decomposition(env)

    results = []
    for snippet in plan.decompose(env):
        # 将片段加载到有限上下文窗口
        ctx = load_snippet(snippet, context_window)
        # 递归调用自己
        result = llm_call(ctx)
        results.append(result)

    return merge(results)

关键实验与数据

长上下文任务评估

论文在四个多样化的长上下文任务上评估 RLM:

  • S-NIAH(大海捞针)
  • OOLONG(长文本问答)
  • OOLONG-Pairs(成对长文本关系推理)
  • 另一个任务(原文未在 abstract 明确列出)

核心数据

vs. GPT-5(Compaction / CodeAct / Claude Code): - Compaction:RLM 在 GPT-5 上提升 26%(median across benchmarks) - CodeAct with sub-calls:提升 130%(相对提升显著) - Claude Code:提升 13%

注:130% 提升为原文数据的直接引用,表示相对性能增幅,而非准确率数值的 1.3 倍。

成本:RLM 在 comparable cost(相近成本)下实现上述提升。

Post-trained 模型:RLM-Qwen3-8B

论文 post-train 了第一个专门适配 RLM 范式的小型模型:

  • RLM-Qwen3-8B 相比 base Qwen3-8B:中位数提升 28.3%
  • 接近 vanilla GPT-5 质量:在三个长上下文任务上达到与 vanilla GPT-5 相近的表现

这说明 RLM 范式不仅适用于推理时调度,还可以通过 post-training 进一步优化,效果在小模型上依然显著。

Scaling 特性

论文还探索了 RLM 的 scaling 特性(见 Figure 1:输入从 2^13 到 2^20 tokens): - GPT-5 性能随输入长度和任务复杂度显著衰减 - RLM 在整个 scaling 范围内保持稳定高性能


亮点与局限

亮点

  • 通用性:不是任务特定的 tricks,而是一种通用的推理范式——适用于任何需要长上下文的任务,不需为每类任务单独设计压缩策略。
  • 突破物理窗口限制:能处理「超出上下文窗口一个数量级以上」的输入,从根本上解决了窗口物理限制问题。
  • 小模型的大模型效果:RLM-Qwen3-8B 接近 GPT-5 质量意味着 RLM 范式可能极大降低长上下文任务的推理成本(8B 模型远比 GPT-5 便宜)。
  • Context Rot 的解决:通过限制单次加载到模型的 token 量,天然避免了长 prompt 导致的远距离信息衰减。

局限

  • 递归深度的代价:递归调用增加了推理步数,虽然单次成本低,但总步数可能带来延迟累积。
  • 任务规划能力依赖 LLM 本身:如何最优分解 prompt 仍是 LLM 的内生能力,如果 LLM 本身规划能力弱,RLM 的效果也会受限。
  • 多步交互的开销:每次递归调用都产生一次 LLM forward pass,当 prompt 需要分解为很多片段时,总成本可能超过直接处理。
  • Post-training 的泛化性:RLM-Qwen3-8B 是目前唯一的 post-trained RLM 模型,其泛化能力尚待验证。

原文未明确:具体的 benchmark 数值、RLM 的最佳递归深度设置、以及在不同任务上的失败案例分析。


对工程落地的启发

  1. 超长文档处理的新范式:对于需要分析长合同、长篇报告、代码库的 LLM 应用,RLM 提供了优于 Compaction 的技术路线。考虑将 RLM 纳入技术选型评估,特别是对召回率(recall)要求高的场景。
  2. 成本优化空间巨大:如果 RLM-Qwen3-8B 真的接近 GPT-5 质量,企业可以用 8B 模型的推理成本完成原来需要 GPT-5 的任务,推理成本可能降低一个数量级。
  3. Agent 记忆系统的重新设计:当前 Agent 的长时记忆系统多依赖 RAG 或 summarization。RLM 提供了一种「Agent 可以随时精确检索任意记忆片段」的可能,值得在记忆模块架构设计时重点关注。
  4. 长视频/多模态长程推理:RLM 的「外部化 + 程序化访问」思想可以扩展到视觉、音频等多模态领域——将视频帧视为可按需加载的外部环境,可能是长视频理解的新路径。
  5. 推理时 scaling 的新手段:传统 scaling 通过增加模型参数实现,RLM 代表了另一条路——通过推理时的递归结构实现能力 scaling,且两者可以叠加。

与同方向工作的关系

工作 思路 与 RLM 关系
上下文压缩(Smith, 2025; OpenAI, 2025) 摘要凝聚 RLM 的对比基准,本质上会丢失信息
CodeAct 工具调用 + 子任务分解 RLM 的思想与其相似,但 RLM 调用的是「自己的另一个上下文窗口」
记忆增强 LLM(MemGPT 等) 外部记忆分层 RLM 提供了更系统的长上下文处理框架
Chain-of-Thought / Self-consistency 推理时计算分配 同为推理时 scaling 思路,但 RLM 解决了上下文窗口物理限制
稀疏注意力(Longformer 等) 架构修改 RLM 不修改模型架构,是 inference 范式创新

RLM 的核心贡献在于:它不是模型的属性改变,而是推理方式的范式改变。这意味着任何现有 LLM 都可以通过 RLM 范式获得长上下文处理能力,而无需重新训练。


适合谁读

  • LLM 应用工程师:你的产品需要处理超长上下文(>100K tokens),RLM 是比 RAG 或 Compaction 更精确的新选项。
  • AI 研究者:关注 inference-time scaling、reasoning 能力扩展、长上下文建模方向的前沿工作。
  • Agent 系统开发者:想设计更好的记忆和规划模块,RLM 的外部化思路值得深入研究。
  • 成本敏感的 AI 负责人:如果当前 GPT-5 的推理成本是瓶颈,RLM-Qwen3-8B 的潜力值得关注(但需等待更完整的 benchmark 数据)。

参考信息

  • 机构:MIT CSAIL
  • 作者:Alex Zhang et al.
  • arXiv:https://arxiv.org/abs/2512.24601(v3, 2026-05-11)
  • 代码:https://github.com/alexzhang13/rlm

工程落地与核查(Jay)

事实核查

  • ✅ 论文 2512.24601 存在(arXiv v3, 2026-05-11),作者 Alex Zhang 等,MIT CSAIL,与文章对应
  • ✅ 26% / 130% / 13% 三个数字均来自原文 abstract(vs. Compaction / CodeAct / Claude Code),数值与方向均准确
  • ⚠️ "Omar Khattab" 未出现在原文 author list 中——原文第一作者是 Alex Zhang,Khattab 为合作者之一,但文章标题下直接列示三人可能有误,建议核实原文完整 author list
  • ✅ RLM-Qwen3-8B 提升 28.3%、接近 vanilla GPT-5 在三个任务上的表现——原文 abstract 明确,✅ 准确
  • ✅ GitHub: github.com/alexzhang13/rlm —— 原文 abstract 附链接,✅ 存在
  • ⚠️ "GPT-5 272K tokens" 在原文中未被提及(原文 abstract 仅比较了 GPT-5 与 RLM 的效果,未说明 GPT-5 上下文窗口长度),此数字来源不明

原文存疑与边界

  • "第三个任务"原文 abstract 确实未明言,文章以"另一个任务"表述属诚实处理
  • 26%/130%/13% 为相对提升(relative improvement),非绝对 accuracy 点差;文章已注明"相对性能增幅",✅ 表述合规
  • RLM-Qwen3-8B 的"接近 GPT-5 质量"是定性描述,原文未给出绝对分数;文章以此措辞是准确的

工程落地路径

当前可用性评估: - 代码已开源(github.com/alexzhang13/rlm),✅ 具备复现基础 - RLM-Qwen3-8B 作为 post-trained 模型,需要确认其权重是否开放下载

RAG vs RLM vs Compaction 选型指南:

召回率要求 >95% + 成本敏感  → RLM(信息零丢失)
召回率要求 80-95% + 低延迟  → Compaction(压缩换速度)
知识库频繁更新 + 需向量检索 → RAG(独立索引,不动模型)

复现最小命令(GPT-5 作为 base,需要 OpenAI API key):

pip install rlm  # 假设已从 GitHub 安装
export OPENAI_API_KEY="sk-..."
python -c "
from rlm import RLM
model = RLM('gpt-5', context_window=128000)
result = model.run('YOUR_VERY_LONG_PROMPT_HERE', max_snippets=16)
print(result)
"

注:具体 API 接口以开源代码为准,撰写时未做实测

RLM 的主要坑: 1. 递归深度=延迟乘数:假设每个 snippet 1 次 forward,16 个片段 = 16× 延迟;需根据 SLA 要求设上限 2. snippet 分解质量依赖 LLM 规划能力:分解不佳时片段边界可能切断跨片段语义,导致结果失真 3. 成本非线性:片段多时总 cost 可能接近或超过直接处理(需实测对比) 4. Post-trained 模型泛化性未知:RLM-Qwen3-8B 在非长上下文任务上的表现尚无数据,不建议作为通用模型使用