banner
约 4,800 字
16 分钟

s1: Simple Test-Time Scaling论文阅读

摘要

本文解析 s1 如何以 1,000 条筛选后的推理样本微调 Qwen2.5-32B-Instruct,并通过预算强制在推理阶段控制思考长度。重点讨论数据筛选、Budget Forcing、实验结论及其适用边界。

s1: Simple Test-Time Scaling论文阅读

写在前面

推理模型的能力增长并不只来自训练阶段的更大模型和更多数据。对同一个已经训练好的模型,允许它在回答前投入更多推理 token,也可能提高答案质量。这类方法通常被称为 Test-Time Scaling,测试时扩展

s1 的价值不在于提出复杂的新训练框架,而在于给出一个足够直接的验证:以 1,000 条经过筛选的推理数据完成 Supervised Fine-Tuning,监督微调,再在解码阶段控制模型停止思考的时机,就能让开源模型在多个高难推理基准上获得显著提升,并呈现出随推理预算增长而改善的趋势。

这篇文章围绕四个问题展开:为什么小数据集也能有效;s1K 是怎样构造的;Budget Forcing,预算强制 如何让模型继续思考;这种增益在性能、可控性和成本上是否成立。

速读卡片

项目

信息

论文

s1: Simple Test-Time Scaling

作者

Niklas Muennighoff, Zitong Yang, Weijia Shi, Xiang Lisa Li, Li Fei-Fei, Hannaneh Hajishirzi, Luke Zettlemoyer, Percy Liang, Emmanuel Candès, Tatsunori Hashimoto

最终发表

EMNLP 2025,页 20275-20321

本地版本

arXiv:2501.19393v3,2025-03-01

基座模型

Qwen2.5-32B-Instruct

训练数据

s1K,1,000 条题目、推理轨迹与答案

核心方法

高质量数据筛选 + 监督微调 + 预算强制

评测

AIME24、MATH500、GPQA Diamond

代码与数据

GitHub

论文入口

arXiv / EMNLP 2025

最终发表版本为 EMNLP 2025。本文以本地 v3 文本和最终公开版本信息为准。官方仓库后续发布的 s1.1 使用了不同的推理轨迹数据,不应与本文的 s1-32B 实验直接混为一谈。

一句话概括

s1 证明了一个朴素但重要的工程结论:在推理任务中,数据质量、难度和覆盖范围的联合筛选,可以比盲目扩大监督数据更有效;模型在将要过早结束时被要求继续检查推理,也能把额外推理预算转化为更好的答案。

全文主线

论文的方法可压缩为一条链路。先从大规模候选题中筛出少量但困难、多样且质量可靠的样本;用这些带有长推理过程的数据微调基础模型;在推理时根据预算阻止模型过早结束,并在必要时追加 Wait 触发复核;最后同时衡量正确率、预算可控性和扩展曲线。

s1 的数据与推理链路(图由AI辅助绘制)
s1 的数据与推理链路(图由AI辅助绘制)

这张图也界定了两类投入。s1K 和监督微调属于训练阶段投入,决定模型是否学会稳定的长链推理格式;预算强制发生在推理阶段,不更新参数,只改变模型何时结束思考。两者缺一不可:没有合适的推理模型,强行延长输出容易变成重复;没有推理阶段控制,模型又会在尚未检查答案时过早停止。

研究问题:如何用最简单的方式实现测试时扩展

传统语言模型通常在生成到结束标记时立即作答。推理模型则把一部分输出分配给中间推理,因此可以通过两条路径增加测试时计算量。

一类是并行扩展:独立生成多份答案,再通过多数投票或奖励模型选择结果。它实现简单,但每个候选之间不能共享中间结论。另一类是串行扩展:让同一条推理轨迹继续向前,后续 token 可以检查、修正或细化前文。s1 关注后者。

论文的难点不只是让输出变长,而是回答三个可验证的问题。

问题

论文的回答

长推理从哪里来

s1K 中的题目、推理轨迹和答案进行监督微调

如何控制推理预算

以结束思考标记控制上限;以抑制结束标记和追加 Wait 控制下限

如何判断方法有效

除准确率外,同时评估 Control,可控性Scaling,扩展性

这种表述比只报告单个 benchmark 分数更严格。一个模型即使偶尔能通过长输出得到好结果,如果无法稳定地落在指定预算内,或随着预算增加反而退化,就不构成可用的测试时扩展方法。

核心贡献

第一,论文提出并公开 s1K。它不是随机抽取的 1,000 条指令,而是围绕质量、难度和多样性联合筛选的推理训练集。作者以此强调,推理微调的数据选择本身就是主要变量。

