推理大模型的后训练增强技术-Reasoning模型也进化到2.0了,这次居然学会用工具了

embedded/2025/3/18 8:44:40/

论文题目:START: Self-taught Reasoner with Tools

论文链接:https://arxiv.org/pdf/2503.04625

论文简介

Reasoning模型也进化到2.0了,这次居然学会用工具了!✨ 最近有个叫START的方法,让大模型也能学着用工具,比如自己调用代码解释器,来提升推理和解决问题的能力。

具体怎么实现的呢?它会把「思考链」和「工具调用」结合起来,给模型配上了自查、自我探索和自己修bug的能力。简单说,就是教模型边想边动手,用工具解决推理过程中的难题。

具体的训练步骤大概是:

1️⃣ 收集数学和编程题目,比如数学的AIME、MATH,编程的Codeforces、LiveCodeBench这些比赛题目。
2️⃣ 设计一些「友情提示」,比如“这里不如用Python试一下?”
3️⃣ 让模型自己带着工具解题,然后把刚才的提示巧妙地插到推理过程中(通常是在模型犹豫的时候,比如出现「等等…」的地方)。
4️⃣ 对解题过程打分,去掉重复或者没用的步骤,形成高质量的种子数据集。
5️⃣ 用这些种子数据微调模型,让它学到正确的使用工具的思路,并不断“自我精炼”,创造更多解题方案。
6️⃣ 再通过“拒绝采样”技术在更大的数据集上做二次微调,让模型越来越聪明。

研究还发现了几个有趣的现象:

💡 加入工具后,数学题的准确率直接提升了15%,像AMC23考试的正确率达到了95%!编程题的中等难度问题准确率提升更厉害,达到了38.6%!

📈 考试的时候加上一些小提示,也能再提升12%的准确率。
🐞 调整代码模板,训练过程中的debug错误直接少了41%。
💡 给模型加工具(比如Python解释器)带来的提升,比单纯增加训练数据还有效!
🧠 大模型本身其实就已经有使用工具的潜力了,只是需要点拨一下就能激活。
🛠️ 训练的时候用“两阶段”方法(先提示微调再拒绝采样微调),能让模型更好地掌握工具的使用方法。
📍 对了,插入提示的位置也很重要,最好放在连词后(比如“但是”、“等等”之后),停顿之前。

一句话总结:模型加了工具,就像你考试允许开卷一样,效果简直好到飞起!


如上图所示START模型的训练框架,它的训练分为两个阶段:Hint-RFT 和 RFT。

论文效果

1️⃣ Hint-infer(提示推理)

  • 先拿代码和数学数据喂给 QwQ-32B-Preview(一个大模型),它会在特定的地方停下来。
  • 这些停顿点会插入一些智能提示(来自一个提示库),比如“这里是不是可以试试Python?”
  • 之后,模型会继续推理,并且用代码解释器(Python)来执行代码、检查反馈,确保思路正确。

2️⃣ Hint-RFT(基于提示的拒绝采样微调)

  • 在上一步的基础上,模型生成的推理过程会经过一轮筛选,去掉低质量、重复的内容,并进行一些修改,形成一个高质量的种子数据集 D_seed
  • 然后,QwQ-32B-Preview 会用这些数据进行微调,生成一个初版的 START-0,让它能自己感知并使用工具。

3️⃣ RFT(拒绝采样微调)

  • START-0 开始自我蒸馏,自己生成更多解题思路,构建一个更丰富的训练数据集 D_START(这个数据集不仅更有多样性,还强化了工具使用模式)。
  • 最后,用这个扩展版数据集再微调一次,最终得到完整的 START 模型

简单来说,这个流程的关键就是:

  • 先让模型学会用提示来调用工具
  • 再筛选高质量的解题过程进行微调
  • 让模型自己生成更多推理过程,最后再训练一遍

这张图对比了 QwQ-32B-PreviewSTART 在处理 LiveCodeBench(难度:hard)编程题时的表现。

📌 QwQ-32B-Preview

  • 采用 长链推理(CoT),自己反思、尝试不同的方法,逻辑看起来很严谨。
  • 但在分析复杂测试用例时容易“幻觉”,也就是推理时编出一些错误的假设,导致最终解法是错的。

📌 START

  • 继承了 QwQ-32B-Preview 的推理框架,但 加入了代码执行能力,让模型可以真正跑代码来验证自己的推理。
  • 具体做了什么?
    1️⃣ 执行代码:用解释器跑代码,看看结果对不对。
    2️⃣ 检测错误:如果输出和预期不匹配,说明哪里有问题。
    3️⃣ 迭代分析 & 调试:自动找 bug、分析错误,修正代码。
    4️⃣ 输出最终答案:确保解法正确再交卷!

总体来看,QwQ-32B-Preview 虽然思考方式不错,但容易犯错。START 靠工具(代码执行)补上漏洞,推理更严谨,答案更靠谱!


http://www.ppmy.cn/embedded/173539.html

相关文章

消息队列导致数据库数据读取不一致解决方案

我使用的是在数据库添加一个版本字段,记录版本,保证版本一致性,就能保证每次读取的是需要的内容。 具体问题:使用消息队列时,发送方给接收方发送消息,接收方修改了数据库的同时发送方查询数据库&#xff0…

MongoDB 和 Elasticsearch的区别、优缺点对比,以及选型建议

MongoDB 和 Elasticsearch 在存储和搜索方面各有特点,适用于不同的场景。以下是它们的区别、优缺点对比,以及选型建议。 1. 概述 MongoDB:分布式 NoSQL 文档数据库,基于 BSON(类似 JSON)的文档存储&#x…

app.config.globalProperties

目录 一:基础使用 1、简介 2、使用 3、打印结果: 二:封装 1、创建一个.ts文件(utils/msg.ts) 2、在main.ts中全局注册 3、在页面中使用 4、打印结果 一:基础使用 1、简介 app.config.globalProperties 是 Vue 3 应用实例(app)的一个配置属性&…

海绵音乐 3.4.0 | 免费AI音乐创作软件,支持多种风格智能生成

海绵音乐是一款专为Android用户设计的免费AI音乐创作软件,搭载深度神经网络作曲引擎,支持流行、电子、古风等12种音乐风格智能生成。提供多轨道编辑界面(8轨同步混音),可自定义鼓点、旋律和和弦进行实时混音&#xff0…

用Deepseek写一个 HTML 和 JavaScript 实现一个简单的飞机游戏

大家好!今天我将分享如何使用 HTML 和 JavaScript 编写一个简单的飞机游戏。这个游戏的核心功能包括:控制飞机移动、发射子弹、敌机生成、碰撞检测和得分统计。代码简洁易懂,适合初学者学习和实践。 游戏功能概述 玩家控制:使用键…

基于javaweb的SpringBoot校园运动会管理系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

网络华为HCIA+HCIP数据链路层协议-以太网协议

以太网协议 以太网是当今现有局域网(Local Area Network,LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号处理方法。以太网是建立在CSMA/CD(Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广…

Bash中小数的大小比较以及if条件中小数的大小判断

1、在Bash中对小数进行大小判断时&#xff0c;需要使用bc命令进行判断&#xff0c;用-gt、-lt、-eq等或使用>、<、运算符比较。 注意&#xff1a;用bc命令比较时&#xff0c;真返回1&#xff0c;假返回0。 [rootCentos7-4 ~]# [ echo "120.5 > 88.8" | bc…