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

当AI自我纠错:一个简单的“Wait“提示如何让模型思考更深、推理更强

原论文:s1: Simple test-time scaling
作者:Niklas Muennighoff, Zitong Yang, Weijia Shi等(斯坦福大学、华盛顿大学、Allen AI研究所、Contextual AI)
论文链接:arXiv:2501.19393
代码仓库:GitHub - simplescaling/s1

1. 研究背景与问题

近年来,大语言模型的性能提升主要依赖于扩大预训练计算规模。而最近OpenAI的o1模型展示了一种新的范式——测试时间扩展(Test-time Scaling),即通过增加测试阶段的计算量来提升模型性能。然而,OpenAI并未公开其方法,这导致了许多复制尝试。

核心问题:如何以最简单的方法实现测试时间扩展并获得强大的推理性能?

2. 核心思路与方法

论文提出了两个关键创新:

2.1 高效数据策划(s1K数据集)

作者精心策划了一个仅包含1,000个问题的高效训练数据集,基于三个核心原则:

  1. 质量:确保数据集中的问题和解答格式优良
  2. 难度:选择足够具有挑战性的问题,需要复杂推理
  3. 多样性:涵盖不同领域的问题(数学、物理、生物等)

数据筛选流程

  • 从16个来源收集初始的59,029个问题
  • 使用API质量过滤和格式检查,减少到51,581个样本
  • 使用模型性能(Qwen2.5-7B和32B均无法解决)作为难度指标
  • 在50个不同领域中均衡采样,确保多样性

2.2 预算强制(Budget Forcing)技术

这是论文的核心创新,一种简单但高效的测试时间控制方法:

两种操作模式

  1. 最大限制强制:当模型生成的思考标记超过预设上限时,强制附加思考结束标记分隔符,迫使模型提供当前最佳答案
  2. 最小限制强制:当模型试图过早结束思考时,抑制结束标记生成,并插入"Wait"提示词,鼓励模型继续思考和自我纠正

预算强制不需要额外训练,纯粹是解码时的干预技术,实现简单但效果显著。

3. 实验设计

3.1 模型训练

  • 基础模型:Qwen2.5-32B-Instruct
  • 训练数据:s1K数据集(1,000个推理样本)
  • 训练效率:16个H100 GPU,仅需26分钟
  • 训练参数:5个epoch,batch size=16,学习率1e-5,余弦学习率衰减

3.2 评估基准

选择了三个广泛使用的推理密集型基准:

  1. AIME24:2024年美国邀请数学考试,30个高难度数学问题
  2. MATH500:500个竞赛级数学问题
  3. GPQA Diamond:198个博士级科学问题(生物、化学、物理)

3.3 测试时间扩展方法对比

研究比较了多种测试时间扩展方法:

  1. 预算强制(提出的方法)
  2. 标记条件控制:在提示中指定思考标记上限
  3. 步骤条件控制:在提示中指定思考步骤上限
  4. 类别条件控制:使用泛化提示(短/长思考)
  5. 拒绝采样:采样直至生成符合预定长度的回答

评估指标包括:

  • 控制性(Control):方法能够精确控制测试时间计算的程度
  • 扩展性(Scaling):性能随计算增加的提升斜率
  • 性能(Performance):方法能达到的最高准确率

4. 实验结果

4.1 测试时间扩展效果

s1-32B模型在三个基准上都展现了明显的测试时间扩展能力:

  • MATH500:随思考时间从512增至2048标记,准确率从约75%增至93%
  • AIME24:随思考时间从512增至8192标记,准确率从约20%增至近60%
  • GPQA Diamond:随思考时间从1024增至4096标记,准确率从约40%增至60%

4.2 不同测试时间扩展方法比较

方法控制性(%)扩展斜率性能(AIME24)评估次数
预算强制100%1556.7%5
标记条件控制40%-2440.0%5
标记条件+预算强制100%1340.0%5
步骤条件控制60%336.7%5
步骤条件+预算强制100%636.7%5
类别条件控制50%2536.7%2
拒绝采样100%-3540.0%5

预算强制展示了最佳的综合表现:

  • 完美的控制性(100%)
  • 良好的扩展斜率(15)
  • 最高的性能(56.7%)

4.3 与现有模型对比

模型样本数量AIME 2024MATH 500GPQA Diamond
API 模型
o1-previewN.A.44.6%85.5%73.3%
o1-miniN.A.70.0%90.0%60.0%
o1N.A.74.4%94.8%77.3%
Gemini 2.0 FlashN.A.60.0%N.A.N.A.
开源权重模型
Qwen2.5-32B-InstructN.A.26.7%84.0%49.0%
QwQ-32BN.A.50.0%90.6%54.5%
r1>800K79.8%97.3%71.5%
r1-distill800K72.6%94.3%62.1%
开源权重和数据
Sky-T117K43.3%82.4%56.8%
Bespoke-32B17K63.3%93.0%58.1%
s1-32B(本文)1K56.7%93.0%59.6%

