递归语言模型是什么?
Source: Dev.to
请提供您希望翻译的正文内容,我将为您翻译成简体中文并保留原有的格式、Markdown 语法以及技术术语。谢谢!
获取 Data Lakehouse 书籍
- Apache Iceberg: The Definitive Guide
- Apache Polaris: The Definitive Guide
- Architecting an Apache Iceberg Lakehouse
- The Apache Iceberg Digest: Vol. 1
Lakehouse Community
- 加入 Data Lakehouse 社区
- Data Lakehouse 博客汇总
- OSS 社区列表
- Dremio Lakehouse 开发者中心
Source: …
递归语言模型 (RLM)
递归语言模型(Recursive Language Models,RLM)是一类会调用自身的语言模型。
起初听起来很奇怪,但思路很简单:模型不是一次性回答问题,而是把任务拆分成更小的部分,然后向自己提出这些子问题。它一步一步构建答案,在此过程中使用结构化的函数调用。
RLM 与标准 LLM 的区别
典型模型会直接根据提示预测完整的响应。如果任务包含多个步骤,模型必须在单一的文本流中处理所有步骤。这在短任务上可能有效,但当模型需要记住中间结果或多次复用相同逻辑时,往往会出现问题。
RLM 不会一次性完成所有工作。它在自己的输出中写入并执行结构化调用——比如 CALL("question", args)。系统看到此调用后,会暂停主响应,评估子任务,然后将结果插入并继续。它形成了一个递归循环:模型既是规划者也是执行者。
这为 RLM 带来了动态记忆和控制流。它们可以:
- 停止、规划,并以新输入重新进入自身
- 合并多个子任务的结果
- 复用自己的逻辑
正是这些特性让它们强大,并且与大多数模型今天使用的静态提示方法根本不同。
为什么标准 LLM 在多步骤任务上表现不佳
语言模型擅长表现得很聪明。但当任务涉及相互依赖的多个步骤时,标准模型往往会失败,因为它们把所有内容一次性生成。
- 没有内置的暂停或模块化推理过程的方式
- 缺乏显式结构——只有一长串文本
提示工程(例如“逐步思考”或“展示你的推导过程”)可以提升结果,但它并未改变模型的运行方式。模型仍然在一次会话中生成所有内容,缺乏模块化或复用逻辑的内置机制。
RLM 能带来什么
递归语言模型把复杂任务视为程序。模型不仅仅是回答——它会写出类似代码的调用给自己。这些调用实时评估,其结果再折回到响应中。
好处
- 复用自己的逻辑
- 一次专注于任务的一个部分
- 扩展到更深或更递归的问题
换句话说,RLM 解决了结构化问题。它为语言生成引入了可组合性和控制——这是大多数 LLM 仍然缺乏的两件事。
核心 RLM 循环
生成 → 检测 → 调用 → 重复
-
模型收到提示。
-
开始生成响应。
-
当遇到子任务时,输出结构化函数调用,例如:
CALL("Summarize", "text goes here") -
系统暂停,评估该调用(将其再次送入同一模型),得到结果。
-
将结果插入,原始响应继续。
这个过程可以发生一次,也可以在单个响应中出现数十次。

具体示例
假设你让 RLM 解释一篇复杂的技术文章。模型不会一次性尝试总结整篇,而是可能:
- 拆分文章为多个章节。
- 发起递归调用,分别总结每个章节。
- 合并这些片段,形成最终答案。
实际新颖之处是什么?
- 模型不只是生成文本;它在控制执行。
- 每个函数调用都是显式且机器可读的,而不是隐藏在普通文本中。
- 模型学习何时将子任务委派给自己,而不仅仅是说什么。
这种设计引入了模块化推理——更接近编程而非单纯提示。它使 RLM 能够解决比传统 LLM 更长、更深、更具组合性的任务。
RLMs vs. Reasoning Models
要把递归语言模型(Recursive Language Models)和专门用于推理的模型混淆是很容易的。两者都旨在解决更困难的、多步骤的问题,但它们走的路径截然不同。
| 方面 | 推理模型 | 递归语言模型 |
|---|---|---|
| 目标 | 在固定回复中“更好地思考” | 改变模型的运行方式 |
| 机制 | 提示技巧(“让我们一步一步思考”),微调,架构调整 | 结构化函数调用、真实控制流、递归 |
| 执行 | 一次性生成完整输出(平坦、线性) | 可以暂停,发出子调用,重新进入,并逐步构建结果 |
| 透明性 | 难以检查内部步骤 | 每个递归调用都是显式的;你可以看到完整的操作树 |
| 类比 | 写出更好的作文 | 编写并运行程序 |
推理模型试图写出更好的作文。RLMs 编写并运行程序。
因为 RLMs 暴露了每一次子调用,它们更易于检查和调试。你可以准确看到模型提出了什么问题,给出了什么答案,以及它如何组合这些结果——这种透明度在典型的 LLM 工作流中很少见。
更大的图景
- 推理模型 拓展了静态提示的极限。
- 递归语言模型 重新定义 模型在运行时能做的事情。
递归不仅仅是技术升级——它是语言模型能力的转变。通过递归,模型不必一次性猜出完整答案。它们可以 逐步构建,根据需要重复使用自身的能力。这解锁了标准模型难以实现的新行为。
递归语言模型(RLM)——它们为何重要
递归如何帮助不同任务
- 逻辑谜题 – 与其对完整解答进行穷举,递归语言模型可以写出每条规则,评估子情况,并合并结果。
- 数学文字题 – 模型将复杂问题拆分为多个步骤,递归地解决每一步,并验证中间答案。
- 代码生成 – 递归语言模型可以起草一个函数,然后自行调用来编写测试用例、修复错误或生成辅助函数。
- 证明生成 – 在定理证明中,递归使模型能够构建证明树,并在过程中检查较小的引理。
实验结果: 在论文的实验中,递归语言模型在多步骤基准上超越了非递归基线,并且更高效。递归调用减少了总 token 使用量,因为模型可以复用逻辑,而不是重复它。
超越准确性——效率与可组合性
- 递归不仅提升准确性;它还能改善效率和可组合性。
- 与其随问题规模线性增长,递归语言模型可以通过解决更小的子问题并复用解答,实现对数级别的扩展。
- 这使它们更适合推理深度快速增长的任务——正是大型语言模型在实际应用中开始遇到的问题类型。
当前 LLM 生态
大多数语言模型仍然遵循一个简单的模式:
Input → Output
这在快速回答或轻量任务时有效,但面对复杂任务时就力不从心。
如今开发者在 LLM 之上构建代理、链式调用和工具使用系统。这些包装器模拟结构,但往往脆弱,因为它们依赖于:
- Prompt hacking(提示破解)
- 正则表达式解析
- 外部编排
为什么 RLM 提供更简洁的路径
- 更少的组件 – 无需外部链或自定义路由逻辑;模型自行决定何时以及如何分支。
- 更高的透明度 – 每一次递归调用都是可见且可追踪的,便于逐步审计。
- 更好的泛化能力 – 一旦训练出使用递归的能力,模型即可在数学、代码、推理、规划等多个领域灵活应用。
展望未来
- 递归语言模型仍处于早期阶段,但它们暗示了一种更广泛的转变:将模型视为不仅是生成器,而是运行时环境。
- 这为未来系统打开了大门,使模型能够自行规划、行动和适应,并在每一步背后拥有清晰的结构。
如果说过去几年是让 LLM 听起来更聪明,那么接下来的几年可能是让它们用结构思考。
核心理念
递归语言模型不仅是对现有 LLM 的微调;它们代表了一种模型运作方式的转变。
- 与其把每个任务视为一次性预测,递归语言模型将问题拆分为多个部分,递归求解并合并结果。
- 这赋予它们大多数语言模型仍然缺乏的东西:结构。
为什么结构重要
- 使模型在复杂任务上更可靠。
- 让推理过程更易追踪。
- 在无需复杂外部系统的情况下,实现新能力——规划、验证、适应等。
结论
递归语言模型不仅提供更好的答案;它们让更优秀的模型成为可能——流畅、递归、模块化,并且能够处理深度。