第二,论文提出预算强制。该方法不依赖额外搜索树、过程奖励模型或强化学习;它直接操作模型的思考结束位置,使推理长度在给定区间内可控,并让模型在早停时获得一次继续检查的机会。

第三,论文为测试时扩展提出三项指标。Control 衡量预算是否被准确执行,Scaling 衡量准确率随推理预算增长的平均斜率,Performance 则记录预算范围内的最高性能。三个指标共同避免了只看最高分而忽略成本和稳定性的判断。

方法一:用 s1K 把训练样本变成有效的推理预算

从 59,029 条候选题到 1,000 条样本

作者先汇总了 16 个来源的 59,029 道候选问题,并为每个问题收集推理轨迹和参考答案。筛选过程不是单一打分,而是连续执行三个约束。

筛选维度

实际操作

要解决的问题

质量

清理 API 异常和格式异常数据,并保留质量较高的来源样本

避免模型学习错误格式、无效轨迹或低可信答案

难度

移除可被 Qwen2.5-7B-Instruct 或 Qwen2.5-32B-Instruct 正确解出的题目;同时用推理轨迹长度作为难度信号

避免有限预算被简单题占据

多样性

依据数学主题分类体系,并扩展到科学等领域,按领域均衡采样

避免数据集中在少数题型,导致能力窄化

清洗后,候选集从 59,029 条降至 51,581 条;经难度过滤后为 24,496 条。最终的 s1K 覆盖约 50 个领域,其中一部分来自作者认为无需进一步过滤的高质量来源,其余样本采用按领域均衡、偏向更长推理轨迹的方式选取。

s1K 的领域覆盖与样本效率(论文原图)
s1K 的领域覆盖与样本效率(论文原图)

左图说明 s1K 并非单一竞赛数学数据集,而是包含多个数学分支及部分科学问题。右图传达的是样本效率,而不是模型规模比较:s1-32B 只使用 1,000 个微调样本,就在 MATH500 上达到 93.0%。这种结果支持了论文的核心判断,但不等于 1,000 条数据在任何模型、任何任务上都足够。

一个容易被忽略的细节是,s1K 并不要求所有轨迹和最终答案完全正确。论文报告其自动评分下约 53.6% 的样本被判为正确。作者的立场是,训练目标首先是获得有价值的推理过程,而不是构造零噪声答案集。这种选择具有风险:若任务可自动验证,工程上仍应优先保留正确、可复核的轨迹;若无法验证,则需要把轨迹质量和答案正确性分开抽检。

为什么不是直接使用全部 59K 数据

全量数据当然能训练出较强模型,但不一定是这项任务的高效选择。论文的消融实验显示,只满足质量、只满足多样性或只偏向最长轨迹,都弱于三项约束共同满足的 s1K。将训练数据从 1K 扩大到 59K 后,三项基准的差异置信区间跨过零,不能证明其相对 s1K 存在稳定优势;但训练成本从约 7 H100 GPU 小时增加到约 394 H100 GPU 小时。

s1K 数据消融结果(论文原表)
s1K 数据消融结果(论文原表)

表中的结论应按统计意义解读。1K-random1K-diverse 在 AIME24 上明显更差,说明质量或多样性单独成立都不够;59K-full 的点估计在 AIME24 上略高于 s1K,但区间包含正负值,因而不能据此宣称全量数据稳定优于筛选数据。这里真正成立的结论是:在该基座模型和这些评测上,经过三维筛选的 1K 数据具有很高的性价比。

监督微调本身并不复杂

训练部分采用 Supervised Fine-Tuning,监督微调。基座是 Qwen2.5-32B-Instruct,损失只计算在推理轨迹和最终答案上,而不计算问题文本。作者使用完整长序列训练,避免大量样本被截断;在 16 张 H100 上训练约 26 分钟。

下面的伪代码只表达训练对象,不对应仓库中的完整实现。

纯文本
input: question, reasoning_trace, final_answer

sequence = question
         + <think>
         + reasoning_trace
         + <answer>
         + final_answer

loss = cross_entropy(sequence[reasoning_trace and final_answer])
update(Qwen2.5-32B-Instruct, loss)

论文附录还显示,推理训练不能随意压缩上下文。以 AIME24 为例,4,096 token 的训练序列会截断约 74% 的训练样本;相对于 32,768 token 序列,模型表现更低且平均思考更长。这说明截断不仅损失信息,还可能破坏模型对完整推理和答案收束方式的学习。

方法二:Budget Forcing 不是提示词,而是解码控制

