3,583 papers
arXiv:2508.10026 78 8 авг. 2025 г. FREE

SABER: четыре режима мышления LLM под контролем пользователя

КЛЮЧЕВАЯ СУТЬ
LLM с Chain-of-Thought пишут абзац рассуждений на '2+2' и столько же на олимпиадную задачу — они не умеют оценивать сложность задачи. SABER позволяет переключать глубину рассуждения через явный лимит токенов в промпте: NoThink (0 токенов), FastThink (128), CoreThink (4096), DeepThink (без лимита). Фишка: модель профилируют на датасете — считают сколько токенов базовая модель тратит на каждую задачу → присваивают целевой бюджет на тир ниже → обучают через reinforcement learning со штрафами за превышение. В промпте указываешь STRICTLY UNDER 128 tokens — модель сокращает reasoning на 80%, сохраняя точность.
Адаптировать под запрос

TL;DR

SABER — метод обучения LLM переключаться между четырьмя режимами рассуждения: NoThink (без рассуждений), FastThink (минимум токенов), CoreThink (средняя глубина) и DeepThink (полное рассуждение). Перед обучением каждую задачу профилируют базовой моделью — считают сколько токенов она тратит на рассуждение — и присваивают целевой бюджет токенов: 128 для простых, 4096 для средних, 16384 для сложных. В system prompt явно указывают этот лимит: "Your reasoning should be STRICTLY UNDER 128 tokens". Модель учат через reinforcement learning с наградами за правильный ответ и штрафами за превышение бюджета.

Проблема: LLM с Chain-of-Thought переобдумывают (overthinking) — на задачу "1+1" выдают несколько абзацев рассуждений вместо прямого ответа. Это жрёт токены (= деньги), увеличивает задержку и применяется одинаково ко всем задачам — и к "столица Франции", и к олимпиадной математике. Предыдущие методы пытались урезать длину единообразно для всех примеров — это либо ломало точность на сложных задачах, либо не давало экономии на простых. Корень проблемы: модель не умеет оценивать сложность задачи и подбирать под неё глубину рассуждения.

SABER решает через адаптивные бюджеты токенов под сложность задачи. Перед обучением прогоняют датасет через базовую модель и смотрят сколько токенов она тратит на каждый пример — это proxy для сложности. Дальше разбивают на три тира и для каждого задают целевой бюджет с понижением на один тир: если базовая модель тратила 128-4096 токенов, целевой бюджет становится 128; если 4096-16384 — целевой 4096; выше 16384 — без ограничений. Дополнительно в датасет добавляют примеры с NoThink режимом — когда модель должна отвечать без рассуждений вообще. Такая градация позволяет эффективно научить модель плавно переключаться между режимами, а явное указание бюджета в промпте делает поведение предсказуемым для пользователя.

🔬

Схема метода

Предобработка данных (один раз):

ШАГ 1: Прогнать датасет через базовую модель → посчитать токены в <think>
ШАГ 2: Разбить по тирам (128 / 4096 / 16384+) → присвоить целевой бюджет
ШАГ 3: Добавить NoThink дубликаты (0 токенов) → расширить датасет

RL-обучение (10 эпох на 2K примеров):

ШАГ 1: System prompt с бюджетом + задача → модель генерирует ответ
ШАГ 2: Награда = правильность + штраф за длину + штраф за экстремумы → обновить веса

Инференс (выбираешь режим):

NoThink: ответ без рассуждений
FastThink: бюджет 128 токенов → быстрый ответ
CoreThink: бюджет 4096 токенов → умеренная глубина 
DeepThink: без ограничений → полное рассуждение
🚀

Пример применения

Задача: Ты руководитель продукта в российском стартапе. Команда предлагает три фичи для следующего спринта. Нужно быстро оценить ROI каждой — сейчас на планёрке нет времени на глубокий анализ.

Промпт:

System: Ты продуктовый аналитик. Твоё рассуждение между <think> и </think> 
должно быть СТРОГО МЕНЬШЕ 128 токенов. Отвечай структурно и по делу.

Question: Оцени ROI трёх фич для B2B SaaS-платформы с 500 платящими клиентами:

