当前位置: 首页 > 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倍)等。
http://www.xdnf.cn/news/35317.html

相关文章:

  • LeetCode --- 154双周赛
  • 在串口通信中使用共享指针(`std::shared_ptr`)
  • 【HDFS入门】HDFS数据冗余与容错机制解析:如何保障大数据高可靠存储?
  • Ubuntu Linux 中文输入法默认使用英文标点
  • 深入理解FreeRTOS操作系统:计数型信号量的原理与应用
  • JavaWeb 课堂笔记 —— 13 MySQL 事务
  • 2000-2017年各省城市天然气供气总量数据
  • Ubuntu 25.04 “Plucky Puffin” 正式发布
  • 多线程和线程同步
  • 非接触式水位传感器详解(STM32)
  • office软件中word里面的编号库和列表库功能
  • 06-libVLC的视频播放器:推流RTMP
  • 第三届世界科学智能大赛新能源赛道:新能源发电功率预测-数据处理心得体会1
  • Java @Serial 注解深度解析
  • day46——两数之和-输入有序数组(LeetCode-167)
  • 人工智能在智慧农业中的应用:从田间到餐桌的变革
  • 【Vue】布局解析
  • Manus技术架构、实现内幕及分布式智能体项目实战 线上高级实训班
  • 洛谷的几道题
  • 某局部三层休闲娱乐中心建筑设计与结构设计
  • 19-算法打卡-哈希表-四数相加II-leetcode(454)-第十九天
  • @EnableAsync+@Async源码学习笔记之五
  • 第十届团体程序设计天梯赛-上理赛点随笔
  • 学习笔记: Mach-O 文件
  • Datawhale AI春训营 世界科学智能大赛--合成生物赛道:蛋白质固有无序区域预测 小白经验总结
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(钢铁企业生产计划管理系统)
  • 支持中文对齐的命令行表格打印python库——tableprint
  • cesium中postProcessStages全面解析
  • 13.第二阶段x64游戏实战-分析人物等级和升级经验
  • JNI 学习