MIT开源7B推理模型Satori:用行动思维链进行强化学习,增强自回归搜索
自OpenAI的o1发布以来,研究社区为提升开源LLM的高级推理能力做出了诸多努力,包括使用强大的教师模型进行蒸馏、蒙特卡洛树搜索(MCTS)以及基于奖励模型的引导搜索等方法。
本研究旨在探索一个新的研究方向:使LLM具备自回归搜索能力,即单个LLM能够进行扩展推理过程,并进行自我反思和自我探索新的策略。
为此,我们开发了一种受经典强化学习(RL)社区启发的LLM后训练范式。我们的方法成果是Satori,这是一个基于开源模型(Qwen-2.5-Math-7B)和开源数据(OpenMathInstruct-2和NuminaMath)训练的7B LLM。Satori的关键特性包括:
-
• 能够在没有外部指导的情况下进行自我反思和自我探索。
-
• 主要通过自我提升(强化学习)实现最先进的推理性能。
-
• 在数学以外的未见领域展现出推理能力的可迁移性。
方法
我们将 LLM 推理公式化为一个顺序决策问题,其中推理是一个逐步构建和完善答案的过程。具体而言,LLM(作为智能体的策略)从输入上下文(初始状态)开始,生成一个推理步骤(动作),并更新上下文(下一个状态)。LLM重复这一过程,直到得出最终答案,并获得一个奖励,用于评估最终答案是否与真实答案相符。通过这种表述,我们可以使用强化学习训练LLM进行推理,目标是生成一系列推理步骤,以最大化预期奖励。
行动思维链推理(COAT)
实现自回归搜索的关键挑战是让 LLM 能够在没有外部干预的情况下确定何时反思、继续或探索替代解决方案。为了实现这一点,我们引入了几个特殊的元动作标记来指导 LLM 的推理过程,
-
• 继续推理(<|continue|>):鼓励 LLM 通过生成下一个中间步骤来构建其当前的推理轨迹。
-
• 反思(<|reflect|>):促使模型暂停并验证先前推理步骤的正确性。
-
• 探索替代解决方案(<|explore|>):指示模型识别其推理中的关键缺陷并探索新的解决方案。
我们将此公式称为“行动-思维链” (COAT) 推理。每个 COAT 推理步骤都是一个标记序列,从其中一个元行动标记开始。
训练架构概览
标准的 LLM 无法进行 COAT 推理,实现这一点将面临两个关键挑战:
-
• 对元动作标记的无知:未经训练,LLM无法识别遇到特殊元动作标记可能需要反思或提出替代解决方案。
-
• 长期决策和稀疏奖励:推理需要长期决策,奖励仅在最后出现,LLM必须在获得奖励之前采取许多正确的推理步骤,失败则迫使其从初始状态重新开始。由于奖励稀缺,但奖励对于推动强化学习进展至关重要,这使得学习变得困难。
为解决这两个挑战,我们提出了一个两阶段训练框架:
-
• 小规模格式微调阶段,帮助基础LLM内化COAT推理格式。
-
• 大规模的强化学习阶段,利用强化学习与“重启和探索”(RAE)技术。
*注: 我们同时开展的工作DeepSeek-R1采用了类似的训练框架,即先进行小规模冷启动 SFT,然后进行大规模 RL 训练。尽管两项工作在这一高级理念上是一致的,但我们的工作在关键方法上与 R1 有所不同,包括数据合成框架和 RL 算法。
通过模仿学习进行格式调整
此阶段旨在微调预先训练的基础 LLM,以模仿一些具有 COAT 推理格式的已证明的推理轨迹。为了合成这种结合反复试验的 COAT 轨迹,我们提出了一个利用三个 LLM 的多智能体数据合成框架:
-
• Generator:给定一个输入问题,生成器使用经典的 CoT 技术为给定的输入问题生成多条推理路径。
-
• Critic:评论家评估生成器生成的推理路径的正确性,提供反馈以改进推理并解决次优步骤。
-
• Reward Model:奖励模型对细化的推理路径进行评分,并选择最有效的路径作为最终的演示轨迹。
这三个模型协作构建了高质量的演示轨迹。我们观察到,少量(10K)的演示轨迹足以使基础 LLM 遵循 COAT 推理格式。
通过强化学习实现自我提升
通过格式调整,LLM 采用了 COAT 推理风格,但难以推广到未见过的问题。强化学习阶段旨在激励利用自我反思来改善推理的实际能力。我们从格式调整后的 LLM 开始,并使用经典 PPO 算法和另外两个关键策略进一步优化它,
-
• 重启和探索 (RAE):受Go-Explore的启发,我们训练 LLM 策略,使其不仅从问题陈述进行推理,而且还从过去轨迹中采样的中间步骤进行推理,无论正确与否。我们还添加了探索奖励以鼓励更深入的思考,从而进一步增加策略得出正确答案的机会。
-
• 迭代式自我改进:策略可能会收敛到局部次优,无法进一步改进。受Kickstarting的启发,在每一轮强化学习训练之后,我们通过监督微调将当前教师策略的知识提炼到学生模型(基础 LLM)中。然后,从新微调的 LLM 开始,我们再进行一轮强化学习训练。
基准性能
Satori 在领域内推理基准(数学推理)和领域外基准(一般推理任务)上进行了评估。所有结果均以贪婪采样的零次传递@1 准确率报告。
评估任务
-
• 数学推理基准:GSM8K、MATH500、AMC2023、AIME2024 和OlympiadBench。除 GSM8K 外,其他所有数据集都具有竞赛级问题。
-
• 通用领域推理基准:
逻辑推理:FOLIO、BoardgameQA(BGQA)。
代码推理:CRUXEval。
常识推理:StrategyQA(STGQA)。
表格推理:TableBench。
领域特定推理:MMLUPro STEM 子集(STEM),包括物理、化学、计算机科学、工程、生物和经济学。
数学推理基准
Satori-Qwen-7B 取得了 SOTA 性能,并超越了使用相同基础模型(Qwen-2.5-Math-7B)的 Qwen-2.5-Math-7B-Instruct。经过第二轮训练后,Satori-Qwen-7B(第二轮)在困难任务上表现出更强的性能。
通用领域推理基准
Satori-Qwen-7B仅接受数学数据集训练,在各种领域外推理基准上表现出很强的可迁移性,并且远远优于 Qwen-2.5-Math-7B-Instruct。此外,尽管未接受其他领域的训练,Satori-Qwen-7B 的性能也与其他小规模通用指令模型相当甚至超过。
更多测试结果可以查看原文:
https://satori-reasoning.github.io/blog/satori/
2月15日上午11点,青稞Talk 第38期,Satori第一作者、MIT博士生沈茂昊,将直播分享《Satori:通过训练LLM做自回归搜索来增强推理能力》。
分享嘉宾
沈茂昊,MIT EECS系四年级博士生,长期和MIT-IBM Watson AI lab 合作,本科毕业于UIUC ECE系。研究兴趣包括提升AI系统的可靠性,不确定性估计,以及涉及LLM的多个方向,包括提升LLM的推理能力等,曾在ICML、NeurIPS、AAAI等AI学术会议发表多篇论文。
主题提纲
Satori:通过训练LLM做自回归搜索来增强推理能力
1、O1 类推理模型的技术路线
2、Satori 推理模型及两阶段训练解析
- 行动思维链 COAT 推理范式
- 小规模格式微调
- 大规模的强化学习阶段
3、Satori 的推理能力及泛化讨论
成果连接
Paper:https://arxiv.org/pdf/2502.02508
Project:https://satori-reasoning.github.io
直播时间
2月15日(周六)11:00 – 12:00
相关文章:

