ToolRM
Tool Reward Model · arXiv 2026 · v2

ToolRM:给工具调用配一个专用裁判,而不是让通用奖励模型猜

通用奖励模型看的是「这段文字好不好」,工具调用要判断的是「函数名、参数、参数类型、调用数量对不对」。ToolRM 先用 25 个开源模型在 BFCL-v3 上生成真实错误,做成 1,500 条正确/错误配对的 FC-RewardBench;再用 11 个开源模型合成 180K 条偏好数据,训练 1.5B、7B、14B 三个结果奖励模型。

Mayank Agarwal 等 · IBM Research arXiv 2509.11963v2 ↗
TL;DR · 30 秒抓住核心

问题不在「有没有奖励模型」,而在「奖励模型看不看得懂工具调用」。 现有奖励模型主要在自然语言输出上训练;工具调用是结构化输出,一个参数值写错、漏掉可选参数、函数数量不对,都会让调用失败,但这些错误在自然语言评分里往往不明显(§1、§3.1)。

先造一个能测裁判的基准。 FC-RewardBench 从 BFCL-v3 单轮 split 取用户 query、工具目录和正确调用,再让 25 个模型(0.5B–685B)生成错误调用,每个 query 随机保留一条错误;共 1,500 条。错误类型以参数值错(650 条,占 43.3%)和函数名错(403 条,占 26.9%)为主。

再用错误调用反向训练裁判。 11 个开源模型在 API-Gen、SGD、xlam-irrelevance 等数据上生成调用,与 ground truth 不一致的保留为负样本;最终 85K 单轮 + 85K 多轮 + 10K irrelevance,合计 180K。ToolRM 用 Bradley–Terry 成对偏好目标训练,只替换最后一层为标量奖励头(§3.2、§4)。

三个用法:推理时选最好的、训练前筛数据、RL 里当奖励。 Best-of-32 让 Qwen3-0.6B 从 39.5% 升到 64.4%(+24.9 个百分点);数据过滤只保留 ToolRM 评分最高的 8K,平均分 62.5%,高于全量 16K 的 61.0% 和随机 8K 的 58.4%。

62.5%
ToolRM 筛出的 8K 数据微调平均分
全量 16K 为 61.0%,随机 8K 为 58.4%
64.4%
Qwen3-0.6B + ToolRM-14B 的 Best-of-32
贪心解码为 39.5%;+24.9 个百分点
81.88%
ToolRM-1.5B 在 FC-RewardBench
论文称其超过 gpt-oss-120B 裁判
01

工具调用的错,往往不是「句子写得不好」

先看错误分布:绝大多数错误是参数值、函数名、函数数量这类结构化错误,而不是自然语言流畅度。

工具调用的输出是一个结构化对象:选哪个函数、传哪些参数、参数值是什么、类型对不对、要不要一次调用多个函数。任何一处不匹配,执行都会失败。通用奖励模型在自然语言偏好数据上训练,能判断回答是否有帮助、语气是否合适,却不一定能发现「参数值写成了相近但错误的字符串」这种细粒度问题(§1、§3.1)。

论文把这个问题拆成两个缺口:一是没有专门评估「工具调用奖励模型」的基准;二是现有奖励模型在工具调用上表现不稳,LLM-as-Judge 虽然准确率更高,但参数量大、推理成本高(§1)。为了量化缺口,作者先构造 FC-RewardBench,再把错误类型逐项统计出来。

错误类型条数占比
参数值错误 (Incorrect Parameter Value)65043.3%
函数名错误 (Incorrect Function Name)40326.9%
函数数量错误 (Incorrect number of functions)24516.3%
漏掉可选参数 (Missing Optional Parameter)785.2%
漏掉必填参数 (Missing Required Parameter)453.0%
参数类型错误 (Incorrect Parameter Type)432.9%
多出参数 (Unexpected Parameter)211.4%
输出格式错误 (Incorrect output format)151.0%
合计1,500100%
Table 1 · 条数为原文逐项统计;占比由条数除以 1,500 复算。原文没有给占比列,这是页面派生。
柱高按满格 700 条(条数模式)/ 50%(占比模式)归一化,不是坐标轴刻度。
切换指标,查看 1,500 条错误中哪几类最常见。

