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具备自回…...
神经网络|(九)概率论基础知识-泊松分布及python仿真
【1】引言 在前序学习进程中,我们已经知晓二项分布是多重伯努利分布,二伯努利分布对应的是可以无限重复、结果只有两种可能的随机试验。 相关文章链接为: 神经网络|(八)概率论基础知识-二项分布及python仿真-CSDN博客 上述文章还调用nump…...
机器学习 —— 深入剖析线性回归模型
一、线性回归模型简介 线性回归是机器学习中最为基础的模型之一,主要用于解决回归问题,即预测一个连续的数值。其核心思想是构建线性方程,描述自变量(特征)和因变量(目标值)之间的关系。简单来…...
vs封装dll 给C#使用
一,vs创建控制台应用 创建控制台应用得好处时,我们可以自己测试接口,如果接口没有问题,改成dll重新编译一遍就可以。 二, 创建一个c 类,将所需提供得功能 封装到类中。 这样可以将 所有功能,进…...
V8 引擎:深入理解 JavaScript 的执行环境
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
JDK 9新特性学习大纲
第1部分:引言与背景 第1章:JDK 9的诞生与目标 1.1 JDK 9的核心目标与设计哲学 1.2 JDK 9的重要更新概览 1.3 兼容性与升级策略 第2部分:模块化系统(Project Jigsaw) 第2章:模块化基础 2.1 模块化的背景…...
DeepSeek从入门到精通:全面掌握AI大模型的核心能力
文章目录 一、DeepSeek是什么?性能对齐OpenAI-o1正式版 二、Deepseek可以做什么?能力图谱文本生成自然语言理解与分析编程与代码相关常规绘图 三、如何使用DeepSeek?四、DeepSeek从入门到精通推理模型推理大模型非推理大模型 快思慢想&#x…...
MySQL数据库(七)SQL 优化
目录 一 插入数据 1 批量插入 2 手动提交事务 3 主键顺序插入 4* 使用load插入指令数据 二 主键优化 1 数据组织方式 2 页分裂 编辑3 页合并 4* 主键设计原则 三 order by 优化 四 group by 优化 五 limit 优化 六 count优化 七 update优化 一…...
Oracle数据连接 Dblink
拓展: oracle远程登陆数据库 1.oracle客户端或者服务端 2.修改你的电脑如下路径文件(服务器IP,服务器的数据库名,服务器的数据库端口号) c:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora orcl_109 (DESCRIPTION …...
基于 Nginx 的 CDN 基础实现
概览 本文是对基于Nginx的CDN网络的学习笔记,阅读的代码为:https://github.com/leandromoreira/cdn-up-and-running 其中,先确定CDN中的一些基础概念: Balancer:负载均衡,即请求数据的流量最开始打到Bal…...
网络编程基础1
七层协议模型和四层协议模型 七层协议模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 四层协议模型:链路层、网络层、传输层、应用层 TCP通信流程 服务器端 (1)创建socket(socket) (2)绑定自己的IP(bind) (3)监听客户端连接(liste…...
Web3 跨链技术:构建互联互通的虚拟世界
随着区块链技术的蓬勃发展,我们正站在 Web3 时代的门槛上。Web3 不仅仅是技术的革新,它更是一场关于数据所有权和互联网自由的革命。然而,区块链技术的一个核心挑战是如何打破不同链之间的壁垒,实现信息和资源的自由流动。跨链技术…...
【专题】2025年我国机器人产业发展形势展望:人形机器人量产及商业化关键挑战报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p39668 机器人已广泛融入我们生活的方方面面。在工业领域,它们宛如不知疲倦的工匠,精准地完成打磨、焊接等精细工作,极大提升了生产效率和产品质量;在日常生活里,它们是贴心…...
FPGA VGA timing
概念 VGA(Video Graphics Array)时序是控制VGA接口显示图像的关键参数,它主要包括行时序和场时序两部分。以下是对VGA时序的详细解释: 一、VGA接口简介 VGA接口是IBM公司在1987年推出的一种使用模拟信号的视频传输标准,具有成本低、结构简单、应用灵活等优点,至今仍被广…...
[7] 游戏机项目说明
[7] 游戏机项目说明 在这节课中,我们将学习如何基于FreeRTOS开发一个简单的游戏项目。我们会使用一个开源项目nwatch,它是一个基于STM32的开源手表,包含了三个游戏。我们的目标是将这个游戏移植到我们的开发板上,并逐步使用FreeR…...
UE学习日志#25、26 C++笔记#11 智能指针
注:本篇内容主要为《C20高级编程》的学习笔记 当智能指针离开作用域或被重置时,会自动释放所占用的资源。智能指针可用于管理在函数作用域内(或作为类的数据成员)动态分配的资源。也可以通过函数实参来传递动态分配的资源的所有权…...
Spring AI -使用Spring快速开发ChatGPT应用
前言 Spring在Java生态中一直占据大半江山。最近我发现Spring社区推出了一个Spring AI项目,目前该项目还属于Spring实验性项目,但是我们可以通过该项目,可以非常快速的开发出GPT对话应用。 本篇文章将会对SpringAI进行简单的介绍和使用&#…...
windows通过网络向Ubuntu发送文件/目录
由于最近要使用树莓派进行一些代码练习,但是好多东西都在windows里或虚拟机上,就想将文件传输到树莓派上,但试了发现u盘不能简单传送,就在网络上找到了通过windows 的scp命令传送 前提是树莓派先开启ssh服务,且Window…...
大语言模型需要的可观测性数据的关联方式
可观测性数据的关联方式及其优缺点 随着现代分布式架构和微服务的普及,可观测性(Observability)已经成为确保系统健康、排查故障、优化性能的重要组成部分。有效的可观测性数据关联方式不仅能够帮助我们实时监控系统的运行状态,还…...
python连点器
要实现一个用于抖音点赞的鼠标连点工具,可以通过编程或现有软件实现。以下是两种常见方法(但请注意:频繁自动化操作可能违反平台规则,需谨慎使用): 方法 1:使用现成工具(如 AutoClic…...
Nginx部署Umi React前端项目标准配置
文章目录 概要前端Umi项目配置文件请求后端Api打包 后端项目Nginx配置配置文件 错误信息 概要 使用UmiJs开发的前端项目打包部署在Nginx,主要是Umi中项目的配置和Nginx的配置 前端Umi项目 基于"umijs/max": "^4.3.24", "react": &…...
Ubuntu20.4软件应用打不开
安装 snap-store: 确保 Snap 已安装: Snap 是一个包管理系统,需要先确保 snapd 已经安装。如果系统中没有安装,可以通过以下命令来安装 Snap: sudo apt update sudo apt install snapd安装 snap-store: 使…...
如何在Vscode中接入Deepseek
一、获取Deepseek APIKEY 首先,登录Deepseek官网的开放平台:DeepSeek 选择API开放平台,然后登录Deepseek后台。 点击左侧菜单栏“API keys”,并创建API key。 需要注意的是,生成API key复制保存到本地,丢失…...
apisix的real-ip插件使用说明
k8s集群入口一般都需要过负载均衡,然后再到apisix。 这时候如果后台业务需要获取客户端ip,可能拿到的是lb或者网关的内网ip。 这里一般要获取真实ip需要做几个处理。 1. 负载均衡上,一般支持配置获取真实ip参数,需要配置上。然…...
基于 Ollama+Docker+OpenWebUI 的本地化部署deepseek流程
搭建deepseek 安装Ollama Ollama官方下载地址 下载完成后双击打开Ollama进行安装,点击install 安装完成后系统会弹出下图提示代表安装成功并且已启动 验证安装 ollama -v安装完成后,cmd 打开命令行窗口,输入 “ollama -v” 测试,显示 olla…...
打家劫舍3
今天和打家讲一下打家劫舍3 题目: 题目链接:337. 打家劫舍 III - 力扣(LeetCode) 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为root。 除了 root 之外,每栋房子有且只有一个“父“…...
第三个Qt开发实例:利用之前已经开发好的LED驱动在Qt生成的界面中控制LED2的亮和灭
前言 上一篇博文 https://blog.csdn.net/wenhao_ir/article/details/145459006 中,我们是直接利用GPIO子系统控制了LED2的亮和灭,这篇博文中我们利用之前写好的LED驱动程序在Qt的生成的界面中控制LED2的亮和灭。 之前已经在下面两篇博文中实现了LED驱动…...
归一化与伪彩:LabVIEW图像处理的区别
在LabVIEW的图像处理领域,归一化(Normalization)和伪彩(Pseudo-coloring)是两个不同的概念,虽然它们都涉及图像像素值的调整,但目的和实现方式截然不同。归一化用于调整像素值的范围,…...
DeepSeek-V2 论文解读:混合专家架构的新突破
论文链接:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 目录 一、引言二、模型架构(一)多头部潜在注意力(MLA):重塑推理效率(二)DeepSeekM…...
基于布谷鸟算法实现率定系数的starter
布谷鸟算法(Cuckoo Search, CS)是一种基于群体智能的优化算法,灵感来源于布谷鸟的繁殖行为以及宿主鸟发现外来蛋的概率。该算法由 Xin-She Yang 和 Suash Deb 在2009年提出。它结合了莱维飞行(Lvy flight)这一随机漫步…...
Java之自定义注解
介绍:在Java中,自定义注解是通过 interface 关键字定义的。注解是一种元数据,可以附加到类、方法、字段等代码元素上,用于提供额外的信息或配置。 1. 自定义注解的基本语法 使用 interface 关键字定义注解,注解中可以…...
SpringCloud面试题----Nacos和Eureka的区别
功能特性 服务发现 Nacos:支持基于 DNS 和 RPC 的服务发现,提供了更为灵活的服务发现机制,能满足不同场景下的服务发现需求。Eureka:主要基于 HTTP 的 RESTful 接口进行服务发现,客户端通过向 Eureka Server 发送 HT…...
prometheus配置大盘与告警
1、prometheus配置大盘 kube-prometheus-stack 定义 dashboard https://stackoverflow.com/questions/77271449/persist-grafana-dashboard-on-kube-prometheus-and-expose-itAlso to persist dashboards to outlive pod deletion follow the below steps: Create your cust…...
记录 | WPF创建和基本的页面布局
目录 前言一、创建新项目注意注意点1注意点2 解决方案名称和项目名称 二、布局2.1 Grid2.1.1 RowDefinitions 行分割2.1.2 Row & Column 行列定位区分 2.1.3 ColumnDefinitions 列分割 2.2 StackPanel2.2.1 Orientation 修改方向 三、模板水平布局【Grid中套StackPanel】中…...
git代理设置
在 Git 中,可以通过以下命令查看当前设置的代理配置: 查看 HTTP 代理 git config --get http.proxy查看 HTTPS 代理 git config --get https.proxy查看全局代理设置 如果你设置了全局代理,可以通过以下命令查看: git config …...
使用 Axios ——个人信息修改与提示框实现
目录 详细介绍:个人信息设置与修改页面实现 1. HTML 结构 2. CSS 样式 3. JavaScript 核心逻辑 a. 信息渲染与表单提交 b. 头像上传与预览 4. 功能详解 5. 总结 提示: 这段代码展示了如何创建一个简单的个人信息设置页面,包含用户个…...
(done) openMP学习 (Day11: 可怕的东西:内存模型,Atomics,Flush(Pairwise同步))
url: https://dazuozcy.github.io/posts/introdution-to-openmp-intel/#19-%E6%8A%80%E8%83%BD%E8%AE%AD%E7%BB%83%E9%93%BE%E8%A1%A8%E5%92%8Copenmp 这一节介绍了一些概念,包括 OpenMP 内存模型,串行一致性的概念,以及 Flush 操作ÿ…...
docker数据持久化的意义
Docker 数据持久化是指在 Docker 容器中保存的数据不会因为容器的停止、删除或重启而丢失。Docker 容器本身是临时性的,默认情况下,容器内的文件系统是临时的,容器停止或删除后,其中的数据也会随之丢失。为了确保重要数据…...
【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)
偏差和方差的权衡(Bias-Variance Tradeoff) 1. 引言 在机器学习模型的训练过程中,我们常常面临一个重要的挑战:如何平衡 偏差(Bias) 和 方差(Variance),以提升模型的泛…...
android的Compose 简介
Jetpack Compose 简介 Jetpack Compose 是 Android 官方推出的声明式 UI 工具包,用于替代传统 XML 布局,简化界面开发流程。它基于 Kotlin 语言,通过函数式编程实现高效、灵活的 UI 构建,支持实时预览和更直观的状态管理。 优势…...
git学习
报错504:代理有问题 查看代理: 法1 export | grep proxy 法2 env | grep xxx设置代理HTTPS_PROXY为空: export HTTPS_PROXY重进入git bash,HTTPS_PROXYxxx,又出现了 有效的办法 无效的办法: #取消htt…...
Spring Boot 对接深度求索接口实现知识问答功能
Spring Boot 对接深度求索接口实现知识问答功能 一、概述 本文将详细介绍如何使用 Spring Boot 对接深度求索(DeepSeek)接口,实现知识问答功能。深度求索是一个强大的自然语言处理平台,提供多种 API 接口,包括知识问…...
探索Scikit-learn:Python中的机器学习宝库
探索Scikit-learn:Python中的机器学习宝库 引言 在数据科学和机器学习的世界中,Python无疑是最受欢迎的编程语言之一。而在Python的众多机器学习库中,Scikit-learn无疑是最闪耀的明星之一。Scikit-learn是一个开源的Python库,它…...
活动预告 | Power Hour: Copilot 引领商业应用的未来
课程介绍 智能化时代,商业应用如何实现突破?微软全球副总裁 Charles Lamanna 将为您深度解析,剖析其中关键因素。 在本次线上研讨会中,Charles Lamanna 将分享他在增强商业运营方面的独到见解与实战策略,深度解读商业…...
MIT6.824 Lecture 2-RPC and Threads Lecture 3-GFS
Lecture 2-RPC and Threads Go语言在多线程、同步,还有很好用的RPC包 《Effective Go》 线程是实现并发的重要工具 在分布式系统里关注多线程的原因: I/O concurrencyParallelismConvenience Thread challenges 用锁解决race问题 Coordination channel…...
MariaDB *MaxScale*实现mysql8读写分离
1.MaxScale 是干什么的? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 2.MaxScale 实验环境 中间件192.168.12…...
Linux之Http协议分析以及cookie和session
Linux之Http协议分析以及cookie和session 一.分析请求行与响应行1.1请求行1.1.1资源的URL路径1.1.2常见的方法1.2响应行 二.cookie和session2.1cookie2.2session 一.分析请求行与响应行 在我们简单了解了请求和响应的格式以及模拟实现了请求和响应后我们已经可以通过网页来访问…...
Python Pandas(5):Pandas Excel 文件操作
Pandas 提供了丰富的 Excel 文件操作功能,帮助我们方便地读取和写入 .xls 和 .xlsx 文件,支持多表单、索引、列选择等复杂操作,是数据分析中必备的工具。 操作方法说明读取 Excel 文件pd.read_excel()读取 Excel 文件,返回 DataF…...
iOS主要知识点梳理回顾-3-运行时
运行时(runtime) 运行时是OC的重要特性,也是OC动态性的根本支撑。动态,如果利用好了,扩展性就很强。当然了,OC的动态性只能算是一个一般水平。与swift、java这种强类型校验的语言相比,OC动态性很…...
[渗透测试]热门搜索引擎推荐— — shodan篇
[渗透测试]热门搜索引擎推荐— — shodan篇 免责声明:本文仅用于分享渗透测试工具,大家使用时,一定需要遵守相关法律法规。 除了shodan,还有很多其他热门的,比如:fofa、奇安信的鹰图、钟馗之眼等࿰…...