1. Интеграция с 1С (запрашивают 80% клиентов, разработка 2 месяца, 2 разработчика)
2. Тёмная тема интерфейса (запрашивают 30% клиентов, разработка 2 недели, 1 разработчик) 
3. AI-помощник для заполнения форм (потенциально снизит onboarding на 50%, 
 разработка 4 месяца, 3 разработчика + data scientist)

Для каждой дай: оценку impact (1-10), effort (человеко-месяцы), 
приоритет (высокий/средний/низкий), одно предложение обоснования.

Answer:

Результат:

Модель покажет краткое рассуждение в <think> (примерно 100-120 токенов) с расчётами impact/effort для каждой фичи, затем выдаст структурированный ответ:

  • Три фичи с оценками по всем параметрам
  • Короткое обоснование для каждой (не больше одного предложения)
  • Итоговый приоритет

Если бы выбрал DeepThink, модель бы добавила анализ рисков, альтернативные метрики, проверку предположений — но это заняло бы в 10-20 раз больше токенов и времени.

🧠

Почему это работает

Слабость LLM: Модели с Chain-of-Thought не умеют оценивать сложность задачи и выбирать адекватную глубину рассуждения. Они применяют одинаково развёрнутый reasoning и к "2+2", и к олимпиадной задаче. Попытки единообразно урезать длину через инструкции типа "будь краток" дают нестабильный результат — модель либо выкидывает важные шаги на сложных задачах, либо игнорирует инструкцию на простых.

Сильная сторона LLM: Модели отлично следуют явным ограничениям в system prompt, особенно если ограничение выражено численно. Фраза "STRICTLY UNDER 128 tokens" работает как жёсткий лимит — модель воспринимает это как правило игры и старается не нарушать. Также модели хорошо адаптируются к разным режимам работы, если эти режимы явно размечены в обучающих данных.

Как SABER использует сильные стороны: Вместо размытых инструкций метод привязывает лимиты к сложности задач. Профилирование базовой модели даёт объективную оценку сложности через количество токенов — если базовая модель тратит 5000 токенов, задача не решится за 100. Целевой бюджет назначается с понижением на один тир, чтобы научить модель экономить, но не обрубать логику. Явное указание бюджета в system prompt превращает абстрактное "будь краток" в конкретный числовой лимит. RL-обучение с штрафами за превышение и наградами за правильность балансирует скорость и точность — модель учится урезать избыточное, сохраняя необходимое.

Дополнительные механизмы стабильности:

  • NoThink режим в датасете — без специальных примеров модель деградирует на задачах без рассуждений (падение точности на 10-15%). Явное обучение на NoThink примерах даёт модели второй навык.
  • Нижняя граница длины (минимум 20% от базовой модели) — предотвращает reward hacking, когда модель выдаёт пустые рассуждения ради штрафа за длину.
  • Фильтрация по точности — только корректно решённые базовой моделью примеры подвергаются агрессивному урезанию бюджета. Это защищает от коллапса на сложных задачах.

Рычаги управления промптом:

  1. Числовой бюджет (128 / 4096 / 16384 / без лимита):
    • Уменьши → быстрее, дешевле, риск потери точности на сложных задачах
    • Увеличь → точнее, медленнее, дороже
    • Можно задавать произвольные значения между тирами (например, 512 или 2000)
  2. Режим NoThink (пустой <think></think>):
    • Используй для фактических вопросов, где рассуждение не нужно
    • Экономит до 100% токенов на reasoning, но работает не на всех задачах
  3. Формулировка ограничения в system prompt:
    • "STRICTLY UNDER" → жёсткий лимит
    • "approximately" → мягкое указание
    • "optimize for brevity" → размытая инструкция (хуже работает)
  4. Инструкция по выводу после </think>:
    • Добавь "provide step-by-step justification" → увидишь reasoning даже в ответе
    • Убери → только финальный результат
📋

Шаблон промпта

Для FastThink / CoreThink (с бюджетом):

System: {твоя роль и контекст}. Твоё рассуждение между <think> и </think> 
должно быть СТРОГО МЕНЬШЕ {число_токенов} токенов.

Question: {задача}

Answer: <think> ... </think> {ответ}

Для DeepThink (без ограничений):

System: {твоя роль и контекст}

Question: {задача}

Answer: <think> ... </think> {ответ}

Для NoThink (без рассуждений):

System: {твоя роль и контекст}. Отвечай напрямую без внутренних рассуждений:
<think></think>

{ответ здесь}

Question: {задача}

Answer: {ответ}

Подстановка плейсхолдеров:

  • {твоя роль и контекст} — например: "Ты финансовый аналитик, специализируешься на быстрых оценках ROI"
  • {число_токенов} — рекомендуемые значения:
    • 128 для FastThink — простые задачи, где рассуждение очевидно
    • 4096 для CoreThink — средняя сложность, нужна проверка шагов
    • Можно использовать промежуточные: 256, 512, 1024, 2048
  • {задача} — твой вопрос или задача для модели
  • {ответ} — финальный результат после рассуждения

🚀 Быстрый старт — вставь в чат:

Вот шаблон SABER для контроля глубины рассуждения LLM. Адаптируй под мою задачу: [твоя задача]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит какой режим нужен (FastThink/CoreThink/DeepThink/NoThink) и какую роль задать — потому что метод требует явного указания бюджета токенов для работы. Она возьмёт структуру с <think> тегами и адаптирует под твою задачу.

⚠️

Ограничения

⚠️ Требует RL-обучения для полного эффекта: Хотя принципы (явный бюджет в промпте, теги <think>) работают и на базовых моделях, максимальная эффективность достигается только после переобучения модели методом SABER. На необученной модели указание лимита в 128 токенов может дать слабое соблюдение или потерю точности.

⚠️ Не для всех типов задач: Метод показывает лучшие результаты на структурированных задачах — математика, код, логические цепочки. На субъективных или творческих задачах (написание эссе, креатив, оценка стиля) строгие лимиты токенов могут обрубать нюансы. В исследовании тестировали только math reasoning, code generation и logic reasoning.

⚠️ Trade-off скорость vs точность остаётся: FastThink режим сокращает длину на 65-80%, но на самых сложных задачах (топ-10% по сложности) точность может упасть на 2-5%. Если задача критична — лучше использовать CoreThink или DeepThink, жертвуя скоростью.

⚠️ NoThink требует явного обучения: Простое отключение рассуждений без специальных примеров в датасете ведёт к падению точности на 10-20% даже на задачах, где рассуждение не обязательно. Это видно в таблицах: базовая модель в NoThink режиме даёт 65% точности, SABER после обучения — 76%.

⚠️ Профилирование требует вычислений: Перед обучением нужно прогнать весь датасет через базовую модель, чтобы определить сложность каждого примера. Это одноразовые затраты, но для больших датасетов (>100K примеров) требуется заметное время на инференс.

🔍

Как исследовали

Команда взяла дистиллированную модель DeepSeek-R1 размером 1.5B параметров — это модель, обученная на reasoning через RL и дающая state-of-the-art результаты для своего размера. Дальше собрали всего 2K примеров — 1K по математике (из датасета OpenR1-Math, отфильтрованные верификатором на корректность) и 1K по коду (из KodCode-Light-RL). Это очень мало по сравнению с baseline методами: например, SelfBudgeter требовал 30K примеров и 3 эпохи, L1 тоже работал на десятках тысяч примеров.

Перед обучением профилировали каждый пример базовой моделью — запускали инференс и считали токены между <think> и </think>. На основе распределения разбили на три тира: меньше 128 токенов (лёгкие), 128-4096 (средние), 4096-16384 (сложные), больше 16384 (очень сложные). Каждому примеру присвоили целевой бюджет на тир ниже: если базовая модель тратила 128-4096 токенов, целевой лимит ставили 128; если 4096-16384 — целевой 4096; выше 16384 — без ограничений. Логика простая: модель уже показала что может решить за N токенов, значит можно попробовать сжать до 0.25N-0.5N без потери точности.

Дальше разделили датасет по точности базовой модели: примеры, которые базовая модель решила правильно (~60%), подвергали агрессивному урезанию бюджета. Примеры, которые базовая модель завалила (~40%), разделили пополам: половине оставили исходный бюджет, половине вообще сняли лимиты. Это критический трюк для стабильности обучения — без этого модель начинала коллапсировать на сложных задачах.

Обучали через GRPO (Group Relative Policy Optimization) — вариант RL, где наградой служит композитный скор: +1 за правильный ответ, -1 за неправильный формат вывода, -0.4 за превышение лимита токенов, -0.4 за слишком короткое рассуждение (меньше 20% от базовой модели). Это защищает от reward hacking — когда модель выдаёт пустые <think></think> ради минимизации штрафа за длину.

Обучили 10 эпох на 2K примеров — вся процедура заняла скромное время и вычисления по сравнению с SFT + RL pipeline у конкурентов. Не требовали SFT warm-up — это ключевое отличие от других методов. Обычно RL на reasoning начинают с supervised fine-tuning на правильных решениях, потом только RL. SABER показал что можно обучать напрямую через RL, если правильно спроектировать награды и датасет.

Тестировали на четырёх бенчмарках: MATH500 (500 олимпиадных задач, подмножество MATH), GSM8K (8.5K школьных задач по арифметике), MATH (12.5K задач уровня AMC/AIME), MBPP (974 задачи по программированию). Замеряли точность (% правильных ответов) и среднюю длину рассуждения в токенах.

Результаты удивили: FastThink режим сократил длину рассуждений на 72.7% (с 5366 до 1463 токенов в среднем по бенчмаркам) и при этом увеличил точность на 3% по сравнению с базовой моделью. Обычно сжатие reasoning ведёт к падению точности — здесь наоборот. Исследователи объясняют это двумя факторами:

  1. Избыточность вредит: SFT-обученные reasoning модели склонны к повторениям и "воде" в рассуждениях. Урезая длину, модель выкидывает не важные шаги, а повторы и отвлечения.
  2. RL улучшает reasoning: Награда за правильность + штраф за формат научили модель фокусироваться на критических шагах. Формат <think> с явным разделением reasoning и ответа дисциплинирует модель.

CoreThink дал 67.9% сокращение при +4.7% точности. DeepThink — 41.2% сокращение при +6.8% точности. Получается парадокс эффективности: даже самый "глубокий" режим короче базовой модели, но точнее.

Дальше проверили масштабирование на 7B модель — DeepSeek-R1-Distill-Qwen-7B. Здесь результаты скромнее: FastThink сократил длину на 82.1%, но точность упала на -2.5%. То есть trade-off проявляется сильнее на больших моделях — у них больше capacity для reasoning, и агрессивное урезание уже начинает вредить. CoreThink дал -0.8% точности, DeepThink — +1.9%. Вывод: SABER работает на разных размерах, но баланс скорость/точность зависит от capacity модели.

Самое интересное — кросс-доменная генерализация. Обучали только на математике и коде, но потом протестировали на LiveBench-Reasoning — бенчмарке логических головоломок, который модель не видела. SABER-DeepThink дал +1.9% точности по сравнению с базовой моделью на этом unseen датасете. Это показывает что навык контроля глубины reasoning переносится между доменами — модель научилась не конкретным математическим трюкам, а мета-навыку управления рассуждением.

Ключевой инсайт исследования: Overthinking — это не неизбежная цена за точность. Это артефакт обучения, который можно исправить правильным RL с адаптивными лимитами. Более того, умеренное сжатие reasoning улучшает точность, потому что заставляет модель фокусироваться на сути.

📄

Оригинал из исследования (опционально)

System prompt для CoreThink/FastThink:

System message: [original sys] Your reasoning process between <think> and </think> 
should be STRICTLY UNDER **XXX** tokens.
Question: [original prompt]
Answer: <think> ... </think> [response]

System prompt для DeepThink:

System message: [original sys]
Question: [original prompt]
Answer: <think> ... </think> [response]

System prompt для NoThink:

System message: [original sys] Respond directly without internal reasoning:
<think></think>

[response here]
Question: [original prompt]
Answer: [response]

Контекст: Исследователи использовали эти шаблоны на этапе RL-обучения. В system message подставляли исходные инструкции модели, в XXX — целевой бюджет токенов (128/4096/16384), в original prompt — задачу из датасета. Формат с явным разделением <think> и </think> критичен для награды за формат — если модель не выдаёт эти теги, получает -1 penalty.

💡

Адаптации и экстраполяции

📌

💡 Адаптация для рабочих планёрок

Совещания часто страдают от overthinking: менеджеры запрашивают развёрнутый анализ там, где достаточно резюме, или наоборот — получают поверхностную сводку вместо глубокого разбора. SABER-подход решает это через явные режимы глубины коммуникации.

Промпт для быстрых статус-апдейтов (FastThink для встреч):

System: Ты ассистент для управления планёркой. Твои комментарии к каждому пункту 
между <analysis> и  должны быть СТРОГО МЕНЬШЕ 50 слов. 
Фокус на actionable insights, без воды.

Question: Команда принесла 3 статус-апдейта:
1. "Бэкенд API готов на 80%, осталась интеграция с платёжной системой"
2. "Дизайн экранов оплаты на ревью у стейкхолдеров, жду фидбек 3 дня" 
3. "QA нашёл критический баг с расчётом НДС, блокирует релиз"

Для каждого дай: <analysis> оценка статуса (зелёный/жёлтый/красный), 
главный риск, что делать дальше  
Затем резюме встречи одним абзацем.

Answer:

Модель выдаст краткий анализ каждого пункта (по 30-40 слов) с конкретными действиями, затем общую сводку. Для сравнения, DeepThink режим развернул бы рассуждение в полноценный отчёт на страницу — избыточно для 15-минутной планёрки.

📌

🔧 Техника: Динамическое переключение между режимами в одном запросе

Вместо фиксированного лимита на весь ответ можно задавать разные бюджеты для разных частей одной задачи:

System: Ты аналитик. Следуй режимам рассуждения для каждой части ответа:

Part 1 (Context Summary):  ... </think> [резюме ситуации]
Part 2 (Deep Analysis):  ... </think> [детальный разбор] 
Part 3 (Action Items):  ... </think> [конкретные шаги]

Question: {задача с контекстом, требующая глубокого анализа и действий}

Answer:

Эффект: Гибридный режим — быстрая обработка контекста и action items, глубокое погружение только в критический анализ. Экономит до 40% токенов по сравнению с полным DeepThink, сохраняя качество там где нужно.

📌

💡 Адаптация для образования: карточки с разноуровневыми объяснениями

Принцип SABER можно применить к образовательному контенту: один факт или концепция, но три уровня объяснения под разную аудиторию.

System: Ты педагог, создающий многоуровневые объяснения. 
Для каждого уровня используй свой режим рассуждения:

Level 1 (ELI5):  ... </think> [объяснение для 5-летнего]
Level 2 (High School):  ... </think> [объяснение для старшеклассника]
Level 3 (Expert):  ... </think> [объяснение для специалиста]

Question: Объясни концепцию {сложная тема} на трёх уровнях глубины.

Answer:

Пример применения: создание интерактивных учебников, где читатель выбирает глубину погружения в материал. FastThink даёт интуицию, CoreThink — механику, DeepThink — формальные доказательства.

🔗

Ресурсы

SABER: Switchable and Balanced Training for Efficient LLM Reasoning (arXiv:2506.XXXXX предварительный ID)

Авторы: Kai Zhao, Yanjun Zhao, Jiaming Song, Shien He, Lusheng Zhang, Qiang Zhang, Tianjiao Li

Организация: Bilibili Inc.

Связанные работы упомянутые в исследовании:

  • L1 (Aggarwal & Welleck, 2025): Length-controlled policy optimization для строгих бюджетов токенов
  • SelfBudgeter (Li et al., 2025): Модель сама предсказывает нужный бюджет токенов для задачи
  • Kimi Long2Short (Kimi, 2025): Микс дистилляции + length-sensitive DPO для сжатия reasoning
  • DeepSeek-R1: Базовая модель с distillation от крупной reasoning модели

Фреймворк для реализации:

verl (Volcano Engine RL framework) — https://github.com/volcengine/verl

Open-source библиотека для RL fine-tuning LLMs, используется в SABER.


