← 返回 2026-08-20

循环语言模型提升组合式工具调用 Looped Language Models Improve Compositional Tool Calling

Andrei Cristian Popescu, Haitz Sáez de Ocáriz Borde, Pietro Liò 📅 2026-08-17 👍 17 2026-08-25 18:30
AI Agent 工具调用 循环Transformer 测试时计算 自适应推理

循环语言模型在组合式工具调用上优势显著,自适应推理带来更优的计算-性能权衡

前置知识

循环Transformer(Looped Transformer)

一种将同一组 Transformer 层反复应用的架构:给定初始隐表示 $h^{(0)}$,每次循环迭代执行 $h^{(t)} = F_\theta(h^{(t-1)})$,共享输出头在每轮产生预测 $\pi^{(t)}_\theta(y|x) = g_\theta(h^{(t)})$。它把推理时计算量与参数量解耦:参数固定,迭代次数可变,相当于给模型逐 token「逐步加深思考」的机会。思想源头包括 Universal Transformer、Deep Equilibrium Models 和 ALBERT。

本文所有实验都围绕「循环深度」这一变量展开,只有理解这个机制才能明白固定深度消融、自适应退出分别在测什么,以及为什么它能把测试时计算与参数规模分开。

组合式工具调用(Compositional Tool Calling)

论文把工具调用形式化为有向无环图 $G_x=(C_x, E_x)$:节点 $c_k=(f_k, a_k)$ 是一次调用(函数名加参数),边 $(c_i,c_j)$ 表示 $c_j$ 依赖 $c_i$ 的输出,即 $a_j = \phi_j(x, o_{i_1},...,o_{i_m})$。单调用任务 $|C_x|=1$;无依赖的多调用可并行($E_x=\emptyset$);嵌套依赖调用构成层级执行链。BFCL 考察节点级预测与并行组合,NESTful 专门考察依赖结构。

论文的核心论点是循环计算恰恰在 $E_x \neq \emptyset$ 的依赖型、组合型任务上收益最大。这个形式化是理解三个基准差异、读懂各实验结论的钥匙。

自适应计算与提前退出(Adaptive Computation / Exit Gate)

循环模型可在每个 token 上动态决定迭代次数:Ouro 训练一个退出分布 $p_\phi(t|x)$,推理时一旦累计退出概率超过阈值 $q$ 就停止循环。简单预测早退出省算力,困难预测多迭代提精度,从而改善成本-准确率前沿。这一思想可追溯到 ACT(Pondering Networks)等自适应计算时间方法。

论文发现自适应推理能用更少的平均循环深度匹配甚至超过最佳固定深度操作点,这是循环架构相对固定深度模型的独特工程价值,也是 Figure 4 的核心内容。

匹配条件下的监督微调与 LoRA

SFT 指在指令数据上继续训练以对齐特定输出格式;LoRA 是参数高效微调方法,冻结原权重、只训练低秩增量(本文 rank=32)。本文所有受控模型用完全相同的 SFT 配方:Hermes 函数调用数据集、ChatML 格式、AdamW、学习率 $2\times10^{-5}$、2 个 epoch、单张 A100 80GB——目的是让循环与非循环模型的差异只归因于架构。

「匹配微调条件下的循环 vs 非循环」是本文因果结论的基础,读者需要知道这一对照是如何构造的,才能评估结论的说服力与局限。

循环改造(Retrofitting)

指把预训练好的普通 Transformer 后改造为循环模型:对 Llama-3.2-1B、OLMo-2-1B 骨干插入共享循环块,训练时每个 batch 从 Poisson-lognormal 分布采样循环数 $r \sim D_{\mathrm{PLN}}$,只在最终 readout 上算交叉熵,并加 $\beta=0.1$ 的 KL 项约束输出贴近冻结的原模型 $p^0_\theta$,防止改造后灾难性遗忘。