Budget Forcing 的目标是把推理 token 预算显式变成控制变量。它利用模型推理格式中的结束思考标记,分别处理上限和下限。

当模型达到最大思考预算时,系统追加结束思考标记,并可追加答案前缀,要求模型停止推理、输出当前最优答案。这样可以避免一次请求无限扩张。

当模型在达到最小预算前准备结束思考时,系统抑制该结束标记,在当前推理后追加 Wait,再让模型继续生成。Wait 并不是提供新知识,而是把模型从过早收束的状态拉回推理轨迹,使其有机会复核前文。

预算强制如何触发自我修正(论文原图)
预算强制如何触发自我修正(论文原图)

图中的单词计数例子很小,但机制很清楚。模型初始答案为 2,追加 Wait 后重新读取问题并得到 3。这里不应把它理解为通用的自我纠错保证:追加文本只是在当前上下文上继续采样,能否纠错取决于模型是否已经具备有效的推理轨迹和复核能力。

可以把下限控制写成如下逻辑。

纯文本
while thinking_tokens < max_budget:
    token = generate_next_token()

    if token == end_of_thinking and thinking_tokens < min_budget:
        suppress(end_of_thinking)
        append_to_context('Wait')
        continue

    if token == end_of_thinking:
        break

force_answer_if_needed()

这段逻辑的重点是控制停止条件,而不是多轮对话。它要求推理模型具有明确的思考边界,并允许调用端截获或忽略该边界。因此它更适合本地部署、可控制解码过程的开源模型;对只暴露最终答案或隐藏推理 token 的闭源接口通常不可直接复现。

如何评价测试时扩展

论文不把更长输出直接当作更强能力,而是定义三项指标。

指标

含义

工程解释

Control

落在指定 token 区间内的运行比例

预算是否可预测,是否方便做延迟和成本控制

Scaling

准确率相对测试时计算量的平均斜率

多投入计算是否真的带来收益,正值才有意义

Performance

给定预算集合中的最高准确率

该方案可以达到的峰值能力

这三个指标存在取舍。多数投票可以增加总计算量,却不保证单次响应的 token 预算;拒绝采样能严格挑选短输出,却可能把较长、真正完成推理的样本排除。对面向用户的系统而言,Control 往往和准确率同样重要,因为它决定了服务能否在固定延迟和成本下运行。

实验结果:小数据微调与预算强制分别带来了什么

主结果

作者在 AIME24、MATH500 和 GPQA Diamond 上评估模型。AIME24 是 30 道竞赛数学题,MATH500 是 500 道数学问题,GPQA Diamond 是 198 道博士水平科学题。除特别说明外,评估采用贪心解码。

s1-32B 的主要基准结果(论文原表)
s1-32B 的主要基准结果(论文原表)

与 Qwen2.5-32B-Instruct 基座相比,s1-32B 的 AIME24 从 26.7% 提升到 56.7%,MATH500 从 84.0% 提升到 93.0%,GPQA Diamond 从 49.0% 提升到 59.6%。移除预算强制后,AIME24 下降到 50.0%,说明监督微调提供了主要能力基础,预算强制还带来了额外收益。

论文将 s1-32B 与当时公开报告的 o1-preview 进行了横向比较。AIME24 上前者高 12.1 个百分点,约为相对 27% 的提升;但 GPQA Diamond 仍低于 o1-preview。因此更准确的表述是:该方法在部分数学推理指标上达到了很强的样本效率,并非在所有推理领域全面超过更大或闭源模型。

推理预算增加后,性能是否真的持续增长

s1-32B 的测试时扩展曲线(论文原图)
s1-32B 的测试时扩展曲线(论文原图)

图中横轴是平均思考 token,纵轴是准确率。三个任务的曲线均显示,在论文考察的预算范围内,更多思考通常带来更高正确率。摘要给出的 AIME24 示例是从约 50% 增至约 57%。

但图 1 只说明趋势,不能说明增长机制。图 4 把串行预算强制与并行多数投票放在一起,给出了更关键的对比。

串行预算强制与并行多数投票的对比(论文原图)
串行预算强制与并行多数投票的对比(论文原图)

左图中,模型在接近结束时被阻止停止,并依次追加 Wait;AIME24 的准确率随平均思考长度上升。右图中,对基础模型独立采样 2 到 64 次再投票,虽然总 token 大幅增加,GPQA Diamond 的提升却较弱。论文由此认为,具备中间状态复用能力的串行推理在该设置下比并行投票更有效。

