Разбираем исходную версию s1-32B из работы s1: Simple test-time scaling, появившейся на arXiv 31 января 2025 года. Авторы из Stanford, University of Washington, Allen Institute for AI и Contextual AI показывают, что после SFT на 1000 тщательно отобранных reasoning-примерах и с простой техникой budget forcing открытая модель на базе Qwen2.5-32B-Instruct начинает выигрывать от дополнительного test-time compute.
Но важная оговорка для исторической точности: в статье s1 сравнивают прежде всего с OpenAI o1-preview, а не с более сильным o1. Поэтому корректный вопрос здесь не «повторили ли авторы o1 целиком», а «насколько далеко можно зайти с минималистичным открытым рецептом без большого RL-контура и без сотен тысяч reasoning-трейсов».
Коротко
- s1K — это не случайные 1000 задач, а отбор из 59 029 вопросов по критериям качества, сложности и разнообразия; данные были деконтаминированы по 8-gram пересечениям с AIME24, MATH500 и GPQA Diamond.
- Budget forcing — это декодинг-вмешательство: модель можно принудительно остановить и заставить ответить, либо не дать ей закончить размышление и дописать
Wait, чтобы она продолжила цепочку. - По таблице авторов, s1-32B достигает 56.7 на AIME24, 93.0 на MATH500 и 59.6 на GPQA Diamond: это выше o1-preview на AIME24 и MATH500, но ниже o1 и ниже o1-preview на GPQA.
- Обучение s1-32B, по данным авторов, заняло 26 минут на 16 H100; вариант с полным набором 59K примеров потребовал 394 H100 GPU-hours против 7 H100 GPU-hours у s1-32B.
- Главный вывод не в том, что «1000 примеров достаточно всегда», а в том, что хорошая дистилляция, сильная базовая модель и управление вычислением во время ответа иногда важнее, чем просто насыпать больше данных.
Контекст
К началу 2025 года уже было понятно, что reasoning-модели выигрывают не только от большего pretraining, но и от дополнительного вычисления во время вывода. Эту линию особенно легитимизировал OpenAI o1: в своём материале OpenAI показала, что при росте test-time compute растут и результаты на сложных задачах.
Проблема в том, что методология o1 оставалась закрытой. Это быстро породило волну открытых репликаций: одни делали ставку на reinforcement learning, другие — на большие distilled-наборы reasoning-трейсов, третьи — на различные search-подходы. На этом фоне s1 выглядела почти демонстративно просто: маленький, но отобранный набор данных; обычный supervised finetuning; минималистичное вмешательство в декодинг.
Именно поэтому paper стал заметным. Он спорил не с тезисом «reasoning требует много compute», а с более узким предположением: будто без массивного RL и огромного корпуса reasoning-data нельзя получить открытое test-time scaling-поведение.
Метод: как устроены s1K и budget forcing
s1K: не маленький датасет, а жёсткий отбор
Авторы сначала собрали 59 029 вопросов из 16 источников. Затем набор сжимали в несколько этапов: удаляли API-ошибки и явно плохие примеры, отбрасывали слишком лёгкие задачи с помощью двух проверяющих моделей (Qwen2.5-7B-Instruct и Qwen2.5-32B-Instruct), а затем добивались тематического разнообразия через классификацию по Mathematics Subject Classification. Финальный s1K покрывает 50 доменов.
Ключевой технический момент: это не hand-written gold dataset. Reasoning-трейсы и ответы были дистиллированы из reasoning-API Gemini; в аннотации фигурирует Gemini Thinking Experimental, а в разделе о данных — Google Gemini Flash Thinking API. По собственному grader’у авторов корректными оказались лишь 53.6% примеров в s1K. То есть s1 учится не на тысяче безупречных решений, а на тысяче отобранных траекторий рассуждения.
Авторы отдельно пишут, что деконтаминировали набор против AIME24, MATH500 и GPQA Diamond по 8-gram совпадениям и удаляли дубликаты. Для paper такого типа это важная часть дизайна: без неё любой выигрыш на math-бенчмарках выглядел бы гораздо менее убедительно.
Что делает budget forcing
Budget forcing управляет не весами модели, а тем, сколько рассуждения модель произведёт на инференсе. Если модель размышляет слишком долго, ей принудительно вставляют delimiter конца размышления и, при необходимости, префикс вроде Final Answer:, чтобы она перешла к ответу. Если же она заканчивает слишком рано, генерацию конца размышления подавляют и к уже сгенерированному трейсy дописывают Wait, чтобы модель продолжила мысль.
if model_stops_too_early:
suppress_end_of_thinking()
append("Wait")
if thinking_budget_reached:
append(end_of_thinking_delimiter)
append("Final Answer:")
С практической точки зрения это важно по двум причинам. Во-первых, метод почти тривиален в реализации и есть в открытом репозитории. Во-вторых, авторы сравнивают его не с «ничем», а с несколькими альтернативами управления длиной рассуждения: token-conditional, step-conditional, class-conditional control и rejection sampling.
Для оценки test-time scaling авторы вводят три метрики: control — насколько точно метод держит целевой бюджет токенов, scaling — положителен ли средний наклон кривой «больше thinking tokens → выше accuracy», и performance — максимум точности, который удалось достичь. В их абляции на AIME24 budget forcing получает 100% control, 15 по метрике scaling и 56.7 по performance; альтернативы либо хуже контролируются, либо не дают положительной масштабируемости.
Результаты
Ниже — компактная сводка ключевых pass@1-результатов. Для строк s1 и базового Qwen числа взяты из таблицы 1 работы s1 и совпадают в arXiv- и EMNLP-версиях; для строк OpenAI они совпадают с материалом Learning to reason with LLMs; для DeepSeek-R1-Distill-Qwen-32B — с официальным README DeepSeek.
| Модель | Reasoning SFT примеры | AIME24 | MATH500 | GPQA Diamond |
|---|---|---|---|---|
| Qwen2.5-32B-Instruct | N/A | 26.7 | 84.0 | 49.0 |
| OpenAI o1-preview | N/A | 44.6 | 85.5 | 73.3 |
| OpenAI o1 | N/A | 74.4 | 94.8 | 77.3 |
| s1 w/o budget forcing | 1K | 50.0 | 92.6 | 56.6 |
| s1-32B | 1K | 56.7 | 93.0 | 59.6 |
| DeepSeek-R1-Distill-Qwen-32B | 800K | 72.6 | 94.3 | 62.1 |
Из этой таблицы видно главное. Формулировка авторов про «up to 27%» относится к competition math и к сравнению прежде всего с o1-preview, а не с полноценным o1. На AIME24 переход от 44.6 у o1-preview к 56.7 у s1-32B действительно даёт примерно 27% относительного прироста; на GPQA этого преимущества уже нет.
Ещё важнее разница между s1 w/o BF и s1-32B. На AIME24 budget forcing поднимает модель с 50.0 до 56.7, а на проектной странице авторы отдельно визуализируют рост примерно с 50% до 57% при увеличении thinking budget. Это и есть центральный эмпирический тезис paper: после правильной SFT-модели дополнительное последовательное рассуждение иногда даёт систематический прирост.
Что показали абляции данных и стоимости
Здесь работа особенно полезна для практиков. Авторы не ограничиваются лозунгом «всего 1000 примеров», а показывают, что именно в этих 1000 важно.
- При budget-forced оценке на AIME24 набор 1K-random даёт 36.7, 1K-diverse — 26.7, 1K-longest — 33.3, а s1K — 50.0.
- Полный набор 59K-full достигает 53.3 на AIME24, но авторы сообщают 95% paired bootstrap interval [-13.3%, 20.0%] относительно s1K, то есть явного превосходства не показано.
- С точки зрения compute разница ещё заметнее: 394 H100 GPU-hours для 59K-full против 7 H100 GPU-hours для s1-32B; сам training s1-32B занял 26 минут на 16 H100.
Если убрать хайп и оставить только инженерный сигнал, то он такой: авторы показали не чудо «малых данных», а сильную зависимость результата от отбора данных и от того, как именно моделью управляют на инференсе.
Интерпретация
Наш комментарий
На наш взгляд, s1 важна по трём причинам. Первая: paper довольно чисто разделяет вклад data curation и вклад test-time compute. Многие обсуждения reasoning-моделей смешивали эти вещи в один пакет; здесь видно, что одна только длинная цепочка мыслей без нужной подготовки модели не решает проблему.
Вторая: s1 показывает, что «думать дольше» — это не обязательно сложный search или RL-пайплайн. Иногда достаточно модели, которая уже умеет писать полезный reasoning-trace, и простого механизма, который не даёт ей остановиться слишком рано. Для прикладного инженера это значит, что test-time scaling можно исследовать без многомесячной тренировки фронтирной модели.
Третья: paper одновременно и сильнее, и слабее, чем о ней часто пишут. Сильнее — потому что она действительно демонстрирует открытое последовательное scaling-поведение. Слабее — потому что это не «открытый o1». В таблицах самой работы s1-32B ближе к o1-preview на части math-задач, но заметно отстаёт от o1 и не становится новым общим лидером reasoning-бенчмарков.
Ограничения и критика
1. Это не чистая репликация o1. Исторический ориентир paper — o1-preview. Если смотреть на официальный материал OpenAI, то у o1 цифры выше: 74.4 на AIME24, 94.8 на MATH500 и 77.3 на GPQA Diamond. Поэтому фраза «o1-рассуждение на 1000 примерах» годится как популярное приближение, но не как точное техническое описание.
2. Данные дистиллированы из закрытого teacher-моделя. Это открытый student, но не полностью автономный открытый рецепт. Качество reasoning-трейсов пришло из Gemini reasoning-API, то есть часть успеха перенесена из закрытой системы.
3. s1K содержит ошибки. По собственному grader’у авторов корректны только 53.6% примеров. Это не обязательно делает обучение плохим, но означает, что paper скорее про обучение на траекториях рассуждения, чем про обучение на идеально размеченных решениях.
4. Budget forcing не растёт бесконечно. Авторы прямо пишут, что при слишком частом подавлении конца размышления модель может уходить в повторяющиеся циклы. В figure 4 прирост после нескольких принудительных продолжений уплощается.
5. Обобщаемость за пределы math/science здесь ограничена. Основные бенчмарки — AIME24, MATH500 и GPQA Diamond. Это сильный, но узкий срез reasoning. Из статьи нельзя автоматически вывести, что та же схема даст такой же выигрыш на коде, агентных задачах или прикладном enterprise-QA.
6. Часть сравнений остаётся неполной. Авторы пишут, что Gemini было трудно корректно прогнать из-за recitation error, поэтому для него в таблице 1 есть N/A на MATH500 и GPQA. Это не ломает основной тезис работы, но напоминает: ecosystem benchmarking reasoning-моделей в начале 2025 года был ещё очень неровным.
Вывод
s1 — это важный paper не потому, что она «повторила o1», а потому, что она показала минимальный открытый рецепт, при котором test-time scaling действительно становится наблюдаемым. Для практиков ценность в другом: аккуратно отобранные reasoning-данные, сильная базовая модель и простой контроль длины мысли иногда дают больше, чем интуитивное «добавим ещё данных».
Если вам нужен короткий итог в одной строке: s1 приблизила открытые модели к o1-preview на части задач, но не закрыла разрыв до o1 — и именно эта честная формулировка лучше всего описывает её реальный вклад.
Источники
- 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, 2025.
- 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.
- s1: Simple test-time scaling — официальный project page, 2025.
- simplescaling/s1 — официальный репозиторий модели, данных и inference-кода.
- Learning to reason with LLMs — OpenAI, 2024.
- DeepSeek-R1 README — DeepSeek-AI, 2025.
- Qwen2.5 Technical Report — Qwen Team, 2025.
FAQ
s1 действительно повторяет OpenAI o1?
Нет. По своей собственной таблице s1-32B местами превосходит o1-preview на competition math, но заметно уступает o1 на AIME24, MATH500 и GPQA Diamond. Корректнее говорить о частичной открытой репликации поведения reasoning-модели, а не о полном повторении o1.
Что такое budget forcing в одном абзаце?
Это способ управлять длиной размышления на инференсе. Если модель заканчивает мысль слишком рано, вы не даёте ей сгенерировать токен окончания рассуждения и подталкиваете её продолжить, например через Wait. Если она думает слишком долго, вы принудительно завершаете reasoning-фазу и переводите её к финальному ответу.
Почему 1000 примеров вообще хватило?
Потому что это не «любые 1000». Авторы отбирали задачи по качеству, сложности и разнообразию, использовали сильный teacher для reasoning-трейсов и дообучали уже сильную базовую модель Qwen2.5-32B-Instruct. Отдельно paper показывает, что случайные или просто «длинные» 1000 примеров работают заметно хуже.
Можно ли перенести идею s1 в продукт?
Да, но с оговорками. Для внутреннего R&D это полезный шаблон: curated reasoning-data плюс контроль test-time compute. Для production-сценариев остаются вопросы латентности, стоимости токенов, устойчивости формата reasoning-трейса и того, насколько метод переносится за пределы math-heavy задач.