改造实验让「同一骨干 ± 循环」的对比成为可能,比跨家族比较更能隔离架构效应;而它在深嵌套任务上的失败也正是论文局限分析的关键素材。

研究动机

大语言模型正越来越多地充当 agent 系统中的决策组件,负责选择并调用外部工具。简单请求只需一次函数调用,但复杂任务要求模型组合多个调用、维护中间状态、协调串行与并行依赖——可靠的工具使用不只是产出一条看似合理的调用,而要在多次决策之间构造并保持结构化的动作序列。现有工作主要通过外部手段增强组合能力:把任务分解为可执行工作流、从大工具库检索相关 API、构建依赖感知的执行图来调度串并行调用,模型本身仍是单遍前向。与此同时,循环语言模型(循环深度架构)在算法推理、长度泛化、自适应计算和潜在测试时扩展等方向已展现潜力,但它们对 agentic 工具使用的影响几乎无人研究:迭代精炼潜表示是否能帮助模型在跨多步决策时保持调用结构,是一个明显的空白。

本文的目标是本文的目标是在受控条件下系统回答:循环(迭代潜空间)计算能否提升组合式工具调用?具体拆成四个可检验的子问题。第一,在相同监督微调配方下,原生循环模型 Ouro-1.4B/2.6B 是否优于同规模非循环基线(Qwen3-1.7B/4B、Llama-3.2-3B),并与更大的公开指令模型(至 8B)对照;第二,把循环改造进 Llama-3.2-1B 和 OLMo-2-1B 后,与各自非循环父模型相比是否获益,以直接隔离架构效应;第三,固定参数、只改推理时的循环深度(Ouro 1–4,改造模型 1/2/4/8),多步工具调用性能是否随深度上升,从而把收益归因于循环计算本身而非训练差异;第四,自适应退出能否比固定深度获得更好的计算-性能权衡。评测覆盖单调用、多调用并行与嵌套依赖三类结构。

与已有工作不同的是,本文的独特之处在于接通了此前互不相交的两条研究线。工具调用方向的工作都在模型外部做文章——加规划器、检索器或执行图调度器;循环模型方向的工作几乎停留在算法推理与合成任务,未触及真实 API 编排。本文不引入任何外部模块,而是问:让模型在潜空间里多迭代几轮,是否内生地改善结构化多步决策?方法设计上有两个互补对照:一是跨家族的匹配 SFT 比较(同数据、同优化配方、同 LoRA 配置),二是共享骨干的改造实验(Llama-3.2-1B/OLMo-2-1B 各自的循环与非循环版本),后者比跨家族比较更能把差异归因于架构本身;再配合「参数固定、只调推理深度」的消融,把训练带来的收益与推理时循环计算本身的收益干净地分开。

核心方法

直觉上,循环语言模型相当于每生成一个 token 前给模型多次「打草稿」机会:同一块 Transformer 层反复精炼隐表示 $h^{(t)} = F_\theta(h^{(t-1)})$,简单预测可早退出、困难预测多迭代,不增参数而增加测试时计算。技术路线分两类:原生循环的 Ouro-1.4B/2.6B 学习每 token 退出分布 $p_\phi(t|x)$,损失 $\mathcal{L} = \sum_{t} p_\phi(t|x)\,\mathcal{L}^{(t)}_\theta(x) + \beta\,\mathrm{KL}(p_\phi\|\pi)$,$\beta=0.1$,$\pi$ 为深度均匀先验;改造模型(Llama-3.2-1B、OLMo-2-1B)每 batch 从 Poisson-lognormal 分布采样 $r\sim D_{\mathrm{PLN}}$,只在最终 readout 算交叉熵,并以 $\beta=0.1$ 的 KL 项贴近冻结原模型。所有受控模型在同一份 Hermes 数据上用 LoRA(rank 32)同超参微调,保证公平对比。

核心创新有三点。第一,研究问题的转移:首次系统检验「潜空间迭代精炼」对 agentic 工具调用的价值,而非算法推理。与外部规划方法的本质区别在于——不检索、不建执行图,而是让模型通过额外循环自行修正函数选择、调用结构与依赖绑定。论文的定性分析(Figure 5)显示这种修正是语义级的:模型在浅深度时引用工具目录中不存在的函数、丢失依赖调用,深度 3 后恢复出完整的两步序列和正确的 $var1.output_0$ 输出-输入引用,之后输出不再变化。第二,对照设计的严谨性:跨家族匹配 SFT 之外,用共享骨干的改造实验直接隔离架构变量;再用固定参数、只变推理深度的消融区分「训练带来的收益」与「循环计算本身的收益」。第三,自适应退出把循环深度变成按 token 难度分配的可调资源,这是固定深度 Transformer 结构上做不到的,也是循环模型相对单遍大模型的差异化卖点。

方法步骤详情

流程分五步。第一步训练:Hermes 数据集,ChatML 加 Hermes JSON 协议,序列长 4096,2 epochs,AdamW $2\times10^{-5}$,cosine 加 3% warmup,LoRA rank 32,bf16,单张 A100 80GB;Ouro 用多深度加权损失,改造模型采样 $r\sim D_{\mathrm{PLN}}$。第二步评测:BFCL v3 报 AST 语义准确率(Simple/Multiple/Parallel/Parallel-Multiple 四类);NESTful 报 Win Rate 及各项 F1;API-Bank 报 Call Correctness、Exact 与 Parse。第三步固定深度消融:Ouro 深度 1–4、改造模型 1/2/4/8,参数不动只改迭代次数。第四步自适应推理:用 Ouro 退出门,每 token 累计退出概率超过 $q\in\{0.1,0.3,0.5,0.7,0.8\}$ 即退出,记录平均循环深度。第五步定性分析:逐深度对比 NESTful 输出,检查函数有效性、调用结构与变量引用。

技术新颖性

技术新颖性体现在四个层面。其一,评测问题的首创性:虽然循环模型的理论优势(长度泛化、自适应计算)已被多次验证,但在 API-Bank、BFCL、NESTful 这类真实工具调用基准上的系统对照此前不存在,本文给出了第一个「匹配训练条件 + 共享骨干改造 + 推理深度消融」的三重证据链。其二,改造协议的严谨性:训练时用 $\beta=0.1$ 的 KL 项把循环模型输出约束在冻结原模型附近,既保住预训练能力又引入循环,这种受约束的后改造方案为社区提供了可复用的 recipe。其三,把「组合复杂度」作为分析轴:论文用 $|C_x|$(调用数)和 $E_x$(依赖边)的形式化把三个基准统一起来,得出「循环收益与结构复杂度正相关、与单调用精度关系不大」的细粒度结论,而非一个笼统的总分。其四,诚实的成本核算框架:同时报告任务性能与平均每 token 循环深度,并引入推理成本相近的 8B 指令模型作为参照上界,使「性价比」论断可检验。

实验结果

核心发现有四条线。其一,组合类任务优势显著:BFCL v3 上 Ouro-2.6B SFT 总体 86.4%(Parallel 类 83.0%),同配方 Qwen3-4B SFT 仅 56.7%(Parallel 2.5%)、Qwen3-1.7B SFT 仅 40.7%;改造同向:Looped Llama-3.2-1B 32.9% 对非循环 21.4%,OLMo-2-1B 41.8% 对 39.1%。其二,NESTful 上 Ouro-2.6B SFT Win Rate 0.371,超过 Qwen3-8B Instruct 的 0.345;改造循环 Llama 受益于深度但绝对水平弱于原生循环模型。其三,单调用为主的 API-Bank 差异小:Ouro-2.6B 79.9 Call/77.1 Exact 与 Qwen3-8B 相当,OLMo 循环版 Call 34.0 反低于非循环 37.1。其四,BFCL 准确率随固定深度上升、组合类增益最大且 Simple 类早饱和,NESTful Win Rate 亦随深度上升;自适应退出以更低平均深度匹配或超过最佳固定深度点。