MIT开源7B推理模型Satori:用行动思维链进行强化学习,增强自回归搜索
自OpenAI的o1发布以来,研究社区为提升开源LLM的高级推理能力做出了诸多努力,包括使用强大的教师模型进行蒸馏、蒙特卡洛树搜索(MCTS)以及基于奖励模型的引导搜索等方法。 本研究旨在探索一个新的研究方向:使LLM具备自回…...

【JVM详解二】常量池
一、常量池概述 JVM的常量池主要有以下几种: class文件常量池运行时常量池字符串常量池基本类型包装类常量池 它们相互之间关系大致如下图所示: 每个 class 的字节码文件中都有一个常量池,里面是编译后即知的该 class 会用到的字面量与符号引…...

w200基于spring boot的个人博客系统的设计与实现
🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...

【算法】快速排序算法的实现:C 和 C++ 版本
1. 算法简介 快速排序(Quick Sort)是由英国计算机科学家霍尔(C.A.R. Hoare)在1960年提出的一种高效的排序算法。它采用了分治法(Divide and Conquer)策略,通常具有很好的性能。在平均情况下,快速排序的时间复杂度为 O(n log n),但在最坏情况下可能退化为 O(n^2),不过…...

前沿科技一览未来发展趋势
脑机接口技术在医疗康复领域有了新进展。这技术让机器读懂大脑信号,帮助病人找回身体功能。 比如,瘫痪人士可以用它来控制假肢。在美国,一名瘫痪者通过这个技术,能用自己意念控制机械臂,喝到饮料。这种技术对提升患者…...

