Экстремальный reasoning: когда ИИ-модель думает слишком много

Экстремальный reasoning: когда ИИ-модель думает слишком много

Один твит Саймона Уиллисона — а за ним проблема, знакомая каждому, кто работает с reasoning-моделями. Он выставил в LM Studio для Qwen3 27B параметр reasoning effort на «extra high» — и получил модель, которая, по его словам, «хронически переосмысливает» даже пустяковые вопросы. Ему это скорее нравится: наблюдать, как модель крутит одну мысль на все лады, само по себе занятно. Но за забавным наблюдением стоит вполне практический вопрос: что происходит, когда reasoning effort выкручен на максимум, и стоит ли это делать.

Что такое reasoning effort и зачем его вообще крутят

Reasoning effort — это параметр, который появился почти у всех современных «думающих» моделей: он задаёт, сколько токенов модель может потратить на внутренние рассуждения перед финальным ответом. Идея простая — сложные задачи (математика, многошаговый код, планирование) выигрывают от того, что модель «подумает вслух» дольше, прежде чем ответить. LM Studio, как и большинство локальных раннеров, выставляет это регулятором с несколькими уровнями — от «low» до «extra high». Логика по умолчанию: чем выше effort, тем качественнее ответ. На практике всё не так линейно.

Over-thinking: обратная сторона длинного размышления

Наблюдение Уиллисона — хороший пример того, что специалисты по reasoning-моделям называют over-thinking. На максимальном уровне effort модель не столько глубже анализирует задачу, сколько зацикливается: перепроверяет уже верный вывод, генерирует альтернативные варианты решения для тривиальных вопросов, где альтернатив попросту нет. Причина — в том, как обучались такие модели: reasoning effort на инференсе часто напрямую отображается на длину цепочки рассуждений, которую модель видела в обучающих данных для соответствующего уровня. Модель не «знает», когда задача решена — она обучена рассуждать примерно N токенов на этом уровне, и заполняет их, даже если ответ был очевиден с первой строки.

Для локального энтузиаста в LM Studio это забавный побочный эффект и повод для твита. Для того, кто строит на такой модели реальный сервис, — это прямые издержки: каждая лишняя тысяча токенов рассуждений — это задержка ответа и счёт за инференс (или, в случае локального запуска, впустую сожжённое время GPU).

Как с этим справляется Claude

У Anthropic для той же проблемы выбран другой подход — adaptive thinking с бюджетом токенов, а не фиксированным «уровнем усилия». Вместо того чтобы выбирать между «low» и «extra high» и надеяться, что модель адекватно распорядится выделенным пространством, разработчик задаёт explicit thinking budget — верхнюю границу, а модель сама решает, сколько реально нужно потратить на конкретный запрос, и может остановиться раньше. Это не устраняет over-thinking полностью — ни одна reasoning-модель от него не застрахована, — но снижает риск ситуации «максимальный уровень reasoning effort = гарантированно максимальная длина рассуждений вне зависимости от сложности вопроса».

Что это значит на практике

Для тех, кто строит агентов и pipeline-автоматизацию на Claude Code, вывод простой: reasoning effort — не тумблер «умнее/глупее», а параметр, которым нужно управлять осознанно, соотнося его с реальной сложностью задачи. Простой tool call не требует extra high reasoning ни у какой модели — а вот многошаговое планирование с MCP-инструментами или сложная отладка кода вполне может выиграть от расширенного thinking budget. Твит Уиллисона — это, по сути, полевое напоминание: прежде чем выкручивать reasoning на максимум по умолчанию «на всякий случай», стоит проверить, не платите ли вы токенами и временем за то, что модель просто разговаривает сама с собой.

Источники дайджеста:

  • @simonw — Саймон Уиллисон, практика Claude и LLM-инструментов: пост

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *