通用奖励模型看的是「这段文字好不好」,工具调用要判断的是「函数名、参数、参数类型、调用数量对不对」。ToolRM 先用 25 个开源模型在 BFCL-v3 上生成真实错误,做成 1,500 条正确/错误配对的 FC-RewardBench;再用 11 个开源模型合成 180K 条偏好数据,训练 1.5B、7B、14B 三个结果奖励模型。
问题不在「有没有奖励模型」,而在「奖励模型看不看得懂工具调用」。 现有奖励模型主要在自然语言输出上训练;工具调用是结构化输出,一个参数值写错、漏掉可选参数、函数数量不对,都会让调用失败,但这些错误在自然语言评分里往往不明显(§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%。
先看错误分布:绝大多数错误是参数值、函数名、函数数量这类结构化错误,而不是自然语言流畅度。
工具调用的输出是一个结构化对象:选哪个函数、传哪些参数、参数值是什么、类型对不对、要不要一次调用多个函数。任何一处不匹配,执行都会失败。通用奖励模型在自然语言偏好数据上训练,能判断回答是否有帮助、语气是否合适,却不一定能发现「参数值写成了相近但错误的字符串」这种细粒度问题(§1、§3.1)。
论文把这个问题拆成两个缺口:一是没有专门评估「工具调用奖励模型」的基准;二是现有奖励模型在工具调用上表现不稳,LLM-as-Judge 虽然准确率更高,但参数量大、推理成本高(§1)。为了量化缺口,作者先构造 FC-RewardBench,再把错误类型逐项统计出来。
| 错误类型 | 条数 | 占比 |
|---|---|---|
| 参数值错误 (Incorrect Parameter Value) | 650 | 43.3% |
| 函数名错误 (Incorrect Function Name) | 403 | 26.9% |
| 函数数量错误 (Incorrect number of functions) | 245 | 16.3% |
| 漏掉可选参数 (Missing Optional Parameter) | 78 | 5.2% |
| 漏掉必填参数 (Missing Required Parameter) | 45 | 3.0% |
| 参数类型错误 (Incorrect Parameter Type) | 43 | 2.9% |
| 多出参数 (Unexpected Parameter) | 21 | 1.4% |
| 输出格式错误 (Incorrect output format) | 15 | 1.0% |
| 合计 | 1,500 | 100% |
这张表解释了为什么「通用奖励模型 + 工具调用」不够:错误集中在语义层面,光看输出格式是否正确、JSON 是否能解析,抓不到参数值写错或函数名写错。论文因此把评估定义为成对比较:同一个 query 下,正确调用的分数要高于错误调用,才算裁判判断正确(§5.1)。
论文的对照不是「谁参数多」,而是「谁真的看得懂工具调用」。
在 RewardBench 等自然语言偏好数据上训练,擅长判断回答质量、安全性和帮助性。论文从 RewardBench 选了 8 个 3B–70B 的强 RM 作为对照,发现它们在 FC-RewardBench 上并不能稳定区分正确与错误调用(§4、§5.1)。
Themis 是专门做工具增强的 RM,但在 FC-RewardBench 上只达到 45% 准确率。论文认为这说明「加工具」不等于「懂工具调用的细粒度错误」(§5.1)。
用大模型成对比较两个候选调用,论文的 6 个裁判覆盖 70B–685B。准确率可达 80% 以上,但参数规模大、每次比较都要跑一次大模型,成本高(§4、§5.1)。
这三条路线的共同问题是:没有一个统一的、专门针对工具调用的测试集。论文的切入点不是先训练一个更大的 RM,而是先造 FC-RewardBench,让「裁判好不好」可以被单独测量;然后再用同样的错误生成思路,反向造出训练数据(§3.1、§3.3)。
基准和训练集共用同一个思路:让模型真实地生成调用,再把与 ground truth 不一致的输出保留为负样本。
基准的输入侧直接取自 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)。
训练数据覆盖三类场景:API-Gen 的单轮交互、Schema-Guided Dialogue(SGD)的多轮工具调用、xlam-irrelevance 的「没有合适工具」场景。论文先用随机字符串替换函数名和参数名、重排 schema 的 key,做混淆处理,防止模型背训练集;然后让 11 个开源模型(0.5B–32B)生成调用,只保留与 ground truth 不一致的负样本(§3.3、§4)。
合计 180K 条偏好样本。每个输入只保留一条错误输出,避免同一 query 在训练集中被重复计权(§4)。
以指令微调权重初始化,把最后的语言模型头换成线性层,输出一个标量奖励。输入包含工具规格、对话历史和候选调用(§4)。
训练目标是 Bradley–Terry 成对偏好:让正确调用的奖励高于错误调用,并用 sigmoid 转成概率;同时加奖励中心化正则,把正负样本的奖励和往 0 拉(§3.2、Eq.1–3)。论文没有把它称为 DPO,页面也不把它写成 DPO。
这个目标只要求「正确比错误分高」,不要求奖励的绝对值有物理意义。因此在 Best-of-n 里,ToolRM 只需要把 32 个候选排序;在数据过滤里,只需要保留分数最高的一半;在 RL 里,奖励取值在 [−3, 3](§5.3.2)。
奖励模型训练本身不重,重的是数据合成与 Best-of-32 推理;这两项的成本论文都没有折算成 GPU 小时。
三个规模都用相同配置:训练 1 个 epoch,学习率 1e-6,cosine schedule,warmup 占总步数 3%,奖励中心化系数 0.01(§4)。
每个 query 至少跑一次生成;错误输出保留,正确输出丢弃。论文没有报告合成 180K 数据用了多少 GPU 或多少 API 调用(§3.3、§4)。
策略优化实验用 verl + ToolRL 代码:max prompt 2048、max response 1024、lr 1e-6、PPO mini-batch 128、4 条 rollout、15 个 epoch、train batch 512(Table 9)。
温度为 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 小时。
上面是造基准与造训练数据,下面是三个下游场景;共用同一个「正确 vs 错误」偏好结构。
这三条支路不是互斥的:同一个 ToolRM 可以在推理时排序、在训练前过滤、在 RL 中给奖励,区别只在「分数怎么用」。论文的 RQ2 对应 Best-of-n;RQ3 对应奖励引导的数据过滤与策略优化,后者在 §5.3.2 与 Table 5。
先看基准上的裁判能力,再看 Best-of-n、数据过滤与 GRPO 三个下游场景。
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.5B | 81.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 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%)。
| 生成器 / 选择方式 | Overall | Non-Live AST | Live AST | Multi-Turn |
|---|---|---|---|---|
| Qwen3-1.7B · Greedy | 55.74 | 80.23 | 71.35 | 10.25 |
| Qwen3-1.7B · Majority Voting | 57.96 | 83.90 | 74.24 | 10.12 |
| Qwen3-1.7B · Schema Validation | 56.34 | 83.48 | 72.46 | 8.25 |
| Qwen3-1.7B · ToolRM-14B | 61.05 | 89.79 | 80.01 | 14.12 |
| Qwen3-8B · Greedy | 64.65 | 88.90 | 80.09 | 26.38 |
| Qwen3-8B · Majority Voting | 67.96 | 90.33 | 81.72 | 33.13 |
| Qwen3-8B · Schema Validation | 67.21 | 90.58 | 81.05 | 32.50 |
| Qwen3-8B · ToolRM-14B | 67.14 | 92.19 | 82.98 | 31.50 |
| xLAM-2-1b-fc-r · Greedy | 54.09 | 68.98 | 54.77 | 35.12 |
| xLAM-2-1b-fc-r · ToolRM-14B | 57.28 | 75.50 | 60.92 | 34.25 |
| Llama-xLAM-2-8b-fc-r · Greedy | 71.14 | 84.31 | 67.80 | 67.00 |
| Llama-xLAM-2-8b-fc-r · ToolRM-14B | 72.52 | 87.73 | 72.46 | 61.62 |
论文在正文里还给了两张图: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)。
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%)。
| 训练集 | BFCL V3 | ToolAlpaca | Nexus | API-Bank-1 | API-Bank-2 | SealTools | 平均 |
|---|---|---|---|---|---|---|---|
| Base | 49.6 | 38.0 | 64.8 | 67.9 | 66.2 | 37.6 | 54.0 |
| FT-16K | 54.1 | 43.0 | 75.5 | 57.4 | 63.5 | 72.7 | 61.0 |
| FT-Random-8K | 55.2 | 44.0 | 74.2 | 49.9 | 54.1 | 73.2 | 58.4 |
| FT-Best-8K | 55.4 | 44.0 | 72.0 | 63.7 | 66.2 | 73.7 | 62.5 |
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 AST | Live AST |
|---|---|---|
| Llama-3.2-3B · Base | 15.35 | 43.82 |
| Llama-3.2-3B · Rschema | 51.71 | 62.25 |
| Llama-3.2-3B · RToolRL | 75.27 | 64.25 |
| Llama-3.2-3B · RToolRM | 78.40 | 64.32 |
| Qwen2.5-3B · Base | 43.06 | 55.66 |
| Qwen2.5-3B · Rschema | 63.17 | 66.54 |
| Qwen2.5-3B · RToolRL | 80.42 | 67.21 |
| Qwen2.5-3B · RToolRM | 79.58 | 67.51 |
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 的总错误下降、不相关错误上升):它在减少参数级错误的同时,会把一部分「本该不调用」的样本推向「硬调用」。
这些条件决定了 ToolRM 能推广到哪一步,也解释了为什么有些单元格不是最高。
输入侧是单轮 query;错误由 25 个模型生成。它不覆盖多轮状态、工具执行后的环境反馈、失败后的纠错恢复。下游评测虽然包含多轮 BFCL 指标,但基准本身不测这些能力(§3.1、§5.2)。
负样本来自 11 个开源模型(训练)与 25 个模型(基准)的真实输出,但「正确 vs 错误」是二元的;两个功能都正确、一个有更简洁写法的细微偏好没有被建模推断(由「只保留与 ground truth 不一致的负样本」反推,§3.3、§4)。
1.5B/7B/14B 都基于 Qwen2.5-Instruct;没有 Llama、Mistral 或闭源模型的同方法对照。跨家族泛化只能从「换生成器」的下游实验间接看推断(依据:§4 的 RM 底座只有 Qwen2.5,Table 2 换的是生成器而不是 RM)。
论文给了训练超参与数据规模,但没有 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 的不相关错误上升就是这种偏差的直接证据。