用λ演算驯服LLM的递归8B小模型干到70B的表现论文标题The Y-Combinator for LLMs: Solving Long-Context Rot with λ-Calculus发表时间2026年3月20日作者Amartya Roy, Rasul Tutunov, Xiaotong Ji, Matthieu Zimmer, Haitham Bou-Ammar论文链接https://arxiv.org/abs/2603.20105代码github.com/lambda-calculus-LLM/lambda-RLM 核心摘要当你让LLM处理一本书、一个大型代码仓库这样的超长输入时模型质量会随着文本变长而腐烂Long-Context Rot——准确率指数级下降。最近MIT提出的递归语言模型RLM方案是让LLM自己写Python代码来递归地分解和处理长文本但问题是LLM写的递归代码经常写死循环、运行成本不可控、延迟方差极大。这篇论文的核心思路很硬核既然LLM写的自由代码不靠谱那就别让它写了——用λ演算的类型化组合子typed combinators替代自由代码生成。就像把一辆没有限速器的赛车装上了赛道护栏LLM只负责语义理解它擅长的事程序控制流由数学上可证明终止、成本可预算的符号运算来执行。结果在4类任务、9个模型的36个对比中赢了29个弱模型8Bλ-RLM的准确率直接追平强模型70B普通RLM延迟降低4.1倍。定位这是一篇将程序语言理论与LLM推理结合的工作核心创新在于用形式化的符号控制流替代LLM的自由代码生成属于给LLM加护栏这条技术路线的一个高质量实现。 问题动机Long-Context Rot 与 RLM 的困境长上下文推理的衰减问题LLM处理长文本时准确率随长度指数级下降。论文给出了形式化描述直接推理的准确率Adirect(n)Θ(ρn/K)\mathcal{A}_{\text{direct}}(n) \Theta(\rho^{n/K})Adirect​(n)Θ(ρn/K)其中ρ1\rho \lt 1ρ1——输入长度nnn每翻倍准确率就打一个折扣。这不是某个模型的个别问题而是注意力机制的结构性限制。即使窗口拉到128K当信息分散在超长文本中时模型的检索和推理能力都会严重退化。RLM一个好主意但执行有风险2025年底Zhang等人提出了递归语言模型RLM让LLM把长文本切分成块对每块递归调用自己最后汇总结果。RLM把问题从处理超长文本变成了处理若干短文本。但RLM有个致命问题它让LLM自己写递归代码。LLM写的Python代码存在三个隐患问题表现后果非终止风险递归没有正确的base case死循环API调用无限增长成本不可控分支因子、递归深度随意无法提前预算计算开销延迟方差大不同输入的代码差异巨大生产环境SLA无法保证论文给了一个真实数据普通RLM的延迟最大/最小比值达到8.9×而λ-RLM只有4.3×。️ λ-RLM 框架设计核心理念关注点分离λ-RLM把计算分成三层每层做自己擅长的事┌─────────────────────────────────┐ │ Layer 3: 符号控制层确定性 │ ← Split, Map, Filter, Reduce... │ 决定怎么拆、怎么合 │ 数学保证终止、成本可算 ├─────────────────────────────────┤ │ Layer 2: 规划优化层 │ ← 选择最优分块大小 k* │ 决定拆多大块 │ 基于成本公式求最优解 ├─────────────────────────────────┤ │ Layer 1: 神经叶子求解器 │ ← LLM (ℳ) │ 处理短文本的语义理解 │ 擅长的事 └─────────────────────────────────┘关键洞察是LLM擅长语义理解给一段短文本回答问题但不擅长程序控制写递归、管理状态。λ-RLM把后者交给符号系统前者留给LLM。组合子库论文定义了一组核心组合子combinators每个都有精确的类型签名组合子类型功能SplitΣ∗×N→[Σ∗]\Sigma^* \times \mathbb{N} \to [\Sigma^*]Σ∗×N→[Σ∗]将长文本切成k个连续块PeekΣ∗×N2→Σ∗\Sigma^* \times \mathbb{N}^2 \to \Sigma^*Σ∗×N2→Σ∗按位置提取子串Map(α→β)×[α]→[β](\alpha \to \beta) \times [\alpha] \to [\beta](α→β)×[α]→[β]对每个块执行操作Filter(α→B)×[α]→[α](\alpha \to \mathbb{B}) \times [\alpha] \to [\alpha](α→B)×[α]→[α]过滤满足条件的块Reduce(β×β→β)×[β]→β(\beta \times \beta \to \beta) \times [\beta] \to \beta(β×β→β)×[β]→β将列表归约为单个值Cross[α]×[β]→[(α,β)][\alpha] \times [\beta] \to [(\alpha,\beta)][α]×[β]→[(α,β)]笛卡尔积处理成对比较ℳΣ∗→Σ∗\Sigma^* \to \Sigma^*Σ∗→Σ∗神经预言机调用LLM处理子问题这些组合子就像乐高积木——每块形状固定但组合方式灵活。不同任务通过不同的组合方式实现任务类型复杂度执行计划S-NIAH大海捞针O(1)Split→Map(Peek)→Filter→Map(ℳ)OOLONG线性推理O(n)Split→Map(ℳ)→MergeOOL-Pairs成对推理O(n²)Split→Map(ℳ)→Parse→Filter→CrossCodeQA代码理解VariableSplit→Map(ℳ)→BestY-Combinator把递归变成数学对象这是论文标题中Y-Combinator的由来。在λ演算中Y-组合子是实现递归的标准方式——它把递归编码为一个不动点而不是依赖运行时的函数调用栈。具体来说λ-RLM的递归结构是如果输入长度n≤τ∗n \leq \tau^*n≤τ∗LLM的有效窗口直接调用ℳ处理否则Split成k∗k^*k∗块对每块递归调用。因为每一层输入长度缩减为n/k∗n/k^*n/k∗递归深度被严格限制在d⌈log⁡k∗(n/τ∗)⌉d \lceil \log_{k^*}(n/\tau^*) \rceild⌈logk∗​(n/τ∗)⌉。形式化保证这是λ-RLM相比普通RLM的核心优势——可证明的终止和成本边界终止定理对任何有限输入∣P∣n|P|n∣P∣n函数Φ\PhiΦ必然终止。总ℳ调用次数N(n)(k∗)d1N(n) (k^*)^d 1N(n)(k∗)d1。成本上界T(n)≤nk∗τ∗⋅C(τ∗)C⊕(k∗)⋅nk∗−τ∗τ∗(k∗−1)T(n) \leq \frac{nk^*}{\tau^*} \cdot \mathcal{C}(\tau^*) \mathcal{C}_\oplus(k^*) \cdot \frac{nk^* - \tau^*}{\tau^*(k^* - 1)}T(n)≤τ∗nk∗​⋅C(τ∗)C⊕​(k∗)⋅τ∗(k∗−1)nk∗−τ∗​准确率缩放最关键的理论结果直接推理Adirect(n)Θ(ρn/K)→0\mathcal{A}_{\text{direct}}(n) \Theta(\rho^{n/K}) \to 0Adirect​(n)Θ(ρn/K)→0指数衰减λ-RLM最坏情况Aλ-RLM(n)Ω(n−c)\mathcal{A}_{\lambda\text{-RLM}}(n) \Omega(n^{-c})Aλ-RLM​(n)Ω(n−c)幂律衰减慢得多λ-RLM可分解任务Aλ-RLM(n)≥A(τ∗)\mathcal{A}_{\lambda\text{-RLM}}(n) \geq \mathcal{A}(\tau^*)Aλ-RLM​(n)≥A(τ∗)常数不随长度衰减直觉解释如果一个任务可以被完美分解每块独立回答合并无损那么无论原始输入多长λ-RLM的准确率等于LLM处理一小块的准确率——长度不再是瓶颈。最优分块定理在标准成本假设下成本最小的分块大小k∗2k^* 2k∗2二分法最优。 实验结果实验设置9个模型3个家族Qwen3、Llama、Mistral× 3个规模弱/中/强从7B到405B4个任务S-NIAH大海捞针、OOLONG线性推理、OOL-PairsO(n²)成对推理、CodeQA代码理解上下文长度8K到4.2M token对比方案Direct直接推理、RLM普通递归、λ-RLM主实验结果图1左图为准确率对比右图为延迟对比。λ-RLM红色在弱模型上提升最大21.9pp延迟降低3.3~4.1倍。按模型规模的平均结果模型规模DirectRLMλ-RLMλ-RLM vs RLM弱8B/7B6.1%13.8%35.7%21.9pp中32B18.1%31.3%49.9%18.6pp强235B22.3%50.1%58.9%8.8pp一个亮眼的发现Qwen3-8B λ-RLM35.7%几乎追平 Llama-70B RLM36.1%而延迟快3.1倍。换句话说λ-RLM让8B小模型在长上下文推理上达到了70B模型的水平。胜率统计模型层级λ-RLM胜出RLM胜出胜率弱8B/7B12/120/12100%中32B11/121/1292%强235B6/126/1250%规律很清晰模型越弱λ-RLM的优势越大。对于强模型405B、235B普通RLM的自由代码生成能力足够强λ-RLM的结构化约束反而限制了发挥——特别是在CodeQA这类需要灵活代码导航的任务上。延迟分析任务RLM平均延迟λ-RLM平均延迟加速比S-NIAH~140s~40s3.6×OOLONG~200s~55s4.2×OOL-Pairs~270s~43s6.2×CodeQA~170s~61s3.1×OOL-Pairs的加速比最大6.2×因为O(n²)的成对比较在RLM中需要大量嵌套循环而λ-RLM用Cross组合子一步搞定。消融实验Qwen3-8B × OOLONG消融项准确率延迟Δ准确率完整λ-RLM48.3%62.4s—A1: 随机分块k∈[2,100]31.5%88.7s−16.8ppA2: 固定任务类型41.2%65.1s−7.1ppA3: 用LLM做合并非符号43.6%108.3s−4.7ppA4: 让LLM自由写代码RLM24.1%241.6s−24.2ppA5: 去掉预过滤46.8%74.2s−1.5pp最关键的消融是A4把组合子库去掉让LLM回到自由写代码的状态——准确率暴跌24.2个点延迟飙升4倍。这证明了组合子库是整个框架的基石。 深入分析λ-RLM为什么在弱模型上效果更好弱模型7B/8B写代码的能力差经常生成语法错误、逻辑漏洞、死循环的递归代码。λ-RLM完全绕过了代码生成只让弱模型做语义理解给一段短文本回答问题——这恰恰是弱模型还行的部分。相当于用结构化框架补偿了弱模型的编程短板。强模型405B的代码能力本身就很强能写出精巧的自适应分块策略——比如在CodeQA中按函数边界切分、自适应调整批大小——这些灵活性被λ-RLM的固定组合子库截断了。与原始RLM的本质区别维度普通RLMλ-RLM控制流LLM生成的Python代码预定义的类型化组合子终止保证无可能死循环有递归深度≤⌈log⁡k∗(n/τ∗)⌉\leq \lceil \log_{k^*}(n/\tau^*) \rceil≤⌈logk∗​(n/τ∗)⌉成本预算不可预知执行前可计算闭式上界延迟方差高max/min 8.9×低max/min 4.3×灵活性高任意代码低固定组合子库对模型能力的依赖高需要强代码能力低只需语义理解 批判性思考亮点理论功底扎实4个定理推论从终止性到成本界到准确率缩放律形式化做得很漂亮。特别是可分解任务准确率不随长度衰减这个结论很有指导意义实验覆盖面广9个模型 × 4个任务 × 多个长度36个cell的对比足够撑起结论实用价值明确8B追平70B、延迟降4倍——对于预算有限的部署场景很有吸引力局限组合子库的覆盖面Split/Map/Filter/Reduce/Cross这些组合子覆盖了分治范式的大部分场景但对需要迭代推理如多跳推理需要前后文信息传递或动态控制流的任务固定组合子可能力不从心任务计划的选择论文中的执行计划比如S-NIAH用Split→Filter→Map(ℳ)是人工设计的不是自动发现的。实际部署时谁来写这些组合计划论文没有展示自动任务分类和计划生成的完整pipelineCodeQA上的明显短板在需要灵活代码导航的CodeQA任务上4个强模型cell中λ-RLM全部输给RLM。这说明在需要理解代码结构的场景中固定粒度的Split切分远不如LLM自适应按函数/类边界切分表格数据的可复现性论文声称开源但我未能验证。9个模型中包括405B这样的大模型复现成本极高与同期工作的关系原始RLM论文Zhang et al., 2025是λ-RLM的直接前置工作。QwenLong-L1Wan et al., 2025从RL角度做长上下文推理增强思路不同但目标一致。λ-RLM的独特之处在于它不训练任何东西——纯粹是推理时的结构化框架即插即用。 工程启示弱模型强框架 强模型弱框架在长上下文场景下与其用昂贵的大模型直接推理不如用廉价的小模型搭配λ-RLM这样的结构化框架。8Bλ-RLM ≈ 70BRLM成本差距可能是10倍分治是长上下文推理的关键范式无论是RLM还是λ-RLM核心思路都是分而治之。在工程实践中遇到超长输入不要直接塞给模型先想想能不能拆成本可预算性在生产环境中至关重要λ-RLM的闭式成本上界允许在执行前就知道这个请求最多花多少钱/多长时间——这对于定价、SLA设置、资源预分配都很有价值灵活性和可靠性的取舍RLM更灵活但不可控λ-RLM更可控但不灵活。实际部署可以做混合策略对于可分解的标准化任务用λ-RLM对于需要灵活导航的任务用RLM觉得有启发的话欢迎点赞、在看、转发。跟进最新AI前沿关注公众号机器懂语言