s1-32B是最具样本效率的开源推理模型,性能超过o1-preview,并且数据集大小比其他模型少1-800倍。

4.4 数据策划方法的重要性

数据集AIME 2024MATH 500GPQA Diamond
1K-random(仅质量)36.7%90.6%52.0%
1K-diverse(仅多样性)26.7%91.2%54.6%
1K-longest(仅难度)33.3%90.4%59.6%
59K-full(全量数据)53.3%92.8%58.1%
s1K(质量+难度+多样性)50.0%93.0%57.6%

结果证明,三个数据筛选标准(质量、难度、多样性)的结合对于高效推理训练至关重要。仅依赖单一标准会导致明显的性能下降。

5. 关键发现与创新

5.1 预算强制的有效性

论文展示了一个简单但强大的预算强制示例(图3):

  • 当模型错误计算"raspberry"中字母’r’的数量(误认为是2个)
  • 预算强制通过插入"Wait"提示模型重新检查
  • 模型进行自我修正,得出正确答案(3个’r’)

这种简单的干预能提高模型思考质量,无需额外训练成本。

5.2 测试时间扩展的局限性

研究也发现了测试时间扩展的两个主要限制:

  1. 性能平缓化:增加思考时间到一定程度后,性能提升趋于平缓
  2. 上下文窗口限制:模型的上下文窗口限制了能使用的最大思考标记数

5.3 拒绝采样的反向扩展现象

有趣的是,研究发现使用拒绝采样时出现了反向扩展现象:随着允许的思考标记数增加,准确率反而下降。这表明:

  • 较短的生成往往来自模型一开始就走在正确轨道的情况
  • 较长的生成往往来自模型犯了错误需要回溯或自我质疑的情况

6. 结论与启示

s1论文提供了关于测试时间扩展的重要启示:

  1. 简单有效:简单的方法(1K样本+预算强制)可以实现与复杂方法相媲美的性能
  2. 资源高效:训练仅需7个H100 GPU小时,远低于竞争方法
  3. 开源透明:全部代码、数据和模型完全开源,促进社区研究

论文表明,语言模型在预训练中已经获得了推理能力,只需要适当的监督微调和测试时干预就能激活这些能力。这为构建高性能、低成本的推理系统提供了新的可能性。

7. 未来研究方向

研究指出了几个有前景的未来方向:

  1. 并行扩展补充:结合并行方法(如REBASE)可以突破顺序扩展的上下文窗口限制
  2. 预算强制改进:尝试轮换不同提示词或结合频率惩罚来避免重复循环
  3. 与强化学习结合:探索预算强制是否能与RL训练模型结合获得更好的外推性能

这项工作为推理模型研究建立了新的基准,并为测试时间计算优化提供了实用框架。

相关文章:

当AI自我纠错:一个简单的“Wait“提示如何让模型思考更深、推理更强

原论文:s1: Simple test-time scaling 作者:Niklas Muennighoff, Zitong Yang, Weijia Shi等(斯坦福大学、华盛顿大学、Allen AI研究所、Contextual AI) 论文链接:arXiv:2501.19393 代码仓库:GitHub - simp…...

esp32课设记录(一)按键的短按、长按与双击

课程用的esp32的板子上只有一个按键,引脚几乎都被我用光了,很难再外置按键。怎么控制屏幕的gui呢?这就得充分利用按键了,比如说短按、长按与双击,实现不同的功能。 咱们先从短按入手讲起。 通过查看原理图,…...

使用AI 生成PPT 最佳实践方案对比

