Что такое reasoning

Что такое reasoning

@ai_longreads

Как устроены цепочки рассуждений в языковых моделях: от скрытых трейсов и управления усилием мышления до утечек через инструмент think — на примере открытых исходников GPT-OSS и DwarfStar.

Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.


Что такое reasoning

What Is Reasoning Автор: Armin Ronacher Оригинальный текст:

Несколько недель назад была опубликована статья, показавшая, как извлекать reasoning (рассуждение, цепочка мыслей) трейсы из моделей с закрытыми весами. Вместе с обсуждениями в сети о том, как обманом заставить модели раскрыть свои рассуждения, это побудило меня углубиться в тему из любопытства. Twitter полон полуправды и путаницы о том, как это работает, так что, возможно, этот текст поможет кому-то разобраться в происходящем.

Скрытые трейсы

Reasoning-трейсы обычно скрыты от нас. Мы сетовали на это, но в основном вынуждены с этим мириться. Модели с открытыми весами, к счастью, раскрывают их, и по их поведению видно, что трейсы могут быть длинными и запутанными. Это, вероятно, хорошая причина отделять их от того, что обычно показывается пользователям.

Как минимум, интерфейсам нужно уметь их обнаруживать. Индустрия хорошо постаралась, чтобы reasoning-трейсы звучали особенно и экзотично, но на самом деле это просто текст: модель обучена записывать свои мысли в черновик (scratchpad) как часть ответа, перед финальным ответом.

Формат ответов Harmony в GPT-OSS наглядно это демонстрирует:

<|channel|>analysis<|message|>
I need to work this out ...
<|end|><|start|>assistant<|channel|>final<|message|>
The answer is ...
<|return|>

Маркеры — это специальные токены (единицы текста), но reasoning между ними использует «тот же текст», что и финальный ответ (просто chain-of-thought (цепочка рассуждений) текст GPT звучит действительно забавно). Когда модель генерирует токен канала analysis, парсер направляет последующий текст в отдельный поток, доступный через Responses API. Для закрытых моделей, предположительно, простая модель редактирует и кратко пересказывает его.

Управление усилием reasoning

Сколько ресурсов уходит на reasoning? Ранние API раскрывали бюджеты reasoning-токенов, создавая впечатление, что это свойство процесса семплирования. В действительности усилие reasoning заложено в системном промпте. GPT-OSS добавляет в системный промпт следующее:

Reasoning: low

Вот и всё. Обучение формирует результирующее поведение — включая генерацию последовательности токенов, переключающей на канал analysis. Это также объясняет, почему изменение усилия инвалидирует KV-кэш. Я думаю, что закрытые модели GPT называют усилие reasoning словом «juice» (буквально «сок»), поскольку можно спросить у большинства моделей, сколько у них «juice».

В DwarfStar для DeepSeek с максимальным reasoning в системный промпт добавляется:

Reasoning Effort: Absolute maximum with no shortcuts permitted.
You MUST be very thorough in your thinking and comprehensively decompose the
problem to resolve the root cause, rigorously stress-testing your logic against
all potential paths, edge cases, and adversarial scenarios.

Не думай

Направление reasoning-токенов — это выученная конвенция: модель обучена не выводить черновую работу в канал final. Обманите её, заставив думать, что она уже в этом канале, — и она может раскрыть токены. Мы даже видели, как старые модели при отключённом мышлении начинали рассуждать через bash-инструмент и отправляли свои мысли в /dev/null.

Так что в каком-то смысле единственное «особое» поведение для некоторых моделей — это не думать. Иногда это делается путём «механического» удаления обычных способов модели думать. В DwarfStar отключённое мышление использует prefill </think>, а включённое — <think>, то есть токены, которые закрывают и открывают мышление. GPT-OSS не использует prefill, а позволяет модели решать самостоятельно.

Но, предположительно, некоторые inference (инференс, вывод модели) API используют prefill открывающего токена при включённом reasoning, поэтому модель никогда не генерирует его сама, и могут предотвращать генерацию reasoning-токена при отключённом reasoning, поскольку его можно тривиально обнаружить. Это может объяснять, почему кастомный инструмент `think` способен заставить модели поместить рассуждения туда, где их быть не должно, — но только при отключённом нативном reasoning.

Забавный факт: автор не смог использовать GPT 5.6 terra для проверки орфографии и грамматики этого поста из-за фильтров безопасности. Пришлось переключиться на Kimi.


Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!

Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot

Report Page