Что произошло
Модели серии 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 | Высокая | Значительно снижена |
Как начать
- Используйте фреймворк вывода с поддержкой Grammar-ограничений: например, llama.cpp, vLLM (с guided decoding) или Ollama
- Внедрите указанное Grammar-правило в свои запросы
- Сравните потребление токенов и точность до и после включения
Для команд, уже развернувших Qwen3.5/3.6 в продакшене, это решение можно внедрить практически бесплатно — не требуется переобучение модели, достаточно изменить конфигурацию инференса.
Оценка ландшафта
Это отражает более широкую тенденцию: оптимизация во время вывода становится столь же важным направлением исследований, как и обучение моделей. Вместо того чтобы тратить месяцы на переобучение модели, которая «не чрезмерно размышляет», можно ограничить вывод во время инференса с помощью нескольких десятков строк правил.
В будущем аналогичные подходы могут расшириться на новые сценарии: контроль длины вывода, ограничение стиля рассуждений, направление структурированных ответов и другое. Экосистема Qwen лидирует в этой области.