此前的工作
- 大多数研究从更强模型蒸馏轨迹并进行监督微调,使得模型只能学习预设的工具使用模式,限制了对最优策略的探索
- 比如ToRA,虽然做了out space shaping,本质上还是从更强模型蒸馏轨迹
- 而ToRL不适用轨迹蒸馏+SFT,直接用
ToRL
- TORL(Tool‑Integrated Reinforcement Learning),该框架直接从基座模型进行强化学习,无需预先的监督微调。与逐步改进 SFT 模型的方法不同,TORL 从零开始训练,使模型通过广泛探索自动发现最佳的工具使用策略,从而产生与基于预设模式方法显著不同的行为。
- 我们发现工具集成学习呈现出以下关键特征:
- 代码使用的演化:随着训练的进行,模型使用代码解决问题的比例稳步增加,且生成的代码愈发语法正确、可执行。这表明模型能够自主习得有效的工具使用策略。
- 无效代码的自我调节:即便没有显式提示,模型也会学会识别并减少无效代码模式的生成,体现了对工具效用的元认知。
- 工具调用频率的权衡:增大每个问题允许的最大工具调用次数可显著提升性能,但也会带来严重的计算开销,体现了效率与效果之间的权衡。
- 在计算方法和分析方法之间交叉验证
- 执行环境的选择:为兼顾训练效率和效果,需要稳定且准确的代码解释器。我们最初测试了 qwen‑agent 的 Python 执行器,它具有极低延迟,但执行环境与训练系统未隔离,潜在的非法内存访问等错误可能影响整个训练。最终我们选择了 Sandbox Fusion,它提供了隔离的执行环境,虽然延迟略高,但更稳定。
- 错误信息处理:当 Sandbox Fusion 执行出错时,会生成包含文件路径等冗余信息的详细跟踪。为缩短上下文并保留关键错误信息,我们只提取错误消息的最后一行(如
NameError: name 'a' is not defined)。
- 沙箱输出屏蔽:在计算损失时,我们屏蔽掉来自沙箱环境的 OBSERVATION 输出,以防模型去记忆具体的执行结果,从而提升训练稳定性和泛化性。
我们采用基于规则的奖励函数:答案正确则奖励 1 分,错误则扣 1 分。此外,代码解释器会反馈代码是否可执行。根据可执行性与解题准确率的相关性,我们加入了执行惩罚:响应中包含不可执行代码时,奖励降低 0.5 分。
奖励表
| 属性 |
奖励值 |
|
| 答案正确 |
1 |
|
| 答案错误 |
–1 |
|
| 代码可执行 |
0 |
|
| 代码不可执行 |
–0.5 |
|
通过上述奖励设计,模型不仅关注答案正确性,还会受到代码执行质量的影响,这有助于其学习生成更准确且可执行的代码。
训练
- 算法与超参数: 使用 GRPO 算法(Shao 等,2024),每次回合的批大小设为 128,每道题生成 16 个样本。为鼓励模型探索,训练中不使用 KL 正则项,温度参数设为 1。选用 Qwen‑2.5‑Math 系列模型作为基座模型;为提升效率,默认最大工具调用次数 C 为 1。默认实验仅使用 答案正确性奖励,不包含 代码可执行性奖励,后者在 §3.3 中讨论。
- 评测方式: 评测时采用贪婪解码(温度 = 0),模型在多项难度较高的数学基准上进行评估,包括 AIME24、AIME25、MATH500、OlympiadBench 和 AMC23。
- 模型调用工具次数的影响:默认最大工具调用次数 C 为 1
- 增加 C 的影响: 当把 C 从 1 提高到 2 时,模型的平均准确率提高了约 2%,但训练速度显著下降,这意味着性能提升和计算效率之间需要权衡。
- 加入代码可执行性奖励的影响: 在奖励函数中加入对不可执行代码的惩罚(-0.5 分)并未改善模型性能,可能是因为该惩罚促使模型生成过于简单的代码以避免错误,反而影响了问题求解能力。
- 理过程中灵活调用工具,突破了预设工具使用方式的限制。实验结果显示,该框架带来了显著的性能提升,并激发了自我纠错、反思等涌现推理行为