当前位置: 首页 > news >正文

【RL系列】ReTool: Reinforcement Learning for Strategic Tool Use in LLMs

1. 简介

提出了ReTool,具体contributions:

  • 在LLM推理过程中集成了code interpreter execution。并基于自己开发的pipeline构建一批冷启动数据集。
  • 在全面的实验后,有几个关键发现:
    • 在RL训练后,回复长度相较于开始较少了40%。
    • 在训练中,code ratio,code lines和correct code counts都有增加。并且代码调用时间变得更早。
    • 在训练中发现有代码自我纠正和自适应工具选择等突发行为,带来tool-augmented reasoning pattern。

2. 方法

2.1 Overview:

训练主要分为两部:

  1. 通过设计的pipeline搜集一批数据用于cold start SFT。
  2. tool-using RL训练。

2.2 cold start for tool-integrated reasoning foundation

  • 数据搜集:
    • 聚合不同数据源的mathematical reasoning数据,然后使用人类专家和deepseek-r1过滤质量低的数据;
    • 通过结构化的prompt template(见下图)对过滤后mathematical reasoning数据进行替换,它通过用相应的代码片段及其解释器的执行结果替换可以从代码执行中受益的手动计算步骤,从而修改了原始的思维过程;然后进行format and answer verification(最终答案不对)
      在这里插入图片描述
  • 基于上一步搜集的数据进行SFT(cold start)。

2.3 ReTool:Reinforcement Learning for Strategic Tool Use

  • RL Algorithm:PPO,在训练中policy model会结合code sandbox的多轮实时代码执行操作的结果用于生成rollouts。
  • Reward Design:详细公式见下图
    在这里插入图片描述
  • Rollout with interleaved code execution:
    • rollout生成是用带一个code sandbox的policy model,会包含text,code snippets和real-time interpreter feedback。在具体的prompt中(见下图),会用标记生成的code。在rollout过程中,policy modle生成text-based reasoning,当被检测到,生成暂停,生成的代码会被解析并传到code sandbox中去执行,执行完成后,执行结果会被包在中,然后继续生成,直到提供final answer或一个新的code snippet。最终的轨迹是:text-based reasoning + code + sandbox feedback + …+ final answer
      在这里插入图片描述
      在这里插入图片描述
  • 训练细节:
    • 在训练中,loss计算会maskfeedback output
    • 在训练中增加KV-cache:当被监测到,在code执行前会cache所有的KV-cache
    • Sandbox Construction:为了加速训练过程,沙盒是异步的。

3. 实验

  • Setting:

    • 使用VeRL框架
    • 算法:PPO
    • AdamW
    • LR:1e-6
    • expected maximum:16384
    • mini-batch size:512
    • KL coefficient:0
    • backbone:Qwen2.5-32B-Instruct
  • Main Results
    在这里插入图片描述

  • Cognitive Analysis:
    在这里插入图片描述

    • response length:初始下降,后面增加,最终回复长度平均下降40%。
    • code ratio:回复中包含code的占比是增加的。最后占比98%。
    • code lines:生成代码行数(一定程度反映生成代码的复杂度)增加,在训练结束时,代码行数是初始的5倍。
    • Total Test Set Correct Code Counts:测试集上的总正确代码数是增加的。
    • Code Pass Rate:在正确回复中,最后一个代码通过比例不断升高。在错误回复中,最后一个代码通过率不断下降。说明代码执行结果影响推理过程和最后结果。
    • Code Invocation Timing:计算代码调用时间。决定于代码起始位置 / 回复总长度。这个指标反映response中代码调用时间。
      在这里插入图片描述

4. 总结

  • 训练过程和目前开源的一些tool-based RL框架实现的基本差不多,主要区别是ReTool只调用了code interpreter execution。其他框架调用的工具会更多点。然后就是一些标签不一样,这里用的是<code></code> ,<interpreter></interpreter>,有些框架用的是<action></action>,<obversation></observation>,本质上是一样的。
  • reward包含format reward和outcome reward,没有process-supervised reward。且outcome reward也比较简单。
  • 在RL训练前,会有一个cold start阶段(SFT)。
  • 会有一个数据构建的pipeline。
  • 训练中会有多个监测指标,比如说回复长度(下降,整体降40%),code ratio(占比增加,最后98%),code lines(增加,最后是初始5倍)等。

相关文章:

  • 爬取B站视频弹幕的简易教程(下)
  • 算法--打表法
  • 每天学一个 Linux 命令(24):chattr
  • 黑马Java基础笔记-1
  • sql学习
  • word表格批量操作——宏
  • 损失函数总结
  • 从 “单细胞” 到 “数据森林”:层次聚类的 “自底向上” 生长法则
  • 【数学】勾股定理
  • 2025年渗透测试面试题总结-拷打题库05(题目+回答)
  • 修改Theme SHELL美化panel
  • CUDA Tools 常用命令总结与记录 (需要细化)
  • ESP32-S3上跑通红外重复码发送(7)
  • 复习JUC的总结笔记
  • 使用AOP完成添加日志
  • 文件系统基础
  • P1113 杂务-拓扑排序
  • gulp方法
  • Linux——firewalld防火墙(笔记)
  • 关于一对多关系(即E-R图中1:n)中的界面展示优化和数据库设计
  • 亚洲大厦和一个被音乐剧改变的街区
  • 华夏银行去年净赚超276亿增近5%,个人贷款不良率升至1.8%
  • 马上评丨直播员工上班?职场不是“楚门的世界”
  • 建投读书会·东西汇流|上海城市体育休闲中的东西方元素碰撞与融合
  • 场外口水淹没比赛,津门虎全华班大败引发巨大争议
  • 民进党当局强令大陆配偶补缴证明,国台办:日益不择手段、不顾人伦