BFCL semantic AST correctness (%; higher is better)
Table 1: BFCL semantic AST correctness (%; higher is better)
NESTful official evaluation (higher is better)
Table 2: NESTful official evaluation (higher is better)
API-Bank evaluation (%; higher is better)
Table 3: API-Bank evaluation (%; higher is better)
BFCL semantic AST accuracy by task category as fixed recurrent depth increases
Figure 2: BFCL semantic AST accuracy by task category as fixed recurrent depth increases
NESTful Win Rate as fixed recurrent depth increases
Figure 3: NESTful Win Rate as fixed recurrent depth increases
Adaptive recurrent computation on BFCL and NESTful
Figure 4: Adaptive recurrent computation on BFCL and NESTful
Iterative refinement across recurrent depths
Figure 5: Iterative refinement across recurrent depths
查看结构化数据
任务指标本文基线提升
BFCL v3(组合式函数调用,AST 语义准确率) Overall / Parallel / Parallel-Multiple Ouro-2.6B SFT:总体 86.4%,Parallel 83.0%,Parallel-Multiple 76.5%;Ouro-1.4B SFT 总体 79.3% 同配方 Qwen3-4B SFT 总体 56.7%(Parallel 2.5%);Qwen3-1.7B SFT 40.7%;公开 Llama-3.1-8B Instruct 26.8% 对同配方最强基线总体提升 29.7 个百分点,Parallel 类提升 80.5 个百分点;Looped Llama-3.2-1B 较非循环版提升 11.5 个百分点(21.4→32.9)
NESTful(嵌套依赖工作流) Win Rate(执行级主指标) Ouro-2.6B SFT 0.371(Parameter F1 0.680);Ouro-1.4B SFT 0.191 Qwen3-8B Instruct 0.345;Qwen3-4B Instruct 0.292;Llama-3.1-8B Instruct 0.073 以小得多的参数量超过最大的 8B 公开指令模型 0.026(约 7.5% 相对提升)
API-Bank(单 API 调用与参数生成) Call Correctness / Exact / Parse Ouro-2.6B SFT 79.9 / 77.1 / 99.7;Ouro-1.4B SFT 75.1 / 70.2 / 97.2 Qwen3-8B Instruct 79.9 / 76.6 / 100.0;OLMo-2-1B SFT 37.1 / 33.2 / 99.5 与 8B 指令模型持平(差距 ≤0.5),但循环改造在此基准无收益:OLMo 循环版 Call 34.0 低于非循环 37.1,说明提升集中于组合类任务
固定深度消融(推理时循环深度扫描) BFCL AST 准确率、NESTful Win Rate 随深度变化 Ouro 深度 1–4、改造模型 1/2/4/8 下准确率总体上升;Simple 类早饱和,Parallel/Parallel-Multiple 与 NESTful 持续受益;Ouro-2.6B 三次迭代后近饱和 各模型深度 1(相当于非循环单遍推理)的操作点 仅靠增加推理迭代(参数不变)即可复现大部分循环优势,证明收益来自循环计算本身而非训练差异
自适应推理(退出阈值 $q\in\{0.1,...,0.8\}$) 性能-平均每 token 循环深度前沿 Ouro-1.4B/2.6B 自适应曲线匹配或略超最佳固定深度点;Ouro-2.6B 在 NESTful 上以更少迭代达到固定深度 4 的 Win Rate 固定深度推理(每 token 统一迭代次数) 以更低的平均计算量达到同等或更高性能,获得更优的计算-性能权衡

局限与改进