js滚动到页面最底部
setTimeout(()> { //延后执行,等页面渲染结束let container document.querySelector(.raise-flag-content); //找到当前divif (container) {container.scrollTop container.scrollHeight - (container.clientHeight - 400 );}})container.scrollTop container…...

视觉硬件选型和算法选择(CNN)
基础知识 什么是机械视觉: 机械视觉是一种利用机器代替人眼来进行测量和判断的技术,通过光学系统、图像传感器等设备获取图像,并运用图像处理和分析算法来提取信息,以实现对目标物体的识别、检测、测量和定位等功能。 机械视觉与人类视觉有什…...

Mybatis篇
1,什么是Mybatis ( 1 )Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁…...

【Python】元组
个人主页:GUIQU. 归属专栏:Python 文章目录 1. 元组的本质与基础概念1.1 不可变序列的意义1.2 元组与数学概念的联系 2. 元组的创建方式详解2.1 标准创建形式2.2 单元素元组的特殊处理2.3 使用 tuple() 函数进行转换 3. 元组的基本操作深入剖析3.1 索引操…...

【AI实践】deepseek支持升级git
当前Windows 11 WSL的git是2.17,Android Studio提示需要升级到2.19版本 网上找到指导文章 安装git 2.19.2 cd /usr/src wget https://www.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz tar xzf git-2.19.2.tar.gz cd git-2.19.2 make prefix/usr/l…...

【AI实践】Cursor上手-跑通Hello World和时间管理功能
背景 学习目的:熟悉Cursor使用环境,跑通基本开发链路。 本人背景:安卓开发不熟悉,了解科技软硬件常识 实践 基础操作 1,下载安装安卓Android Studio 创建一个empty project 工程,名称为helloworld 2&am…...

Redis数据库(二):Redis 常用的五种数据结构
Redis 能够做到高性能的原因主要有两个,一是它本身是内存型数据库,二是采用了多种适用于不同场景的底层数据结构。 Redis 常用的数据结构支持字符串、列表、哈希表、集合和有序集合。实现这些数据结构的底层数据结构有 6 种,分别是简单动态字…...

【计组】实验五 J型指令设计实验
目录 一、实验目的 二、实验环境 三、实验原理 四、实验任务 代码 一、实验目的 1. 理解MIPS处理器指令格式及功能。 2. 掌握lw, sw, beq, bne, lui, j, jal指令格式与功能。 3. 掌握ModelSim和ISE\Vivado工具软件。 4. 掌握基本的测试代码编写和FPGA开发板使用方法。 …...

ubuntu 本地部署deepseek r1 蒸馏模型
本文中的文件路径或网络代理需要根据自身环境自行删改 一、交互式chat页面 1.1 open-webui 交互窗口部署:基于docker安装,且支持联网搜索 Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线操作。它支持各种 LLM…...

RestTemplate Https 证书访问错误
错误信息 resttemplate I/O error on GET request for “https://21.24.6.6:9443/authn-api/v5/oauth/token”: java.security.cert.CertificateException: No subject alternative names present; nested exception is javax.net.ssl.SSLHandshakeException: java.security.c…...

MySQL内存使用率高且不释放问题排查与总结
背景 生产环境mysql 5.7内存占用超过90%以上,且一直下不来。截图如下: 原因分析 1、确定mysql具体的占用内存大小,通过命令:cat /proc/Mysql进程ID/status查看 命令执行后的结果比较多(其他参数的含义想了解可参考这…...

mysql8 从C++源码角度看sql生成抽象语法树
在 MySQL 8 的 C 源码中,SQL 语句的解析过程涉及多个步骤,包括词法分析、语法分析和抽象语法树(AST)的生成。以下是详细的解析过程和相关组件的描述: 1. 词法分析器(Lexer) MySQL 使用一个称为…...

【DeepSeek】DeepSeek概述 | 本地部署deepseek
目录 1 -> 概述 1.1 -> 技术特点 1.2 -> 模型发布 1.3 -> 应用领域 1.4 -> 优势与影响 2 -> 本地部署 2.1 -> 安装ollama 2.2 -> 部署deepseek-r1模型 1 -> 概述 DeepSeek是由中国的深度求索公司开发的一系列人工智能模型,以其…...

【C++】多态原理剖析
目录 1.虚表指针与虚表 2.多态原理剖析 1.虚表指针与虚表 🍪类的大小计算规则 一个类的大小,实际就是该类中成员变量之和,需要注意内存对齐空类:编译器给空类一个字节来唯一标识这个类的对象 对于下面的Base类,它的…...

【Rust自学】20.4. 结语:Rust学习一阶段完成+附录
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 20.4.1. 总结 Rust初级学习之旅终于完成了!恭喜! 包括这篇文章,我们使用了110篇文章来学习Rust。 真…...

pytorch引用halcon写数据集
****加粗样式虽然啰嗦一点,但好歹halcon自己熟悉,不会忘记,用os 和 pil会导致脑子记得东西太多 import halcon as ha import torch from torch.utils.data import Datasetpath0 rE:\BaiduNetdiskDownload\cell class MyDataset(Dataset):de…...

让文物“活”起来,以3D数字化技术传承文物历史文化!
文物,作为不可再生的宝贵资源,其任何毁损都是无法逆转的损失。然而,当前文物保护与修复领域仍大量依赖传统技术,同时,文物管理机构和专业团队的力量相对薄弱,亟需引入数字化管理手段以应对挑战。 积木易搭…...

aarch64 Ubuntu20.04 安装docker
安装 docker 依赖项:sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release添加 Docker GPG 密钥:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyr…...

JAVA:CloseableHttpClient 进行 HTTP 请求的技术指南
1、简述 CloseableHttpClient 是 Apache HttpComponents 提供的一个强大 HTTP 客户端库。它允许 Java 程序与 HTTP/HTTPS 服务交互,可以发送 GET、POST 等各种请求类型,并处理响应。该库广泛用于 REST API 调用、文件上传和下载等场景。 2、特性 Close…...

Mac上搭建k8s环境——Minikube
1、在mac上安装Minikube可执行程序 brew cask install minikub 安装后使用minikube version命令查看版本 2、安装docker环境 brew install --cask --appdir/Applications docker #安装docker open -a Docker #启动docker 3、安装kubectl curl -LO https://storage.g…...

经典排序算法复习----C语言
经典排序算法复习 分类 交换类 冒泡快排 分配类 计数排序基数排序 选择类 选择排序 堆排序 归并类 归并排序 插入类 直接插入排序 希尔排序 折半插入排序 冒泡排序 基于交换。每一轮找最大值放到数组尾部 //冒泡排序 void bubSort(int* arr,int size){bool sorte…...

自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同
目录 1、引言 2、主要内容 2.1、定位对比:感知与规划的全维覆盖 2.2、数据与技术特性对比 2.3、技术协同:构建全栈研发生态 2.4、应用场景与评估体系 2.5、总结与展望 3、参考文献 1、引言 随着自动驾驶技术向全栈化迈进,Motional 团…...

[LUA ERROR] bad light userdata pointer
Cocos2d项目,targetSdkVersion30,在 android 13 设备运行报错: [LUA ERROR] bad light userdata pointer ,导致黑屏。 参考 cocos2dx 适配64位 arm64-v8a 30 lua 提示 bad light userdata pointer 黑屏-CSDN博客的方法 下载最新的Cocos2dx …...

【Java八股】JVM
JVM 1. jvm内存区域分为哪些部分 线程私有的:程序计数器、虚拟机栈、本地方法栈 程序计数器:指示当前线程执行到的字节码文件的行号,是线程切换后保证线程能恢复到正确的执行位置的关键 虚拟机栈:用于存储方法调用的数据&…...

集成学习(一):从理论到实战(附代码)
一、引言 在机器学习领域,打造一个独立、强大的算法是解决问题的关键。然而,集成学习提供了一种不同的视角:通过组合多个“弱”学习器来创建一个更强大的模型。本文探讨集成学习的思想、方法及其应用。 二、机器学习 vs 集成学习思想 传统…...