这张表解释了为什么「通用奖励模型 + 工具调用」不够:错误集中在语义层面,光看输出格式是否正确、JSON 是否能解析,抓不到参数值写错或函数名写错。论文因此把评估定义为成对比较:同一个 query 下,正确调用的分数要高于错误调用,才算裁判判断正确(§5.1)。

02

三条已有路线:通用 RM、工具增强 RM、LLM-as-Judge

论文的对照不是「谁参数多」,而是「谁真的看得懂工具调用」。

路线 A

通用奖励模型

在 RewardBench 等自然语言偏好数据上训练,擅长判断回答质量、安全性和帮助性。论文从 RewardBench 选了 8 个 3B–70B 的强 RM 作为对照,发现它们在 FC-RewardBench 上并不能稳定区分正确与错误调用(§4、§5.1)。

路线 B

工具增强奖励模型

Themis 是专门做工具增强的 RM,但在 FC-RewardBench 上只达到 45% 准确率。论文认为这说明「加工具」不等于「懂工具调用的细粒度错误」(§5.1)。

路线 C

LLM-as-Judge

用大模型成对比较两个候选调用,论文的 6 个裁判覆盖 70B–685B。准确率可达 80% 以上,但参数规模大、每次比较都要跑一次大模型,成本高(§4、§5.1)。

这三条路线的共同问题是:没有一个统一的、专门针对工具调用的测试集。论文的切入点不是先训练一个更大的 RM,而是先造 FC-RewardBench,让「裁判好不好」可以被单独测量;然后再用同样的错误生成思路,反向造出训练数据(§3.1、§3.3)。

“Existing reward models, trained primarily on natural language outputs, struggle to evaluate tool-based reasoning and execution.” Abstract · 论文对缺口的表述
03

用「正确 vs 错误」的成对数据,训练一个标量裁判

基准和训练集共用同一个思路:让模型真实地生成调用,再把与 ground truth 不一致的输出保留为负样本。

3.1 FC-RewardBench:1,500 条真实错误

基准的输入侧直接取自 BFCL-v3 的单轮 split:用户 query、可用工具目录、正确调用都由 BFCL-v3 提供。负样本不是人工改写,而是让 25 个开源模型(0.5B–685B)实际生成调用;与 ground truth 不一致的才保留。每个 query 随机抽一条错误,避免某个 query 被过度代表,最后随机选 1,500 条(§3.1)。

这样构造出的错误分布更接近模型真实会犯的错:参数值错、函数名错、函数数量错占了大头(Table 1)。评测时,奖励模型对正确调用和错误调用分别打分;正确调用的分数更高,才算判断正确。LLM-as-Judge 则用成对比较 prompt,并随机交换候选顺序以减少位置偏差(§5.1)。

3.2 ToolRM:11 个模型合成 180K 偏好对

训练数据覆盖三类场景:API-Gen 的单轮交互、Schema-Guided Dialogue(SGD)的多轮工具调用、xlam-irrelevance 的「没有合适工具」场景。论文先用随机字符串替换函数名和参数名、重排 schema 的 key,做混淆处理,防止模型背训练集;然后让 11 个开源模型(0.5B–32B)生成调用,只保留与 ground truth 不一致的负样本(§3.3、§4)。

数据规模

85K 单轮 + 85K 多轮 + 10K 不相关

合计 180K 条偏好样本。每个输入只保留一条错误输出,避免同一 query 在训练集中被重复计权(§4)。

模型

Qwen2.5-Instruct 1.5B / 7B / 14B

以指令微调权重初始化,把最后的语言模型头换成线性层,输出一个标量奖励。输入包含工具规格、对话历史和候选调用(§4)。

训练目标是 Bradley–Terry 成对偏好:让正确调用的奖励高于错误调用,并用 sigmoid 转成概率;同时加奖励中心化正则,把正负样本的奖励和往 0 拉(§3.2、Eq.1–3)。论文没有把它称为 DPO,页面也不把它写成 DPO。

P(y+ ≻ y− | x) = σ(r(x, y+) − r(x, y−))
Jreg(r) = J(r) + η · E[(r(x, y+) + r(x, y−))2]
§3.2 · 成对偏好目标与奖励中心化;η 是小的正系数,实验中取 0.01(§4)

