C
ChaoBro

Решение проблемы чрезмерного размышления Qwen: правило Grammar сокращает расход think-токенов в 22 раза

Решение проблемы чрезмерного размышления Qwen: правило Grammar сокращает расход think-токенов в 22 раза

Что произошло

Модели серии Qwen3.5/3.6 поддерживают режим мышления (thinking mode), но на практике часто чрезмерно «размышляют» — модель генерирует огромное количество избыточных шагов рассуждения внутри тегов <think>, что приводит к взрывному росту потребления токенов и замедлению ответов без соответствующего повышения точности.

28 апреля публикация в X, получившая 317 отметок «нравится» и 514 закладок, предложила решение: правило на основе Grammar-ограничений, которое позволяет сократить потребление think-токенов моделями серии Qwen до 22 раз при сохранении точности.

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

Основная идея — с помощью правил Grammar заставить модель следовать структурированному формату рассуждений на этапе мышления, вместо того чтобы бесцельно «бродить» в своих мыслях.

Реализация представляет собой корневое правило в стиле EBNF:

root  ::= think code
think ::= "<think>\n" "GOAL: " line "APPROACH: " line "EDGE: "

Это правило заставляет модель выполнять в блоке <think> только три вещи:

ШагСодержаниеНазначение
GOALЧёткая цельПредотвращает отклонение от темы
APPROACHКраткий методОграничивает путь рассуждения
EDGEГраничные условияПредотвращает излишнее развёртывание

Как только модель следует этой структуре, она перестаёт бесконечно «разговаривать сама с собой» — количество токенов на этапе мышления снижается с тысяч до сотен.

Почему это важно

С точки зрения экономики токенов

Для пользователей API think-токены — это прямые расходы. Чрезмерное мышление не только замедляет ответы, но и кратно увеличивает стоимость каждого вызова. Сокращение think-токенов в 22 раз означает:

  • Прямое снижение затрат: значительно меньшая стоимость одного вызова API
  • Увеличение скорости: более короткая цепочка рассуждений = более быстрый ответ
  • Улучшение UX: пользователям больше не нужно ждать, пока модель «моноложит»

Значение для экосистемы Qwen

Режим мышления Qwen3.5/3.6 — палка о двух концах: его включение значительно повышает способности к рассуждению, но потребление токенов отпугивает многих пользователей. Это решение по сути «разблокирует» практическую применимость режима мышления без изменения весов модели — просто путём ограничения вывода во время инференса.

Сравнение результатов

ПоказательРежим мышления (оригинал)+ Grammar-ограничение
Количество think-токенов~2000-5000~100-250
ТочностьБазоваяПрактически не изменилась
Время ответаДлинное (ожидание множества think-токенов)Короткое
Стоимость APIВысокаяЗначительно снижена

Как начать

  1. Используйте фреймворк вывода с поддержкой Grammar-ограничений: например, llama.cpp, vLLM (с guided decoding) или Ollama
  2. Внедрите указанное Grammar-правило в свои запросы
  3. Сравните потребление токенов и точность до и после включения

Для команд, уже развернувших Qwen3.5/3.6 в продакшене, это решение можно внедрить практически бесплатно — не требуется переобучение модели, достаточно изменить конфигурацию инференса.

Оценка ландшафта

Это отражает более широкую тенденцию: оптимизация во время вывода становится столь же важным направлением исследований, как и обучение моделей. Вместо того чтобы тратить месяцы на переобучение модели, которая «не чрезмерно размышляет», можно ограничить вывод во время инференса с помощью нескольких десятков строк правил.

В будущем аналогичные подходы могут расшириться на новые сценарии: контроль длины вывода, ограничение стиля рассуждений, направление структурированных ответов и другое. Экосистема Qwen лидирует в этой области.