当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训练模型结合获得更好的外推性能

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/81456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL之基本查询(CURD)

表的增删改查 表的增加 语法: INSERT [INTO] table_name [(column [, column] ...)] VALUES (value_list) [, (value_list)] ... value_list: value, [, value] ...全列插入和指定列插入 //创建一张学生表 CREATE TABLE students (id INT UNSIGNED PRIMARY KEY AUTO_INCREM…

STM32简易计算机设计

运用 A0上拉按钮和 A1 A2下拉按钮设计按键功能 加上独特的算法检测设计&#xff0c;先计算&#xff08;&#xff09;内在计算乘除在计算加减的值在计算乘除优先级最后计算加减优先级 #include "stm32f10x.h" #include <stdio.h> #include <stdlib.h>…

sparkSQL读入csv文件写入mysql

思路 示例 &#xff08;年龄>18改成>20) mysql的字符集问题 把user改成person “让字符集认识中文”

计算机视觉与深度学习 | Python 实现SO-CNN-BiLSTM多输入单输出回归预测(完整源码和源码详解)

SO-CNN-BiLSTM **一、代码实现****1. 环境准备****2. 数据生成(示例数据)****3. 数据预处理****4. 模型构建****5. 模型训练****6. 预测与评估****二、代码详解****1. 数据生成****2. 数据预处理****3. 模型架构****4. 训练配置****5. 结果可视化****三、关键参数说明****四、…

Windows软件插件-音视频捕获

下载本插件 音视频捕获就是获取电脑外接的话筒&#xff0c;摄像头&#xff0c;或线路输入的音频和视频。 本插件捕获电脑外接的音频和视频。最多可以同时获取4个视频源和4个音频源。插件可以在win32和MFC程序中使用。 使用方法 首先&#xff0c;加载本“捕获”DLL&#xff0c…

ios打包ipa获取证书和打包创建经验分享

在云打包或本地打包ios应用&#xff0c;打包成ipa格式的app文件的过程中&#xff0c;私钥证书和profile文件是必须的。 其实打包的过程并不难&#xff0c;因为像hbuilderx这些打包工具&#xff0c;只要你输入的是正确的证书&#xff0c;打包就肯定会成功。因此&#xff0c;证书…

CycleISP: Real Image Restoration via Improved Data Synthesis通过改进数据合成实现真实图像恢复

摘要 大规模数据集的可用性极大释放了深度卷积神经网络(CNN)的潜力。然而,针对单图像去噪问题,获取真实数据集成本高昂且流程繁琐。因此,图像去噪算法主要基于合成数据开发与评估,这些数据通常通过广泛假设的加性高斯白噪声(AWGN)生成。尽管CNN在合成数据集上表现优异…

《Python星球日记》 第70天:Seq2Seq 与Transformer Decoder

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、Seq2Seq模型基础1. 什么是Seq2Seq模型?2. Encoder-Decoder架构详解1️⃣编码器(Encoder)2️⃣解码器(Decoder)3. 传统Seq2Seq模型的局限性…

Android 性能优化入门(二)—— 内存优化

1、概述 1.1 Java 对象的生命周期 各状态含义&#xff1a; 创建&#xff1a;分配内存空间并调用构造方法应用&#xff1a;使用中&#xff0c;处于被强引用持有&#xff08;至少一个&#xff09;的状态不可见&#xff1a;不被强引用持有&#xff0c;应用程序已经不再使用该对象…

GCC 版本与C++ 标准对应关系

GCC 版本 与支持的 C 标准&#xff08;C11、C14、C17、C20、C23&#xff09; 的对应关系 GCC 版本与 C 标准支持对照表 GCC 版本默认 C 标准C11C14C17C20C23GCC 4.8C98✅ (部分支持)❌❌❌❌GCC 4.9C98✅ (完整支持)❌❌❌❌GCC 5.1C98✅✅ (完整支持)❌❌❌GCC 6.1C14✅✅✅ …

5、事务和limit补充