这个目标只要求「正确比错误分高」,不要求奖励的绝对值有物理意义。因此在 Best-of-n 里,ToolRM 只需要把 32 个候选排序;在数据过滤里,只需要保留分数最高的一半;在 RL 里,奖励取值在 [−3, 3](§5.3.2)。

04

训练很轻:1 个 epoch、lr 1e-6、3% warmup;但论文没报 GPU

奖励模型训练本身不重,重的是数据合成与 Best-of-32 推理;这两项的成本论文都没有折算成 GPU 小时。

RM 训练

1 epoch,lr 1e-6,cosine

三个规模都用相同配置:训练 1 个 epoch,学习率 1e-6,cosine schedule,warmup 占总步数 3%,奖励中心化系数 0.01(§4)。

数据合成

11 个模型生成 180K 负样本

每个 query 至少跑一次生成;错误输出保留,正确输出丢弃。论文没有报告合成 180K 数据用了多少 GPU 或多少 API 调用(§3.3、§4)。

GRPO

15 epochs,4 rollouts,batch 512

策略优化实验用 verl + ToolRL 代码:max prompt 2048、max response 1024、lr 1e-6、PPO mini-batch 128、4 条 rollout、15 个 epoch、train batch 512(Table 9)。

推理

Best-of-32:每个输入采样 32 次

温度为 0.6,每个输入独立采样 32 个候选,再用 ToolRM 打分选最高。这个开销随 n 线性增长,论文没有给延迟或费用(§5.2)。

数据过滤实验另有一套微调配置:Llama-3.1-8B-Instruct,LoRA rank 16、alpha 32、学习率 2e-4、1 个 epoch、cosine、warmup 10%(§5.3.1)。这部分算力同样没有折算成 GPU 小时。

05

一条数据管线,三种用法

上面是造基准与造训练数据,下面是三个下游场景;共用同一个「正确 vs 错误」偏好结构。

造基准 BFCL-v3 单轮 query · 工具目录 · 正确调用 25 个模型生成错误 0.5B–685B · 每个 query 留一条 FC-RewardBench 1,500 条正确/错误配对 造训练数据 API-Gen · SGD · 不相关 先混淆函数名与参数名 11 个模型生成调用 只保留与 ground truth 不一致 180K 偏好对 85K 单轮 + 85K 多轮 + 10K ToolRM 1.5B/7B/14B Bradley–Terry + 奖励中心化 三种用法 Best-of-n 重排 采样 32 个,选 ToolRM 最高分 数据过滤 保留高分 8K 做 LoRA 微调 GRPO 奖励 R = R_format + R_ToolRM ToolRM 作为裁判

这三条支路不是互斥的:同一个 ToolRM 可以在推理时排序、在训练前过滤、在 RL 中给奖励,区别只在「分数怎么用」。论文的 RQ2 对应 Best-of-n;RQ3 对应奖励引导的数据过滤与策略优化,后者在 §5.3.2 与 Table 5。

06

裁判更准、小模型增益更大、筛数据有效,但不是每一项都赢

先看基准上的裁判能力,再看 Best-of-n、数据过滤与 GRPO 三个下游场景。

6.1 FC-RewardBench:ToolRM 超过通用 RM 与大模型裁判

Figure 1 把 ToolRM、RewardBench 上的强 RM、Themis 和 LLM-as-Judge 放在同一张图上。论文的文字结论是:ToolRM-7B 与 ToolRM-14B 超过所有生成式与序列分类器;ToolRM-1.5B 超过 gpt-oss-120B,接近更大的 Llama-4 裁判(§5.1)。Themis 只有 45%,说明「工具增强」本身不等于「懂工具调用」。LLM-as-Judge 的准确率可达 80% 以上,但参数量在 70B–685B,成本高(§4、§5.1)。

论文还检查了 FC-RewardBench 与下游 Best-of-n 表现的相关性:11 个 RM 在五个下游基准上的平均相关系数为 0.84。这个数字支持「用基准快速筛 RM」的做法,但相关性不是因果,也不能保证换到新工具集仍然成立推断(依据:A.5 只测 11 个 RM 与五个下游基准的相关性,未做跨工具集迁移实验)。

