GO TO A SECTION

↑ ↓ to navigate · Enter to openExplore all sections →
FDEInterviews logo
EMNLP 2025

s1: Simple test-time scaling

Fine-tune a 32B model on 1,000 chosen reasoning traces for 26 minutes, then append "Wait" when it tries to stop thinking. AIME24 went from 50% to 57%, which on 30 problems is two answers.

Breakdown by FDE Interviews · 11 min read · Updated

About the original · 2025
AUTHORS
Muennighoff, Yang, Shi, Li et al.
FROM
Stanford University, University of Washington, Allen Institute for AI, Contextual AI
PUBLISHED
Jan 2025 · EMNLP 2025
CITED BY
1,652Semantic Scholar · Nov 2026
IN THIS BREAKDOWN · 10 SECTIONS

You can read 18% of this breakdown.

01

The paper in one minute

When OpenAI's o1 came out, its main novelty was a curve: accuracy on hard math rose as the model was allowed to think for longer. Replications used reinforcement learning or large distilled datasets. The s1 paper asks for the simplest recipe that produces both a strong reasoning model and that curve.

The recipe has two parts. First, data. The authors collected 59,029 questions from math, science and quantitative puzzles, generated a reasoning trace and answer for each with Google's Gemini 2.0 Flash Thinking, and filtered down to 1,000 (s1K). They removed traces with formatting problems, removed questions that either Qwen2.5-7B or Qwen2.5-32B could already solve, then sampled across 50 subject domains, favoring longer traces. Qwen2.5-32B-Instruct fine-tuned on these 1,000 examples became s1-32B, in 26 minutes on 16 H100 GPUs.

Second, budget forcing, a decoding trick. To cap thinking, insert the end-of-thinking marker when the budget is reached, so the model has to answer. To extend thinking, block the marker when the model tries to stop and append "Wait", which often makes it re-check and fix an answer. With budget forcing, s1-32B rose from 50.0% to 56.7% on AIME24, above o1-preview's 44.6%, and scored 93.0% on MATH500. AIME24 has only 30 problems, so 50.0% to 56.7% is 15 to 17 correct answers.

THE IDEA, VISUALLY
BUDGET FORCING (SECTION 3.1, FIGURE 3) thinking: ... the 7th letter is 'r', count = 2. The number of 'r's in "raspberry" is 2. under the minimum over the maximum suppress end-of-thinking, append "Wait" append end-of-thinking + "Final Answer:" Wait, let's re-read... r-a-s-p-b-e-r-r-y ... count = 3 THE RECIPE (SECTION 2) 59,029 questions with Gemini Flash Thinking traces -> drop API errors and bad formatting (51,581) -> drop questions Qwen2.5 7B or 32B can solve (24,496) -> sample 1,000 across 50 domains, favoring long traces Fine-tune Qwen2.5-32B-Instruct: 26 min on 16 H100s. Only 53.6% of s1K traces were graded correct. WHICH 1,000? AIME24 (TABLE 2) 1K random 36.7 1K most diverse 26.7 1K longest traces 33.3 s1K (all three criteria) 50.0 all 59K (57x the GPU time) 53.3 budget forced to ~30K tokens; 59K vs s1K interval [-13.3, +20.0] points, so not a clear difference AGAINST OTHER MODELS, AIME24 (TABLE 1) Qwen2.5-32B-Instruct (base) 26.7 o1-preview 44.6 s1-32B, no forcing 50.0 s1-32B, budget forcing 56.7 r1-distill (800K examples) 72.6 one AIME24 problem = 3.3 points; arXiv 2501.19393
Budget forcing controls how long the model thinks. Past the maximum, the end-of-thinking marker is inserted and the model must answer; before the minimum, the marker is suppressed and "Wait" is appended, which often makes the model re-check its work. The model itself is Qwen2.5-32B-Instruct fine-tuned on 1,000 questions chosen for quality, difficulty and diversity; random, longest-trace or most-diverse selections of 1,000 did worse on AIME24.
Research notes: the problem, approach and results
1,000

training questions with reasoning traces, chosen from 59,029 by quality, difficulty and diversity (Section 2)

56.7%

AIME24 accuracy for s1-32B with budget forcing, 17 of 30 problems (Table 1)

7 GPU-hours

to fine-tune on s1K, against 394 for the full 59K pool (Section 4.2)

THE PROBLEM

OpenAI's o1 showed accuracy rising with more thinking at test time, but did not say how. Open replications used reinforcement learning, tree search or hundreds of thousands of examples, and none showed a clean, controllable curve of accuracy against thinking length.

THE IDEA

Distill reasoning from a stronger model on only 1,000 carefully chosen questions, then control thinking length at decode time: cut thinking off at a budget, or extend it by suppressing the end-of-thinking marker and appending "Wait".

THE RESULT

s1-32B scored 56.7% on AIME24 with budget forcing (50.0% without), 93.0% on MATH500 and 59.6% on GPQA Diamond, against 44.6%, 85.5% and 73.3% for o1-preview. Training took 26 minutes on 16 H100s. Models trained on 800 times more data still scored higher.

02

Why it matters to an FDE

s1 is a practical recipe more than a research breakthrough, and each of its parts maps to a decision on a customer project.

A thousand good examples can beat fifty thousand ordinary ones per GPU-hour. Training on all 59K examples scored 53.3% against s1K's 50.0% on AIME24, within the paper's own bootstrap interval, while costing 57 times the compute. Random, longest-trace or most-diverse selections of 1,000 did worse. When a customer wants a fine-tune, spend the effort on choosing examples: hard for the base model, spread across the task's types, and well formatted.

Thinking length is a dial you can set. Budget forcing works on any model with an explicit end-of-thinking marker. It gives exact control of cost and latency per request, which prompt instructions such as "think for 500 tokens" did not: the model could not count its own tokens.

Read the denominators. Many headline numbers here rest on AIME24's 30 problems, where one answer is 3.3 points. The authors also found that greedy evaluation with vLLM changed between runs with different batch sizes, and used full precision to reduce it. Ask for the question count and the run-to-run spread before accepting a reasoning benchmark claim.

THE FULL BREAKDOWN

Understand the mechanism. Try it on a real problem.

Unlock this breakdown and 290 more papers.

Premium opens every paper in full, plus every answer, concept, course and guide on the site. One payment for six months of access.

6 months · One payment · No auto-renewal

Get Premium · ₹2,000 / $25
  • ◇1 architecture diagram
  • </>1 runnable code experiment
  • ▦2 results tables
  • ?5 interview questions with answers
  1. 03Key takeaways

    The data recipe, the forcing rule, what the ablations show and two misreadings

    Free account
  2. 04How it works

    Data curation in three stages, the forcing rule, the scaling metrics and the setup

    Premium
  3. 05The numbers that matter

    Table 1 against other models, data ablations, forcing methods and extrapolation strings

    Premium
  4. 06Try it yourself

    Recheck the claims, count AIME problems, find the noise floor and model the effect of "Wait"

    Premium
  5. 07Where it breaks

    Small benchmarks, distillation dependence, loops, closed graders and slips

    Premium
  6. 08Using it on a deployment

    Curating a small fine-tuning set, setting thinking budgets, and evaluating with enough items

    Premium
  7. 09Interview angles

    Five questions this paper prepares you for, with answer hints

    Premium
Back to the paper library →