OoO-Spec:用于快速工具调用的无序语义推测
摘要
介绍了 OoO-Spec,一种通过小型辅助模型以无序方式计算语义槽位来加速 LLM 工具调用的方法,相比自回归解码实现了最高 5.34 倍的加速,并在多个目标和基准测试中超越了现有的草稿模型方法。
arXiv:2608.00814v1 公告类型:新
摘要:LLM 逐个 token 生成工具调用,尽管函数选择和参数值通常可以从请求和工具模式中并行预测。ToolSpec 通过起草模式 token 并检索早期调用来降低这一成本,但无法提出这两个来源中都不存在的请求特定值。我们提出了 OoO-Spec,它通过无序方式计算这些缺失的语义。在请求到达时,一个 Qwen3-0.6B 辅助模型在一个并行的请求级波次中预测函数选择和所有模式定义的参数槽位,而目标模型则开始 ToolSpec 解码。运行时将槽位值合并,将生成的调用渲染为文本,并在后续候选构建轮次中将其暴露。目标模型无阻塞地轮询,使用自己的分词器对就绪的提示重新分词,并仍然是唯一的验证者和提交权威。辅助模型使用 LoRA 在 Qwen2.5-32B 教师轨迹上训练一次,并在 Qwen2.5、Qwen3 和 Llama 目标上保持不变,无需针对特定目标的草稿模型训练。在贪婪批量大小为 1 的解码下,跨越七个完全排名的目标和三个基准测试,OoO-Spec 在所有 21 个目标-基准测试组合中都是所有评估方法中最快的,相比自回归解码实现了 2.46 倍到 5.34 倍的加速,未加权平均为 3.89 倍,而 ToolSpec 为 2.95 倍。在每个可比较的组合中,它也优于所有评估的已发布学习型草稿模型。在 Qwen3-4B、8B、14B 和 32B 目标上,相同的辅助模型平均比 ToolSpec 提升 34.1%。其紧凑的语义负载平均每个请求 85 字节(不包括协议元数据),支持有效的分 GPU 重叠。
查看缓存全文
缓存时间: 2026/08/04 07:44
# OoO-Spec:用于快速工具调用的乱序语义投机
来源:https://arxiv.org/html/2608.00814
###### 摘要
LLM 在生成工具调用时是逐 token 进行的,尽管函数选择和参数值往往可以从请求和工具模式中并行预测出来。ToolSpec 通过草拟模式 token 并检索更早的调用来降低这一成本,但无法提出这两处来源中都不存在的、请求特定的值。我们提出 OoO-Spec,它乱序计算这些缺失的语义。请求到达时,一个 Qwen3-0.6B 侧车(sidecar)在目标模型开始 ToolSpec 解码的同时,以一次并行的请求级波次预测函数选择和所有模式定义的参数槽位。运行时将槽位值连接起来,把生成的调用渲染为文本,并在后续候选构建边界将其暴露给候选构建流程。目标模型非阻塞地轮询、用自身的分词器对就绪的提示重新分词,并且始终是唯一的验证者和提交权威。侧车仅用 LoRA 在 Qwen2.5-32B 教师轨迹上训练一次,并在 Qwen2.5、Qwen3 和 Llama 目标模型上不加修改地使用,无需针对目标模型做草稿模型训练。在七个完整排序的目标模型和三个基准上、贪心 batch-one 解码下,OoO-Spec 在所有 21 个目标–基准组合中都是所有被评估方法里最快的,相对自回归解码达到 2.46×–5.34× 加速,未加权均值为 3.89×,而 ToolSpec 为 2.95×。它在每个可比较的单元格中也优于所有被评估的已发布学习式草稿模型。在 Qwen3-4B、8B、14B 和 32B 目标模型上,同一个侧车平均比 ToolSpec 提升 34.1%。其紧凑的语义载荷(不含协议元数据)平均每个请求 85 字节,支持有效的分 GPU 重叠。
## 1 引言
大型语言模型经常被用于工具调用,反复生成严格、往往较长的函数调用。尽管每次调用都是一个结构化对象,解码器却将其视为一个扁平的 token 序列。因此,自回归解码需要对函数名、字段名、分隔符和参数值中的每个 token 都执行一次目标模型的前向传播。然而,函数和许多参数值通常可以直接从请求和模式中推断出来,远早于解码器到达它们在输出中的位置。因此,目标模型虽然是顺序生成调用的,但其中很多内容本可以更早或并行计算出来。
参见图注 图 1:自回归草拟与乱序投机。上图:自回归草稿模型逐个 token 提出建议,而乱序草稿模型并行解析独立的槽位。下图:侧车与目标模型时间线并行运行,并将其结果作为提示交给投机解码,作为额外的候选草稿。投机解码通过提出多个未来 token 并用目标模型一起验证来降低这种串行成本(Leviathan 等 2023;Chen 等 2023)。EAGLE-3、PARD-2 和 DFlash 等学习式草稿模型可以产生强有力的建议,但它们的检查点或建议接口与特定目标模型紧密绑定(Li 等 2025;An 等 2026;Chen 等 2026)。其他方法通过复用提示、生成历史或模式中的 token 来避免训练目标特定的草稿模型(Saxena 2023;Luo 等 2025;Hu 等 2024)。ToolSpec 专门建立在工具调用的两个性质上:大多数输出 token 由模式固定,且相似调用会在请求间重复出现(Xia 等 2026)。它使用有限状态机(FSM)在模式 token 填充与可变字段的投机生成之间交替,并检索相似的历史完整调用作为额外候选草稿。目标模型将这些候选打包成一棵树,并在重复的解码轮次中验证它们。
然而,ToolSpec 只能复用已经存在的东西:模式 token 和历史调用中检索到的值。对于当前请求新出现的值,仍然回退到自回归解码。填补这一空白带来了三个挑战。(1)生成未见过的值。模式填充提供语法,而检索只能复用早期调用。提议者必须推断出新的请求特定值。(2)并行生成。正如我们观察到的,语义字段不必按文本顺序计算。提议者必须在不阻塞目标模型的情况下并行运行,这样它的延迟才不会进入解码路径。(3)随时可用。并发提议会在目标模型解码过程中一个不可预测的时刻就绪,而目标模型从不等待它。为了充分利用并发性,系统必须能够在提议无论何时就绪时都加以使用。
基于这些观察和挑战,我们提出 OoO-Spec,一个用于工具调用的异步语义投机系统。如图 1 所示,一个轻量级侧车将函数和参数值作为独立槽位并行、乱序地解析,而目标模型则立即开始解码循环。一旦就绪,侧车的输出就作为当前请求的语义提示,加入后续某个候选构建边界。目标模型从不等待该提示,并且仍然负责验证和提交每个 token。
我们的侧车是 Qwen3-0.6B(Yang 等 2025)加上一个在 Qwen2.5-32B 教师轨迹上训练的 LoRA 适配器(Qwen Team 2024;Hu 等 2022)。我们在所有目标和负载中不加修改地复用这个侧车——基础草稿模型和适配器一起。这种可移植性适用于学习式提议者;每个目标模型保留自己的 ToolSpec 集成、分词器和冻结的渲染策略。侧车只返回请求级语义字符串,因此它可以服务于每个目标模型,并能在独立设备上异步运行。
我们在 API-Bank、ToolAlpaca 和 BFCL 上评估来自 Qwen2.5、Qwen3 和 Llama 家族的七个目标模型,采用贪心 batch-one 解码(Li 等 2023;Tang 等 2023;Patil 等 2025;Llama Team 2024)。在所有 21 个目标–负载组合中,OoO-Spec 都是最快且适用的方法,相对自回归解码最高达到 5.34× 加速;其平均加速为 3.89×,而 ToolSpec 为 2.95×。与已发布的学习式草稿模型——EAGLE-3、PARD-2 和 DFlash——相比,OoO-Spec 在 Llama-3.1-8B 和 Qwen3-4B/8B/14B 的每个可比较单元格中都领先。使用同一个侧车,随着目标模型增大,相对 ToolSpec 的收益不会缩小:在 Qwen3 4B、8B、14B 和 32B 上,OoO-Spec 的每目标整体加速分别超过 ToolSpec 27.1%、31.0%、40.9% 和 37.3%,平均为 34.1%。
我们的贡献是:
- 我们为工具调用引入了乱序语义投机:侧车在其文本位置之前计算模式定义的函数和参数值,同时目标模型继续按顺序提交 token。
- 我们让侧车的提议无论何时就绪都能被使用:ToolSpec 中的每个候选构建边界都是一个接入机会,因此在生成中途到达的提议仍然能加速尚未提交的 token。
- 我们证明一个 Qwen3-0.6B 侧车可以在不同目标规模、模型家族和三个工具使用负载之间迁移,无需针对每个目标模型训练草稿模型,且侧车与通信成本都计入端到端时间。
## 2 相关工作
#### 学习式投机解码。
经典投机解码使用一个较小的自回归模型草拟 token 延续,随后由目标模型验证(Leviathan 等 2023;Chen 等 2023)。后来的方法减少了草拟的串行深度。Medusa 用额外的解码头预测多个未来位置,而 EAGLE 和 EAGLE-3 从目标对齐的特征构造提议(Cai 等 2024;Li 等 2024,2025)。PARD-2 和 DFlash 进一步用目标对齐或扩散式草稿模型并行化块级草拟(An 等 2026;Chen 等 2026),语义感知的变体则探测目标模型的内部状态(Dong 等 2026),同样只绑定到某一个目标模型的表示上。然而,所有这些方法都需要为它们服务的每个目标模型训练一个专用草稿模型,成本很高。相比之下,OoO-Spec 草拟的是模式定义的语义字符串,因此一个冻结的侧车无需针对目标模型重新训练就可以服务多个目标模型。
#### 免训练与基于检索的草拟。
另一条工作线通过复用推理时已有的 token 来避免训练目标特定的草稿模型。Prompt Lookup Decoding 检索重复的提示片段,Token Recycling 从观察到的 token 转移中构建候选,SAM-Decoding 使用后缀自动机检索延续(Saxena 2023;Luo 等 2025;Hu 等 2024)。ToolSpec 通过模式驱动的草拟和历史调用检索,将这种方法专门化到函数调用上(Xia 等 2026),详见第 3 节。尽管这些来源很有效,但其中任何一个都无法提供从未在模式、上下文或历史中出现过的请求特定值。
## 3 预备知识
参见图注 图 2:OoO-Spec 中的在线推理。侧车的槽位预测被连接并渲染成一个提示库,在候选构建边界处进入 ToolSpec 的检索,同时不阻塞目标模型;只有目标模型验证器提交输出 token。
#### 目标模型权威。
设 x 为请求,y_{<t} 为目标模型已经提交的前缀。在贪心解码下,下一个提交的 token 是
y_t = arg max_v p_T(v | x, y_{<t})。 (1)
投机方法改变的是哪些延续被放在一起评估,从而影响每步接受多少 token 以及最终延迟。只有目标模型能扩展 y_{<t} 并决定输出。
#### ToolSpec 解码循环。
ToolSpec 将目标模型验证的投机专门化到函数调用上(Xia 等 2026)。它维护两个提议来源。一个由工具模式编译而来的有限状态机跟踪调用当前所处的区域,并提供字段名和分隔符等受约束的脚手架。历史调用为可变区域提供检索到的延续。在每一轮中,ToolSpec 将两个来源合并为一个候选树,并用目标模型进行评估。目标模型提交最长的已批准前缀。如果解码继续,ToolSpec 会根据迄今已提交的所有 token 构建下一棵树。
我们把每次构建新树的点称为 *候选构建边界*。这些边界在一次调用中反复出现。因此,后面的轮次可以包含解码开始时不可用的候选,而目标模型已经提交的 token 保持不变。我们的方法利用这个反复出现的构建步骤,增加一个其提议可能在解码开始后才到达的候选来源。ToolSpec 继续控制 FSM、历史调用、候选预算、打包验证、KV 缓存更新和恢复。
## 4 OoO-Spec
OoO-Spec 由一个共享语义侧车和一个将其连接到目标模型的异步推理循环组成。侧车只训练一次,并在多个目标模型间复用。在推理时,它在一个并行批处理中预测函数选择以及所有模式定义的参数槽位,与目标模型的 ToolSpec 循环并发。目标模型在符合条件的候选构建边界处非阻塞地检查产生的提示,并且仍然负责验证和从左到右的 token 提交。我们先描述侧车训练,然后描述两条在线推理路径。
### 4.1 训练共享语义侧车
补充材料用图解展示了离线训练流程,并列出了冻结资产的标识。
#### 训练请求。
我们从 API-Bank 和 ToolAlpaca 构建固定的训练集和开发集划分(Li 等 2023;Tang 等 2023):API-Bank 3,462 个训练请求和 194 个开发请求仅取自 ToolAlpaca 的训练文件。ToolAlpaca 通过去污染处理:只要某个 API 的 API 名称或任何函数名出现在评估清单中,就移除整个 API;我们既不使用其黄金答案,也不使用其工具执行输出。两个数据集都使用确定性的提示哈希划分,得到 9,662 个训练源请求和 529 个开发源请求,两者之间没有任何请求 ID 或提示哈希重叠。
#### 教师轨迹。
我们固定 Qwen2.5-32B-Instruct 作为离线教师(Qwen Team 2024)。它接收每个对话及其工具模式,并贪心生成结构化调用。我们将支持的工具调用表面形式解析为严格 JSON 领域,并保留第一个有效调用,只保留规范化后的函数名和参数映射;教师 token ID、聊天模板 token 和工具调用控制 token 都被丢弃。
#### 槽位监督。
每个保留的语义调用在 Qwen3-0.6B 聊天模板下被扩展为三种任务类型。*函数索引* 行询问所选函数在当前模式中的局部索引。*参数值或 null* 行为每个候选函数的每个参数创建一行;当该参数属于所选函数并出现在教师调用中时,其目标是紧凑 JSON 值,否则为 null。第三个辅助性的 *直接调用* 行要求输出完整的规范化调用。该扩展产生 75,567 个训练行和 3,239 个开发行。在线侧车只查询函数索引行和参数行。
#### 优化与冻结。
我们初始化一个未适配的 Qwen3-0.6B(Yang 等 2025),并训练一个 LoRA 适配器(Hu 等 2022)一个 epoch,遮蔽提示标签,使目标函数是完成 token 上的因果交叉熵;补充材料列出了全部超参数。在固定的开发集评估之后,我们冻结第一个 epoch 的适配器。相同的 Qwen3-0.6B 基础和适配器服务于每个目标和负载,因此部署到新目标不需要任何目标特定的梯度更新,并且教师在推理时不存在。
### 4.2 异步主推理循环
共享适配器冻结后,在线推理遵循图 2 中的两条路径。请求到达时,运行时将完整的侧车任务提交给后台 future,与此同时……相似文章
什么是推测性解码?(在paperswithco.de上热门)[R]
推测性解码是一种推理优化技术,它使用快速草稿模型提出未来 token,并由较大模型并行验证,从而提高 LLM 的生成速度。文章强调了它在 Papers with Code 上的热门状态,以及最近的 SGLang 博客文章,该文章介绍了使用 DFlash 模型实现的最先进延迟。
MicroSpec: 通过轻量级上下文词汇表加速推测解码
MicroSpec 是一种无需训练的技术,它能即时构建紧凑的上下文感知词汇表,以加速大型语言模型中的推测解码,将平均词汇表大小减少40倍以上,并相比EAGLE-2实现了高达1.32倍的端到端加速。
DeLS-Spec: 解耦的长短上下文用于并行推测性草拟
DeLS-Spec通过在DFlash上添加轻量级局部头,将推测性解码中的长上下文和短上下文建模解耦,无需完全重新训练即可实现一致的加速。它仅需要对局部头进行标准的下一个词元预测训练,并在Qwen3基准测试中提高了接受长度。
SlimSpec: 用于加速推测解码的低秩 Draft LM-Head
SlimSpec 为 drafter LM-head 引入了低秩参数化方法,以加速 LLMs 中的推测解码,在保持完整词表支持的同时实现了 4-5 倍加速。
AOSpec:面向低延迟智能体服务的动作与观察协同推测
AOSpec 是一个无损框架,它在 LLM 智能体-环境循环中协同推测动作和观察,以降低延迟,在各种服务设置下实现了显著的端到端延迟降低。