ToolRM-1.5B 消融FC-RewardBench 准确率相对完整模型
完整 ToolRM-1.5B81.88%—
去掉 API-Gen 数据65.48%−16.40 个百分点
不做函数名/参数名混淆68.25%−13.63 个百分点
高奖励中心化 (η=0.1)80.02%−1.86 个百分点
不做奖励中心化 (η=0)80.32%−1.56 个百分点
只用大模型生成 (≥12B)78.70%−3.18 个百分点
只用小模型生成 (≤2B)81.01%−0.87 个百分点
去掉 SGD 数据81.03%−0.85 个百分点
Table 10 · 已转录原表全部 8 行;原文只列准确率,最后一列是页面用 81.88 减去各行得到的绝对差(显示为负值)。去掉 API-Gen 与不做混淆是两项最大的下降。

6.2 Best-of-32:小模型收益最大,但不是所有单元格都赢

Table 2 给出四个生成器在 BFCL-v3 上的 Best-of-32 结果。Qwen3-1.7B 的 Overall 从 55.74% 升到 61.05%(+5.31 个百分点,相对 9.5%);Non-Live AST 从 80.23% 到 89.79%(+9.56,相对 11.9%);Live AST 从 71.35% 到 80.01%(+8.66,相对 12.1%);Multi-Turn 从 10.25% 到 14.12%(+3.87,相对 37.8%)。

生成器 / 选择方式OverallNon-Live ASTLive ASTMulti-Turn
Qwen3-1.7B · Greedy55.7480.2371.3510.25
Qwen3-1.7B · Majority Voting57.9683.9074.2410.12
Qwen3-1.7B · Schema Validation56.3483.4872.468.25
Qwen3-1.7B · ToolRM-14B61.0589.7980.0114.12
Qwen3-8B · Greedy64.6588.9080.0926.38
Qwen3-8B · Majority Voting67.9690.3381.7233.13
Qwen3-8B · Schema Validation67.2190.5881.0532.50
Qwen3-8B · ToolRM-14B67.1492.1982.9831.50
xLAM-2-1b-fc-r · Greedy54.0968.9854.7735.12
xLAM-2-1b-fc-r · ToolRM-14B57.2875.5060.9234.25
Llama-xLAM-2-8b-fc-r · Greedy71.1484.3167.8067.00
Llama-xLAM-2-8b-fc-r · ToolRM-14B72.5287.7372.4661.62
Table 2 · 为控制宽度,xLAM-2-1b 与 Llama-xLAM-2-8b 只保留 Greedy/ToolRM 两行;Qwen3 保留四种选择方式。ToolRM-14B 并非每个单元格都最高:Qwen3-8B 的 Overall 67.14 低于 Majority Voting 的 67.96,Llama-xLAM-2-8b 的 Multi-Turn 61.62 低于 Greedy 的 67.00。本页加粗只用于突出 Qwen3-1.7B 的 ToolRM-14B 行,不代表列最优。

论文在正文里还给了两张图:Figure 2 的五个非 BFCL 基准平均分上,Qwen3-0.6B 从 39.5% 升到 64.4%(+24.9 个百分点,相对 63.0%),超过 Qwen3-32B 的 63.8% 与 xLAM-2-70B 的 63.6%;Qwen3-8B 达到 70.5%,比所有贪心基线高 5.6 个百分点。对 32B 以上的生成器,增益变小:Llama-xLAM-2-32B 在非 BFCL 基准上 +2.1 个百分点,BFCL Live AST 上 +2.5 个百分点(§5.2)。

噪声鲁棒性方面,Table 3 的 RoTBench 实验显示 Best-of-32 能同时提升 Clean 与 Union:Qwen-8B 的 Tool Selection 从 Clean 的 52.4 升到 Clean@32 的 72.4(+20.0),Union 从 45.7 升到 Union@32 的 66.7(+21.0);Qwen-32B 的 Tool Selection 在 Union@32 达到 72.4,高于 Clean 的 65.7(+6.7)。论文据此说 Best-of-n 不仅抵消噪声,还能超过无噪声输入下的贪心结果(§5.2)。