作者承认的局限有三条:Ouro 缺少相同预训练条件下的非循环对照,只能用同配方微调的 Qwen3/Llama 近似匹配,跨家族结论有混杂因素;改造实验虽共享骨干、隔离更干净,但改造模型在深嵌套工作流上远弱于原生循环模型(NESTful Win Rate 明显更低),说明循环收益可能取决于预训练时表示的形成方式,事后改造不能完全等效;三个基准均为静态单轮评测,未覆盖 BFCL live 与 multi-turn,无法考察执行失败后的恢复能力。我的补充观察:基线强度存疑——Qwen3-4B SFT 在 Parallel 类仅 2.5%(Base 1.0%)、Qwen3-1.7B SFT 在 NESTful 全零,异常低,可能放大 Ouro 的相对优势;自适应推理只在拥有退出分布的 Ouro 上验证;成本以「平均循环深度」计,缺真实延迟与能耗数据;NESTful 上 0.371 的绝对水平仍低,任务远未解决。

独立分析的弱点

第一,基线可能偏弱:Qwen3-4B SFT 在 BFCL Parallel 类仅 2.5%、Qwen3-1.7B SFT 在 NESTful 全零,差距大到可疑——LoRA rank 32 加两轮 epoch 的轻量配方未必榨干基线潜力,会系统性夸大循环架构优势;应做多种子重复、学习率搜索与全参数微调对照。第二,评测全为静态单轮:真实 agent 需在调用失败后恢复重规划,循环精炼是否助益错误恢复未知;应引入 BFCL live/multi-turn 或交互式环境。第三,API-Bank 上循环可能有害:OLMo 循环版 Parse 从 99.5% 降至 90.7%、Llama-3.2-1B (Loop) 仅 43.4%,说明更多迭代损害格式遵循;可对结构化输出强制浅深度或分析退出分布与格式 token 的关系。第四,成本核算不完整:只报平均循环深度,未换算与 Qwen3-8B 可比的延迟、吞吐与显存;应补等延迟/等能耗对比。第五,改造模型为何无法恢复原生循环在深嵌套任务上的能力只有猜测,缺少 $D_{\mathrm{PLN}}$ 分布、KL 强度等消融支撑。

未来方向

作者提出的方向是把评测扩展到 live、多轮设置(BFCL 的 live 与 multi-turn 类别),让模型必须在一段 episode 内从失败执行中恢复,检验循环计算在动态环境下的价值。在此基础上可以延伸出多条路线:其一,把退出概率 $p_\phi(t|x)$ 用作置信度信号做 agent 自我监控——低置信 token 触发更多迭代甚至触发重新规划,形成显式的「思考预算」机制;其二,在预训练阶段就引入循环而非事后改造,检验改造模型在深嵌套任务上的劣势能否由此消除,并系统研究深度分布与 KL 约束的作用;其三,定量刻画循环深度与任务 DAG 复杂度(调用数 $|C_x|$、依赖边数 $|E_x|$)的关系,让模型根据预测的依赖结构自动分配计算;其四,工程上把循环推理与投机解码、KV 缓存复用结合,摊薄多迭代的推理开销;其五,把结论推广到长程多步任务(如软件工程 agent)与多模态工具调用,检验「循环利于结构保持」这一核心论断的适用边界。

复现评估

论文正文未给出代码或权重链接,开源情况不确定,这是复现的最大变数。有利因素:训练配置披露完整——Hermes 数据集公开,ChatML 加 Hermes JSON 协议明确,4096 序列长、2 epochs、AdamW $2\times10^{-5}$、cosine 加 3% warmup、梯度累积 2、batch 2、LoRA rank 32、bf16、单张 A100 80GB,单次 LoRA 微调数小时即可完成,算力门槛低;三个基准 BFCL v3、NESTful、API-Bank 均有官方公开实现;改造用的 Poisson-lognormal 深度采样来自 McLeish et al. 2025,有开源先例可循。不利因素:Ouro-1.4B/2.6B 原生权重与改造循环检查点是否发布未知,若不可得,复现只能覆盖改造部分(Llama/OLMo ± 循环)与深度消融;自适应推理依赖 Ouro 预训练退出门,外部无法在改造模型上重现。总体判断:改造与消融实验可复现性高,原生循环部分取决于作者放权重。