麻省理工提出递归语言模型RLM,通过将提示变为可编程环境变量并支持递归调用,使大模型能高效处理百万级token输入,在多项任务上性能翻倍且成本更低。
大模型不再直接“吞下”全部上下文,而是退居幕后,由代码(REPL环境)来主导对世界状态(即超长提示)的访问、切分与操作。
明明给了大模型一整本书的信息,它却连第一章讲了什么都记不住?或者让它分析1000个文档,结果它连文档名字都搞混?别急,这不是你的错,也不是模型笨——而是当前所有主流大语言模型都深陷“上下文牢笼”:哪怕号称支持百万token,实际有效理解长度可能连几万都不到!更可怕的是,随着输入越长,模型表现不但不提升,反而断崖式下跌,这种现象被研究人员命名为“上下文腐烂”(Context Rot)。
就在我们以为必须等待硬件和架构革命才能破解这一困局时,麻省理工学院CSAIL实验室的三位天才——亚历克斯·张、蒂姆·克拉卡和奥马尔·哈塔布,悄然扔出了一颗重磅炸弹:递归语言模型(Recursive Language Models,简称RLM)。
这不是微调,不是压缩,而是一场彻底的推理范式重构——RLM不再把超长提示塞进Transformer的“胃”里硬塞,而是聪明地把整个提示当作外部环境中的一个变量,让模型像程序员一样写代码去“翻阅”、“切片”、甚至“递归调用自己”来处理信息。
结果有多炸裂?在高达1000万+ token的输入任务中,RLM不仅没崩,反而以压倒性优势碾压所有现有方法,性能提升动辄翻倍,成本却更低!今天,就带你彻底拆解这篇可能改变AI发展轨迹的神级论文。
作者天团与RLM诞生的背景:当长上下文成为AI落地的最大拦路虎
先说说这支来自麻省理工学院计算机科学与人工智能实验室(MIT CSAIL)的梦之队。第一作者亚历克斯·张(Alex L. Zhang)是该领域的青年才俊,长期深耕于大模型推理与系统优化;他的导师蒂姆·克拉卡(Tim Kraska)是数据库和机器学习交叉领域的世界级专家,曾创立多家AI基础设施公司;
而奥马尔·哈塔布(Omar Khattab)则是信息检索与高效推理的顶尖学者,早年提出的Baleen模型就已名震学界。
正是这支兼具系统、算法与应用视野的黄金组合,敏锐地捕捉到了一个被业界忽视的巨大矛盾:一边是GPT-5等前沿模型宣称支持27万甚至更多token的上下文窗口,另一边却是无数开发者在真实场景中遭遇“模型失忆”和“信息过载”的惨痛现实。
论文开篇就用一张震撼的图表揭示了真相:在S-NIAH(单根针在 haystack 里)、OOLONG(线性复杂度任务)和OOLONG-Pairs(平方级复杂度任务)这三种递增难度的长上下文任务中,GPT-5的表现随着输入长度指数级增长而急剧恶化,尤其在高复杂度任务中,几乎完全失效。
问题的核心在于,传统方法要么采用“上下文压缩”——把长文本不断摘要,但这会丢失关键细节;要么依赖检索工具,但这在需要密集访问全文的任务中显得力不从心。
RLM的灵感,恰恰来源于计算机科学中的“外存算法”(Out-of-Core Algorithms):就像一台内存有限的电脑能处理远超其内存容量的海量数据一样,RLM让有限上下文的模型也能“处理”无限长的输入。
RLM的核心机制:把提示变成变量,让模型化身全能程序员
那么,RLM究竟是如何做到的呢?其核心思想简单到令人拍案叫绝,却又巧妙到难以复制。
传统的模型调用方式是:用户输入一个超长字符串P,模型直接将其作为token序列喂给神经网络。
RLM完全颠覆了这一流程。
它首先为这个提示P创建一个独立的Python REPL(读取-求值-打印循环)编程环境,并将P作为一个字符串变量(比如命名为context)加载到这个环境的内存中。
接着,RLM会向底层的大语言模型(比如GPT-5)提供一段精心设计的系统提示(System Prompt),告诉它:“嘿,你现在不是在读一段文字,而是在一个可以写代码的沙盒里!你的任务是通过写Python代码来探索、分解并分析这个名为context的变量。”模型可以自由地使用print()语句来窥探context的任意部分,可以用正则表达式来搜索关键词,更关键的是,它可以通过一个名为llm_query()的特殊函数,在代码内部递归地调用另一个语言模型实例(可以是相同或更小的模型)来处理context的某个“切片”。
举个例子,如果需要分析一部百万字的小说,模型可以先写代码按章节切分context,然后对每一章发起一个llm_query调用来总结情节,最后再将所有章节摘要汇总,进行最终推理。
这种方式将原本在“token空间”中进行的笨拙推理,转移到了灵活、可编程、可迭代的“代码空间”中。
更重要的是,RLM的输出也不再受限于模型的最大输出长度。通过将子任务的输出结果存储在REPL环境的变量中,模型可以在最后一步将这些变量“缝合”成一个超长的答案返回,从而突破了模型原生的输出限制。
实验结果炸裂:在百万级token战场,RLM以碾压姿态登顶
光说不练假把式,RLM的真正威力体现在硬核的实验数据上。
研究团队在四个极具挑战性的长上下文基准上进行了全面评测,涵盖了从多跳问答、代码库理解到高密度语义聚合等不同场景。
首先是BrowseComp-Plus(1K文档)任务,要求模型在1000个文档(总token量高达600万至1100万)中找到多跳问题的答案。在这个GPT-5和Qwen3等基座模型因上下文溢出直接得0分的地狱级难度任务中,RLM(基于GPT-5)以惊人的91.33%正确率近乎完美通关!
相比之下,表现第二好的摘要代理(Summary agent)仅为70.47%,而同样基于GPT-5的CodeAct代理更是只有51%。更令人震撼的是OOLONG-Pairs任务,这是一个需要对输入进行两两组合分析的平方级复杂度任务,信息密度极高。
面对这个任务,GPT-5和Qwen3的F1分数都趋近于0,几乎完全束手无策。而RLM(GPT-5)却给出了58%的F1分数,RLM(Qwen3)也达到了23.11%,实现了从0到1的质的飞跃。
这充分证明,RLM不仅是处理“长”文本,更是处理“密”文本的终极武器。在成本方面,RLM同样表现优异。虽然其推理轨迹(trajectory)的成本方差较大(因为任务越复杂,迭代次数越多),但中位数成本与基座模型相当甚至更低。例如,在BrowseComp-Plus任务中,RLM(GPT-5)的平均成本仅为0.99美元,远低于摘要代理的8.98美元,性能却高出20多个百分点。这打破了“高性能必然高成本”的魔咒,让超长上下文处理变得既强大又经济。
关键洞察:递归调用与REPL环境,一个都不能少
通过一系列精妙的消融实验,论文揭示了RLM成功的两大支柱。
第一大支柱是REPL编程环境本身。
研究者设计了一个“无递归调用”的RLM变体:模型依然可以在REPL中操作context变量,但无法使用llm_query()函数。实验发现,即便如此,这个变体依然能有效处理超出模型原生上下文窗口的输入,并在CodeQA等任务上甚至略微超过了完整版RLM。这证明了“将提示作为外部可编程对象”这一设计本身就具有强大的扩展性。
然而,第二大支柱——递归子调用(recursive sub-calling)——在处理信息密集型任务时起到了决定性作用。
在OOLONG和OOLONG-Pairs这类需要对每个数据点进行深度语义理解的任务中,完整版RLM的性能比其无递归变体高出10%到59%。
研究人员观察到,Qwen3-Coder模型在处理OOLONG任务时,会为每一行数据发起一次子调用,进行精确的语义分类;而没有递归能力的模型则只能依赖粗糙的关键词启发式规则,效果自然天差地别。
此外,论文还敏锐地指出了不同底层模型的行为差异。GPT-5作为RLM时表现得更为“保守”和“高效”,倾向于批量处理信息,减少子调用次数;而Qwen3-Coder则更为“勤奋”甚至“死板”,常常发起成百上千次子调用,虽然最终也能得到正确答案,但成本高昂。
为此,研究者不得不在Qwen3-Coder的系统提示中额外加入一条警告:“务必谨慎使用llm_query,尽量批量处理信息,以控制运行成本!”这充分说明,RLM作为一个通用框架,其具体表现高度依赖于底层模型的编码能力和行为模式。
RLM的真实轨迹:像人类工程师一样思考、验证与构建
论文最精彩的部分莫过于对RLM实际运行轨迹(trajectories)的剖析,让我们得以一窥这个“AI程序员”的真实思考过程。
在BrowseComp-Plus的一个多跳问题中,RLM(GPT-5)的根模型首先根据问题中的关键词(如“festival”、“beauty pageant”)编写正则表达式,在上千个文档中进行初步筛选。找到一个疑似相关的文档片段后,它立刻发起一次子调用,让子模型专注于分析这个片段,最终得出了“Maria Dalmacio”这个答案。
但故事还没完,根模型并未轻易采信,而是又发起了两次独立的子调用,对答案进行交叉验证,确保万无一失后才返回最终结果。
这种“探索-分解-验证”的闭环,完全模拟了人类专家的严谨工作流。
然而,RLM也并非完美。在OOLONG-Pairs的一个任务中,RLM(Qwen3-Coder)其实很早就通过代码正确地计算出了所有用户ID对,并将结果存储在变量中。但令人啼笑皆非的是,它随后陷入了“验证强迫症”,反复五次重新计算,最后在返回答案时,竟然没有使用变量中的正确结果,而是让根模型凭记忆生成了一个错误的答案!
这个案例既展示了RLM强大的构建能力,也暴露了当前模型在“最终输出”环节的脆弱性——它们尚未被专门训练成一个可靠的“递归思考者”。
代码即思想:RLM系统提示(System Prompt)的精妙设计
RLM的强大能力,很大程度上源于其系统提示的精妙设计。
这个提示就像一份给AI程序员的“入职指南”,它明确地告知模型所处的REPL环境,并列举了可用的工具:一个包含全部上下文的context变量、一个可以递归调用的llm_query函数,以及用于调试的print语句。提示中还包含了多个详尽的代码示例,教导模型如何进行分块处理、如何通过缓冲区(buffer)聚合信息、以及如何通过FINAL_VAR()或FINAL()标签来优雅地返回最终答案。
例如,其中一个示例展示了如何按Markdown标题分割上下文,对每个部分进行总结,最后再综合所有摘要得出结论。
这种“授人以渔”的方式,赋予了模型极大的自由度和创造力。研究者也坦诚分享了调试过程中的“血泪史”:最初他们尝试在GPT-5和Qwen3-Coder上使用完全相同的提示,结果Qwen3-Coder因为过于“听话”,对每个微小任务都发起子调用,导致成本爆炸。最终,他们不得不为Qwen3-Coder的提示单独加上一行“成本警告”,才使其行为变得合理。
这再次印证了,在通往通用人工智能的道路上,通用的框架必须与个性化的调优相结合。
局限与未来:RLM只是开始,一个新时代正在来临
尽管RLM取得了令人瞩目的成果,作者们依然清醒地指出了其当前的局限。
首先,他们采用的同步、阻塞式的子调用实现效率低下,导致整体推理时间较长。未来通过引入异步调用和并行处理,性能将得到极大提升。
其次,目前只使用了一层递归(子调用是普通LM而非RLM),而更深的递归层次(RLM调用RLM)可能会解锁更复杂的推理能力。
最重要的一点是,现有的前沿模型(如GPT-5、Qwen3)并非为RLM范式而生。它们在进行上下文管理、子任务分解和最终答案选择时,常常做出非最优甚至错误的决策。
作者大胆预言,未来的研究方向应该是直接训练专门用于RLM推理的模型。可以将RLM的轨迹(即一系列的代码操作和子调用)视为一种新型的“推理过程”,通过自举(bootstrapping)等技术,让模型学会更高效、更可靠地进行递归思考。这或许会催生出一个全新的模型训练范式。