6.3 数据过滤:8K 好数据胜过 16K 全量

Llama-3.1-8B-Instruct 的微调实验比较四种训练集:Base 不微调、FT-16K 用全部 16K、FT-Random-8K 随机抽一半、FT-Best-8K 用 ToolRM-14B 选出的前 8K。FT-Best-8K 平均 62.5%,比 FT-16K 的 61.0% 高 1.5 个百分点(相对 2.5%),比 FT-Random-8K 的 58.4% 高 4.1 个百分点(相对 7.0%),比 Base 的 54.0% 高 8.5 个百分点(相对 15.7%)。

柱高按满格 80 分归一化,不是 100 分制。
选择训练集,查看六个基准的分数;FT-Best-8K 只用一半数据,平均分最高。
训练集BFCL V3ToolAlpacaNexusAPI-Bank-1API-Bank-2SealTools平均
Base49.638.064.867.966.237.654.0
FT-16K54.143.075.557.463.572.761.0
FT-Random-8K55.244.074.249.954.173.258.4
FT-Best-8K55.444.072.063.766.273.762.5
Table 4 · 平均分是原文最后一列。FT-Best-8K 只在 Nexus 上低于 FT-16K(72.0 vs 75.5);其余五项不低于 FT-16K,平均分更高(62.5 vs 61.0)。本页加粗只用于突出 FT-Best-8K 的对应单元格,不代表列最优(Nexus 列最优为 FT-16K 75.5,API-Bank-1 列最优为 Base 67.9)。

6.4 GRPO:ToolRM 奖励接近 ground-truth 奖励,但不是每项都超

Table 5 比较三种奖励:Rschema 只检查是否符合工具 schema,RToolRL 用 ground truth 比较预测与正确调用,RToolRM 用 ToolRM-14B 打分(不需要 ground truth)。Llama-3.2-3B 上,RToolRM 的 Non-Live AST 为 78.40%、Live AST 为 64.32%,相对 RToolRL 的 75.27%/64.25% 分别高 3.13/0.07 个百分点;Qwen2.5-3B 上,RToolRM 的 Non-Live 为 79.58%,低于 RToolRL 的 80.42%(−0.84 个百分点,相对 −1.0%),Live 为 67.51%,高于 67.21%(+0.30,相对 0.4%)。

模型 / 奖励Non-Live ASTLive AST
Llama-3.2-3B · Base15.3543.82
Llama-3.2-3B · Rschema51.7162.25
Llama-3.2-3B · RToolRL75.2764.25
Llama-3.2-3B · RToolRM78.4064.32
Qwen2.5-3B · Base43.0655.66
Qwen2.5-3B · Rschema63.1766.54
Qwen2.5-3B · RToolRL80.4267.21
Qwen2.5-3B · RToolRM79.5867.51
Table 5 · 原文加粗为各列最优;Qwen2.5-3B 的 Non-Live 列 RToolRL 更高,Llama-3.2-3B 的 RToolRM 两项都更高。论文的结论是 RToolRM 在不使用 ground truth 的前提下「匹配或超过」RToolRL,不是每个单元格都赢。

6.5 错误分析:总错误下降,但「不相关调用」上升

Appendix A.6 用 Qwen3-1.7B 在 BFCL-v3 单轮上比较贪心解码与 Best-of-32。总错误从 742 降到 573,少 169 条(相对 22.7%)。参数值错误从 321 降到 231(−90,相对 28.0%),格式错误从 86 降到 34(−52,相对 60.5%),函数名错误从 62 降到 39(−23,相对 37.1%),函数数量错误从 21 降到 9(−12,相对 57.1%)。

但「不相关错误」从 185 增到 210(+25,相对 13.5%)。论文的解释是 ToolRM 倾向于「生成一个函数调用」,即使没有合适工具能满足 query(Appendix A.6)。这说明 Best-of-n 不是单调变好推断(依据:Table 8 的总错误下降、不相关错误上升):它在减少参数级错误的同时,会把一部分「本该不调用」的样本推向「硬调用」。

07

边界:单轮基准、合成负样本、只训 Qwen2.5

这些条件决定了 ToolRM 能推广到哪一步,也解释了为什么有些单元格不是最高。

基准