📋 Дайджест исследования

Ключевая суть

LLM с Chain-of-Thought пишут абзац рассуждений на '2+2' и столько же на олимпиадную задачу — они не умеют оценивать сложность задачи. SABER позволяет переключать глубину рассуждения через явный лимит токенов в промпте: NoThink (0 токенов), FastThink (128), CoreThink (4096), DeepThink (без лимита). Фишка: модель профилируют на датасете — считают сколько токенов базовая модель тратит на каждую задачу → присваивают целевой бюджет на тир ниже → обучают через reinforcement learning со штрафами за превышение. В промпте указываешь STRICTLY UNDER 128 tokens — модель сокращает reasoning на 80%, сохраняя точность.

Принцип работы

Вместо размытого 'будь краток' (модель игнорирует или режет важное) → привяжи лимит к сложности задачи. Профилируешь датасет базовой моделью: тратит 5000 токенов = сложная задача → целевой бюджет 4096. Тратит 200 токенов = простая → целевой 128. Понижение на один тир учит модель экономить, не обрубая логику. Дополнительно в датасет добавляют примеры NoThink (ответ без рассуждений) — без них точность падает на 10-20% даже там, где рассуждение не обязательно.

Почему работает

LLM плохо работают с размытыми инструкциями типа 'будь краток', но отлично следуют численным лимитам. Фраза STRICTLY UNDER 128 tokens в system prompt работает как правило игры — модель старается не нарушать. Профилирование датасета даёт объективную оценку сложности: если базовая модель тратит 5000 токенов, задача точно не решится за 100. RL со штрафами за превышение бюджета + награды за правильность балансирует скорость и точность — модель учится урезать избыточное, сохраняя необходимое. Результат: сокращение на 65-80% токенов в FastThink режиме с потерей точности всего 2-5% на самых сложных задачах (топ-10% по сложности).

Когда применять

Структурированные задачи → математика, код, логические цепочки. Особенно когда нужен контроль соотношения скорость/точность: быстрая оценка ROI идей на планёрке (FastThink 128 токенов за 2 секунды) vs проверка шагов решения (CoreThink 4096 токенов) vs полное рассуждение с альтернативами (DeepThink без лимита). НЕ подходит для творческих или субъективных задач (написание эссе, креатив, оценка стиля) — строгие лимиты обрубают нюансы.

Мини-рецепт

1. Выбери режим под задачу: FastThink (128 токенов) для простых оценок где рассуждение очевидно, CoreThink (4096) для средней сложности с проверкой шагов, DeepThink (без лимита) для сложного анализа, NoThink (0 токенов) для фактических вопросов
2. Добавь в system prompt явный лимит: Твоё рассуждение между и должно быть СТРОГО МЕНЬШЕ {число} токенов — слово 'строго' усиливает соблюдение
3. Структура ответа модели: рассуждение здесь {финальный ответ} — теги обязательны для работы метода
4. Подбери число токенов: можешь использовать промежуточные значения между тирами (256, 512, 1024, 2048) для тонкой настройки баланса

Примеры

[ПЛОХО] : Оцени окупаемость инвестиций (ROI) трёх фич для продукта — без контроля глубины получишь либо простыню на 2000 токенов с анализом рисков и альтернатив, либо поверхностный ответ
[ХОРОШО] : System: Ты продуктовый аналитик. Твоё рассуждение между и должно быть СТРОГО МЕНЬШЕ 128 токенов. Question: Оцени ROI трёх фич для B2B SaaS с 500 клиентами: 1) Интеграция с 1С (запрашивают 80%, разработка 2 месяца), 2) Тёмная тема (запрашивают 30%, 2 недели), 3) AI-помощник (потенциально -50% времени onboarding, 4 месяца). Для каждой дай: impact (1-10), effort (человеко-месяцы), приоритет — модель выдаст краткий расчёт в (~100 токенов) и структурированный ответ с тремя оценками, вместо развёрнутого анализа на 1500+ токенов
Источник: SABER: Switchable and Balanced Training for Efficient LLM Reasoning
ArXiv ID: 2508.10026 | Сгенерировано: 2026-01-12 02:18

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с