这一结论有明确边界。串行轨迹会在多次强制延长后趋于重复,论文观察到约六次延长后性能开始变平;超过上下文窗口时还可能直接退化。并行投票仍适合答案可验证、单次推理差异较大、且可接受更高并发成本的任务。这里比较的是特定模型、特定解码策略和特定任务,不能推广为串行方法必然优于并行方法。

为什么普通长度提示和拒绝采样不够

论文将预算强制与三类条件控制方法、拒绝采样进行比较。结论不在于 Wait 这个词本身,而在于是否真正控制了结束机制。

方法

可控性表现

扩展性表现

主要问题

Token 条件控制

较差

可能为负

仅在提示中声明 token 上限,模型未必遵守

Step 条件控制

有限

较弱

模型可能迎合格式,而不增加有效推理

类别条件控制

有限

不稳定

以短思考或长思考的粗粒度指令代替精确预算

拒绝采样

可满足预算

可能为负

偏好短轨迹,可能丢弃真正完成推理的长轨迹

预算强制

100%

正向

仍受模型质量、循环和上下文窗口限制

论文在 AIME24 的方法消融中报告,预算强制的 Control 为 100%,Scaling 为 15,最高性能为 56.7%;拒绝采样虽有 100% 的预算控制,却出现负扩展性。这对工程实现的启发很直接:限制长度不能只靠生成后筛选,更合理的方式是把预算写进解码状态机。

结果背后的工程含义

s1 最值得复用的不是某个数据集或某个续写词,而是三条设计原则。

第一,先定义能力缺口,再采集数据。s1K 不是追求数据总量,而是刻意排除已被基座模型轻易解决的问题。对已有模型做领域增强时,应先用基座模型跑过候选集,把有限人工或合成数据预算集中到失败样本、边界样本和高价值样本上。

第二,把长度预算与质量预算分开管理。长输出只是一种资源消耗,不是质量指标。服务端应记录推理 token、答案正确率、超时率和循环率;在不同预算档位下画出类似论文的曲线,才能知道增加推理是否值得。

第三,推理阶段控制必须有停止策略。预算强制同时包含最小和最大预算:前者用于避免过早结束,后者用于避免无限生成。真正的系统还应加入循环检测、最大上下文保护、超时处理和可验证任务的答案校验,而不能无限追加续写信号。

局限性与未来工作

论文的结论清晰,但适用范围并不无限。

数据方面,原始推理轨迹来自外部模型生成,且 s1K 存在一定比例的错误答案。公开数据便于复现训练,却无法消除蒸馏来源、自动评分和数据污染检测的局限。论文使用 8-gram 匹配对部分测试集做去重,但这不能覆盖所有语义级泄漏。

模型方面,实验主要围绕 Qwen2.5-32B-Instruct 与三个以数学、科学推理为主的基准展开。是否能迁移到代码、长文档分析、工具调用或多轮 Agent 工作流,需要独立验证。特别是工具调用任务的额外 token 往往应投入检索、执行和验证,而不是单纯延长自然语言推理。

解码方面,Wait 在多次使用后可能让模型重复已有内容,且受上下文窗口限制。作者提出的后续方向包括改变追加文本或频率惩罚、与多数投票结合,以及采用带过程奖励模型的搜索方法。这些方法可能带来更好的扩展曲线,但也会引入额外模型调用和系统复杂度。

我的启发

这篇论文纠正了一个常见误解:推理模型的提升不等于堆叠更复杂的训练技巧。只要把问题拆成数据、模型能力、推理控制和评估四层,许多改进都可以先用小规模实验验证。

对于实际开发,更可执行的路径是先建立一个可验证的困难样本集,分别测量基础模型在不同推理预算下的表现;随后选择少量高价值失败样本进行微调或提示优化;最后再决定是否引入搜索、投票、奖励模型或强化学习。这样能避免一开始就把成本投入到不可解释的大规模数据或复杂 Agent 流程中。

s1 也提醒我们,推理过程不是越长越好。有效扩展的本质是让额外计算用于检查假设、修正分支和收束答案;当模型只是在复述或循环时,更长的思考只会增加延迟和成本。因此,测试时扩展必须与可控的停止机制和任务级验证一起设计。

小结

s1 用一个小而完整的实验闭环说明了测试时扩展可以怎样落地:高质量的 1K 推理数据让基础模型具备更强的推理格式与能力,预算强制把额外推理 token 转化为可控的串行计算,三项评价指标则避免只凭单点准确率得出结论。

它没有解决长推理的所有问题,但为开源推理模型提供了一个成本较低、可复现且容易拆解的基线。后续工作若要超越这一基线,重点不应只是更长的输出,而应是更可靠的数据选择、更有效的过程验证和更稳定的计算分配。

参考链接

END