FC-RewardBench 来自 BFCL-v3 单轮 split

输入侧是单轮 query;错误由 25 个模型生成。它不覆盖多轮状态、工具执行后的环境反馈、失败后的纠错恢复。下游评测虽然包含多轮 BFCL 指标,但基准本身不测这些能力(§3.1、§5.2)。

负样本

全是合成错误,没有人偏好

负样本来自 11 个开源模型(训练)与 25 个模型(基准)的真实输出,但「正确 vs 错误」是二元的;两个功能都正确、一个有更简洁写法的细微偏好没有被建模推断(由「只保留与 ground truth 不一致的负样本」反推,§3.3、§4)。

模型

只训 Qwen2.5-Instruct 三个规模

1.5B/7B/14B 都基于 Qwen2.5-Instruct;没有 Llama、Mistral 或闭源模型的同方法对照。跨家族泛化只能从「换生成器」的下游实验间接看推断(依据:§4 的 RM 底座只有 Qwen2.5,Table 2 换的是生成器而不是 RM)。

成本

没有 GPU 小时,也没有延迟

论文给了训练超参与数据规模,但没有 GPU 型号/数量/时长、合成成本、Best-of-32 的延迟或费用。不能把「1.5B」直接换算成「便宜」,也不能和 LLM-as-Judge 做严格的成本对比(§4、§5.2)。

结果层面还有三条边界。第一,Best-of-32 不是每个单元格都赢:Qwen3-8B 的 Overall 67.14 低于 Majority Voting 的 67.96,Llama-xLAM-2-8b 的 Multi-Turn 61.62 低于 Greedy 的 67.00。第二,数据过滤不是每一项都更好:FT-Best-8K 只在 Nexus 上低于 FT-16K(72.0 vs 75.5);其余五项不低于 FT-16K,平均分更高(62.5 vs 61.0)。第三,GRPO 不总是超过 ground-truth 奖励:Qwen2.5-3B 的 Non-Live AST 上 RToolRM 低于 RToolRL。

方法层面最值得记住的是「错误生成」这个数据引擎:它不需要人工标注,也能覆盖模型真实会犯的错;代价是负样本分布受生成模型池限制,且可能放大「倾向于调用」的偏差。Table 8 的不相关错误上升就是这种偏差的直接证据。

页面勘误与原文矛盾(只记录,不修改原笔记)
  • 表号:笔记把数据过滤写成「Table 3」,原文是 Table 4;Table 3 是 RoTBench 的噪声鲁棒性结果。笔记把错误分析写成「附录 A.5 / Table 5」,原文是 Appendix A.6 / Table 8;A.5 是 FC-RewardBench 与下游表现的相关性分析,Table 5 是 GRPO 三种奖励的对比。
  • 图号:笔记说 Best-of-n 的结果在「Figure 4」,原文主图是 Figure 2;Figure 4 是 ToolRM 训练数据样例(Appendix A.2)。
  • 训练目标:笔记开头写「使用 DPO 训练」,原文 §3.2 是 Bradley–Terry 成对偏好目标 + 奖励中心化正则,没有称 DPO。两者都用到成对偏好,但不能等同。
  • 「接近 90%」是读图:Figure 1 没有在柱子上标具体数值;正文只说 ToolRM-7B/14B 超过所有生成式与序列分类器、1.5B 超过 gpt-oss-120B。「接近 90%」不能当作精确准确率。
原文内部矛盾(并列呈现,不替原文消解)
  • 1.5B vs 1.7B:摘要与 §1 写「1.7B to 14B」;§4 与 Table 10 写 ToolRM-1.5B(底座 Qwen2.5-1.5B)。页面统一采用 1.5B 口径。
  • 25% vs 24.9:摘要与 §1 称 Best-of-n 最多带来「25% improvement」;§5.2 与 Figure 2 的 24.9 是 Qwen3-0.6B 在五个基准平均分上的绝对百分点增益(64.4 − 39.5)。页面分别按原句引用,不把 25% 当作 24.9 个百分点。
阅读提醒
  • 不要混用两个模型池:FC-RewardBench 的负样本用 25 个模型(0.5B–685B);ToolRM 训练数据用 11 个模型(0.5B–32B)。