文章大纲 一、专业AI生成工具(推荐新手)**1. 推荐工具详解****2. 操作流程优化****3. 优势与局限**二、代码生成方案(开发者推荐)**1. Python-pptx进阶用法****2. GitHub推荐**三、混合工作流(平衡效率与定制)**1. 工具链升级****2. 示例Markdown结构**四、网页转换方案(…...

React19源码系列之 API(react-dom)

API之 preconnect preconnect – React 中文文档 preconnect 函数向浏览器提供一个提示,告诉它应该打开到给定服务器的连接。如果浏览器选择这样做,则可以加快从该服务器加载资源的速度。 preconnect(href) 一、使用例子 import { preconnect } fro…...

supervisorctl守护进程

supervisorctl守护进程 1 安装 # ubuntu安装: sudo apt-get install supervisor 完成后可以在/etc/supervisor文件夹,找到supervisor.conf。 如果没有的话可以用如下命令创建配置文件(注意必须存在/etc/supervisor这个文件夹) s…...

下载的旧版的jenkins,为什么没有旧版的插件

下载的旧版的jenkins,为什么没有旧版的插件,别急 我的jenkins版本: 然后我去找对应的插件 https://updates.jenkins.io/download/plugins/ 1、Maven Integration plugin: Maven 集成管理插件。 然后点击及下载成功 然后 注意&…...

【ALINX 实战笔记】FPGA 大神 Adam Taylor 使用 ChipScope 调试 AMD Versal 设计

本篇文章来自 FPGA 大神、Ardiuvo & Hackster.IO 知名博主 Adam Taylor。在这里感谢 Adam Taylor 对 ALINX 产品的关注与使用。为了让文章更易阅读,我们在原文的基础上作了一些灵活的调整。原文链接已贴在文章底部,欢迎大家在评论区友好互动。 在上篇…...

出现 Uncaught ReferenceError: process is not defined 错误

在浏览器环境中,process 对象是 Node.js 环境特有的,因此当你在浏览器中运行代码时,会出现 Uncaught ReferenceError: process is not defined 错误。这个错误是因为代码里使用了 process.env.BASE_URL,而浏览器环境下并没有 proc…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 PostgreSQL常用函数速查表:从数据清洗到分析的全场景工具集引言一、字符串处理函数1.1 基础操作函数1.2 模式匹配函数(正则表达式)二、数值计算函数2.1 基础运算函数2.2 统计相关函数三、日期与时间函…...

【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性

注:仅学习使用~ 前情提要: 【时空图神经网络 & 交通】相关模型1:STGCN | 完全卷积结构,高效的图卷积近似,瓶颈策略 | 时间门控卷积层:GLU(Gated Linear Unit),一种特殊的非线性门控单元目录 STSGCN-2020年1.1 背景1.2 模型1.2.1 问题背景:现有模型存在的问题1.2…...

零基础学Java——第十一章:实战项目 - 微服务入门

第十一章:实战项目 - 微服务入门 随着互联网应用的复杂性不断增加,单体应用(Monolithic Application)在可扩展性、可维护性、技术栈灵活性等方面逐渐暴露出一些问题。微服务架构(Microservices Architecture&#xff…...

docker 学习记录

docker pull nginx docker 将本地nginx快照保存到当前文件夹下 docker save -o nginx.tar nginx:latestdocker 将本地nginx 加载 docker load -i nginx.tar docker运行nginx在80端口 docker run --name dnginx -p 80:80 -d nginxredis启动 docker run --name mr -p 6379:6379 -…...

自媒体工作室如何矩阵?自媒体矩阵养号策略

一、自媒体工作室矩阵搭建方法 1.纵向矩阵:在主流平台都开设账号,覆盖不同用户触达场景。 短视频:抖音、快手、视频号(侧重私域沉淀) 2.主账号导流:通过关联账号、评论区跳转链接实现流量互通 本地生活…...

南京邮电大学金工实习答案

一、金工实习的定义 金工实习是机械类专业学生一项重要的实践课程,它绝非仅仅只是理论知识在操作层面的简单验证,而是一个全方位培养学生综合实践能力与职业素养的系统工程。从本质上而言,金工实习是学生走出教室,亲身踏入机械加…...

【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率

C容器的实践与应用:轻松掌握set、map与multimap的区别与用法 一. 序列式容器与关联式容器1.1 序列式容器 (Sequential Containers)1.2 关联式容器 (Associative Containers) 二. set系列使用2.1 set的构造和迭代器2.2 set的增删查2.2.1 插入2.2.2 查找2.2.3 删除 2.…...

世界模型+大模型+自动驾驶 论文小汇总

最近看了一些论文,懒得一个个写博客了,直接汇总起来 文章目录 大模型VLM-ADVLM-E2EOpenDriveVLAFASIONAD:自适应反馈的类人自动驾驶中快速和慢速思维融合系统快系统慢系统快慢结合 世界模型End-to-End Driving with Online Trajectory Evalu…...

物联网设备远程管理:基于代理IP的安全固件更新通道方案

在物联网设备远程管理中,固件更新的安全性直接关系到设备功能稳定性和系统抗攻击能力。结合代理IP技术与安全协议设计,可构建安全、高效的固件更新通道。 一、代理IP在固件更新中的核心作用 网络层隐匿与路由优化 隐藏更新源服务器:通过代理I…...

MyBatis 延迟加载与缓存

一、延迟加载策略:按需加载,优化性能 1. 延迟加载 vs 立即加载:核心区别 立即加载:主查询(如查询用户)执行时,主动关联加载关联数据(如用户的所有账号)。 场景&#xf…...

C++函数三剑客:缺省参数·函数重载·引用的高效编程指南

前引:在C编程中,缺省参数、函数重载、引用是提升代码简洁性、复用性和效率的三大核心机制。它们既能减少冗杂的代码,又能增强接口设计的灵活性。本文将通过清晰的理论解析与实战案列,带你深入理解这三者的设计思想、使用场景以及闭…...

ORACLE 11.2.0.4 数据库磁盘空间爆满导致GAP产生

前言 昨天晚上深夜接到客户电话,反应数据库无法正常使用,想进入服务器检查时,登录响应非常慢。等两分钟后进入服务器且通过sqlplus进入数据库也很慢。通过检查服务器磁盘空间发现数据库所在区已经爆满,导致数据库在运行期间新增审…...

面试题总结一

第一天 1. 快速排序 public class QuickSort {public static void quickSort(int[] arr, int low, int high) {if (low < high) {// 分区操作&#xff0c;获取基准元素的最终位置int pivotIndex partition(arr, low, high);// 递归排序基准元素左边的部分quickSort(arr, …...

SWUST数据结构下半期实验练习题

1068: 图的按录入顺序深度优先搜索 #include"iostream" using namespace std; #include"cstring" int visited[100]; char s[100]; int a[100][100]; int n; void dfs(int k,int n) {if(visited[k]0){visited[k]1;cout<<s[k];for(int i0;i<n;i){i…...

专业版降重指南:如何用Python批量替换同义词?自动化操作不香嘛?

还在手动一个个改词降重&#xff1f;&#x1f440; 是兄弟就别再CtrlF了&#xff0c;来试试Python自动同义词替换批量降重法&#xff0c;简直是论文改写效率神器&#xff01; 这篇我们来一波实操干货&#xff1a; &#x1f449; 如何用Python写出一个自动替换论文关键词的脚本…...

一:操作系统之操作系统结构

深入浅出&#xff1a;一文读懂操作系统的五种核心结构 操作系统&#xff0c;作为计算机硬件与应用软件之间的桥梁&#xff0c;其内部组织结构是决定其性能、稳定性、可维护性和安全性的关键。就像建造房屋需要选择不同的建筑结构一样&#xff0c;设计操作系统也需要选择或混合…...

机器学习 Day18 Support Vector Machine ——最优美的机器学习算法

1.问题导入&#xff1a; 2.SVM定义和一些最优化理论 2.1SVM中的定义 2.1.1 定义 SVM 定义&#xff1a;SVM&#xff08;Support Vector Machine&#xff0c;支持向量机&#xff09;核心是寻找超平面将样本分成两类且间隔最大 。它功能多样&#xff0c;可用于线性或非线性分类…...

IIS入门指南:原理、部署与实战

引言&#xff1a;Web服务的基石 在Windows Server机房中&#xff0c;超过35%的企业级网站运行在IIS&#xff08;Internet Information Services&#xff09;之上。作为微软生态的核心Web服务器&#xff0c;IIS不仅支撑着ASP.NET应用的运行&#xff0c;更是Windows Server系统管…...

Linux运维——Shell脚本读取配置文件

Shell脚本读取配置文件 一、键值对格式配置文件&#xff08;最常用&#xff09;1.1、配置文件示例1.2、source命令导入1.3、sed解析1.4、解析数组 二、INI格式配置文件1.1、配置文件示例1.2、sed解析1.3、ini配置带数组&#xff08;显式声明数组&#xff09;1.4、ini配置带数组…...

答题pk小程序道具卡的获取与应用

道具卡是答题PK小程序中必不可少的一项增加趣味性的辅助应用&#xff0c;那么道具卡是如何获取与应用的呢&#xff0c;接下来我们来揭晓答案&#xff1a; 一、道具卡的获取&#xff1a; 签到获取&#xff1a;在每日签到中签到不仅可获得当日的签到奖励积分&#xff0c;同时连…...

leetcode3265. 统计近似相等数对 I-medium

1 题目&#xff1a;统计近似相等数对 I 官方标定难度&#xff1a;中 给你一个正整数数组 nums 。 如果我们执行以下操作 至多一次 可以让两个整数 x 和 y 相等&#xff0c;那么我们称这个数对是 近似相等 的&#xff1a; 选择 x 或者 y 之一&#xff0c;将这个数字中的两个…...

【架构篇】代码组织结构设计

代码组织结构设计&#xff1a;模块化分层与高效协作实践 摘要 本文以Java项目为例&#xff0c;解析后端代码组织的标准化结构&#xff0c;涵盖模块划分原则、依赖管理策略及实际应用场景。通过模块化设计提升代码可维护性、团队协作效率及系统扩展能力。 一、模块化设计的核心…...