一、事务【都是重点】 1、了解 一个事务其实就是一个完整的业务逻辑。 要么同时发生&#xff0c;要么同时结束。 是一个最小的工作单元。 不可再分。 看这个视频&#xff0c;黑马的&#xff0c;4分钟多点就能理解到 可以理解成&#xff1a; 开始事务-----如果中间抛出异常…

一套基于 Bootstrap 和 .NET Blazor 的开源企业级组件库

前言 今天大姚给大家分享一套基于 Bootstrap 和 .NET Blazor 的开源企业级组件库&#xff1a;Bootstrap Blazor。 项目介绍 BootstrapBlazor 是一套基于 Bootstrap 和 Blazor 的开源&#xff08;Apache License&#xff09;、企业级组件库&#xff0c;无缝整合了 Bootstrap …

mac-M系列芯片安装软件报错:***已损坏,无法打开。推出磁盘问题

因为你安装的软件在Intel 或arm芯片的mac上没有签名导致。 首先打开任何来源操作 在系统设置中配置&#xff0c;如下图&#xff1a; 2. 然后打开终端&#xff0c;输入&#xff1a; sudo spctl --master-disable然后输入电脑锁屏密码 打开了任何来源&#xff0c;还遇到已损坏…

RK3568-鸿蒙5.1与原生固件-扇区对比分析

编译生成的固件目录地址 ../openharmony/out/rk3568/packages/phone/images鸿蒙OS RK3568固件分析 通过查看提供的信息&#xff0c;分析RK3568开发板固件的各个组件及其用途&#xff1a; 主要固件组件 根据终端输出的文件列表&#xff0c;RK3568固件包含以下关键组件&#x…

Java正则表达式:从基础到高级应用全解析

Java正则表达式应用与知识点详解 一、正则表达式基础概念 正则表达式(Regular Expression)是通过特定语法规则描述字符串模式的工具&#xff0c;常用于&#xff1a; 数据格式验证文本搜索与替换字符串分割模式匹配提取 Java通过java.util.regex包提供支持&#xff0c;核心类…

进程间通信--信号量【Linux操作系统】

文章目录 并发编程相关基础概念信号量深刻理解信号量使用共享资源的方式分块使用共享资源的方式会出现的问题举例子理解信号量的第二个特性---预定信号量要成为计数器面临的问题 信号量相关操作接口--POSIX库函数&#xff1a;sem_init库函数&#xff1a;sem_destroy库函数&…

谢赛宁团队提出 BLIP3-o:融合自回归与扩散模型的统一多模态架构,开创CLIP特征驱动的图像理解与生成新范式

BLIP3-o 是一个统一的多模态模型&#xff0c;它将自回归模型的推理和指令遵循优势与扩散模型的生成能力相结合。与之前扩散 VAE 特征或原始像素的研究不同&#xff0c;BLIP3-o 扩散了语义丰富的CLIP 图像特征&#xff0c;从而为图像理解和生成构建了强大而高效的架构。 此外还…

HarmonyOs开发之——— ArkWeb 实战指南

HarmonyOs开发之——— ArkWeb 实战指南 谢谢关注!! 前言:上一篇文章主要介绍HarmonyOs开发之———合理使用动画与转场:CSDN 博客链接 一、ArkWeb 组件基础与生命周期管理 1.1 Web 组件核心能力概述 ArkWeb 的Web组件支持加载本地或在线网页,提供完整的生命周期回调体…

黑马程序员C++2024版笔记 第0章 C++入门

1.C代码的基础结构 以hello_world代码为例&#xff1a; 预处理指令 #include<iostream> using namespace std; 代码前2行是预处理指令&#xff0c;即代码编译前的准备工作。&#xff08;编译是将源代码转化为可执行程序.exe文件的过程&#xff09; 主函数 主函数是…

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习(2)復習3、单词(1)日语(2)日语片假名单词4、对话练习5、单词辨析记录6、总结1、前言 (1)情况说明 自己在今年,在日本留学中,目前在语言学校,…