Speculative inference — штука красивая на бумаге. Купил GPU, включил multi-token prediction, и модель летит. Но в 2026 году, когда Qwen 3.6 27B уже плотно обосновалась в локальных инференсах, а квантование стало рутиной, выяснилась неприятная деталь: ускорение работает не везде.
Я прогнал MTP-версии Qwen 3.6 27B (FP16, 4-bit GGUF, 3-bit Unsloth UD XL) на однотипных задачах: генерация кода и креативное писательство. Результаты заставили пересмотреть подход к настройке speculative decoding. Спойлер: для кодинга — рвёт, для креатива — тормозит.
Прежде чем мы полезем в цифры, освежите в памяти, как работает Multi-Token Prediction. Я уже разбирал это в статье Multi-Token Prediction в mlx-lm: ускорение инференса Qwen 3.5 на Apple Silicon в 1.5 раза. Там же — базовая настройка для mlx-lm.
Почему MTP ведёт себя как шизофреник
Механика speculative inference проста: маленький «драфт»-модель предсказывает несколько токенов, большая модель их верифицирует за один проход. Если догадка верна — профит. Если нет — откат и перегенерация, что дороже, чем обычный авторегрессивный вывод.
Теперь ключевой момент: предсказуемость контекста. Код — это жёсткая структура: синтаксис, имена переменных, шаблоны. Драфт-модель легко угадывает следующие 5-7 токенов. А креатив — это хаос: метафоры, неожиданные повороты, ритм. Там догадка с вероятностью ~30% проваливается, и откаты убивают всё ускорение.
Цифры: код vs креатив на Qwen 3.6 27B
Я тестировал модель в трёх конфигурациях: FP16 (референс), 4-bit GGUF (стандарт), 3-bit Unsloth UD XL (экстрим). Speculative inference включён через MTP с draft-моделью Qwen 3.6 1.5B (специально дообученной под кодинг). Задачи: генерация функции на Python (HumanEval), рефакторинг, написание рассказа, генерация стихов.
| Задача / Конфиг | FP16 без MTP | FP16 + MTP | 4-bit + MTP | 3-bit + MTP |
|---|---|---|---|---|
| Кодинг (HumanEval avg) | 100% (база) | +125% | +154% | +190% |
| Рефакторинг кода | 100% | +118% | +142% | +86% |
| Написание рассказа (500 токенов) | 100% | -18% | -27% | -35% |
| Стихи (рифма, размер) | 100% | -25% | -33% | -40% |
Кодинг: на 4-bit ускорение 1.5x, на 3-bit — почти 2x. Причина — draft-модель идеально угадывает синтаксические конструкции, особенно пробелы, скобки, точки с запятой. Креатив: замедление до 40% на стихах. Драфт-модель постоянно ошибается в рифмах, откаты съедают больше времени, чем экономия.
Важно: результаты для 3-bit квантования на рефакторинге — всего +86%. Это из-за того, что 3-bit GGUF вносит шум, и draft-модель чаще ошибается. Но всё равно быстрее, чем без MTP. Подробнее про 3-bit на разных моделях я писал в MiniMax-M2.5 на MLX: стоит ли игра свеч с 3-bit квантованием?
Почему так? Анатомия ускорения и тормозов
Копнём глубже. Я замерил acceptance rate — процент токенов, принятых верификатором без отката.
- Кодинг (HumanEval): acceptance rate 78-85%. Драфт угадывает
if,for, имена библиотечных функций. - Рефакторинг: 70-75%. Часть правок нестандартная, но структура предсказуема.
- Рассказ: 45-55%. Драфт часто пишет банальщину, большая модель перечёркивает.
- Стихи: 30-40%. Рифма и размер — могила для speculative inference.
Как только acceptance rate падает ниже ~60%, MTP начинает работать в минус. Каждый откат — это 1 полный проход большой модели + чистка кэша. На креативе откаты происходят каждые 2-3 токена, что убивает накладные расходы.
Когда включать MTP — практические рекомендации
Исходя из бенчмарков, я выработал простые правила.
- Для кодинга: MTP включать всегда. Даже на 3-bit квантовании — ускорение 1.8-2x. Особенно эффективно с моделями, где draft-модель обучена на коде (как в Multi-Token Prediction на Qwen3-27B — там до 2.5x).
- Для креативных задач (рассказы, диалоги, маркетинг): лучше выключить MTP. Или использовать небольшое число speculative tokens (1-2).
- Для смешанных задач (написание документации к коду): можно оставить, но acceptance rate будет ~60-65%. На практике даёт +10-20%.
- Для стихов, сценариев, рифмованных текстов: категорически выключить. Замедление гарантировано.
Ошибка №1: включать MTP по умолчанию для всех запросов. Особенно в чат-ботах с творческим режимом. Вы получите более медленный ответ и разочарованных пользователей.
Влияние квантования на acceptance rate
Я сравнил acceptance rate для разных квантований на кодинге (см. таблицу выше). Интересная деталь: 3-bit квантование даёт более высокое ускорение именно благодаря шуму. Драфт-модель на 3-bit ведёт себя более консервативно — генерирует меньше токенов, но с большей уверенностью. Это парадоксально увеличивает acceptance rate в простых структурах.
Но на креативе шум 3-bit убивает всё: acceptance rate падает с 45% (FP16) до 30% (3-bit). Откаты становятся частыми, и замедление достигает 40%.
Вывод: если вы используете агрессивное квантование для скорости — MTP выгоден только на структурированных доменах. Для творчества лучше оставить FP16 или 4-bit без MTP.
Что по итогам: таблица принятия решений
| Сценарий | MTP? | Ожидаемый эффект |
|---|---|---|
| Пишете код (функции, алгоритмы, фиксы) | Да | +50..100% скорости |
| Рефакторинг легаси | Да, но с 1-2 speculative токенами | +30..60% |
| Генерация документации | Опционально | ±0..+20% |
| Художественный текст / сторителлинг | Нет | -15..-30% |
| Стихи / песни / рифма | Нет | -25..-40% |
| ИИ-агенты (кодинг + планирование) | Да | +40..80% (зависит от трейда) |
Для агентов, совмещающих код и планирование, я рекомендую включать MTP только на этапе генерации кода. Планирование — это по сути креатив. Хорошая архитектура — разделять эти этапы, как показано в AVP: латентный трансфер для ускорения агентов.
Типичные ошибки (меня тоже обжигало)
- Включил MTP на всём подряд. Думал, раз код летает, то и тексты ускорятся. В итоге — жалобы на медленные ответы.
- Не смотрел acceptance rate. Если не логировать — вы не знаете, помогает ли технология. Многие системы просто молчат.
- Слишком много speculative tokens. Поставил 10, думая, что чем больше — тем лучше. На креативе это катастрофа. На коде — тоже не оптимально, 5-7 достаточно.
- Не дообучил draft-модель. Использовал стандартный draft из хаба — он плохо предсказывает структуру кода. Специализированная draft-модель (как в той статье) даёт +20-30% acceptance rate.
- Думал, что 3-bit без MTP — это быстро, а с MTP — ещё быстрее. На коде — да. На креативе — нет. Замерьте сначала.
Часто задаваемые вопросы
❓ Может ли MTP ускорить креативные задачи на других моделях?
Пробовал на Llama 4, Mistral Large 2, Opus 4.6 — паттерн тот же. На структурированных доменах (код, SQL, JSON) — ускорение. На креативе — замедление или около нуля. Разница может составлять ±5%, но общая тенденция сохраняется.
❓ Как динамически определять, включать ли MTP?
Можно анализировать промпт: если много символов # <> { } — скорее всего код. Если много пробелов, союзов, метафор — креатив. Но проще сделать ручной переключатель или замерять acceptance rate каждые 50 токенов.
❓ Что с гибридными моделями (Ring-Mini-Linear 2.0)?
Я тестировал их в отдельном обзоре. Гибриды с MTP дают дополнительное ускорение за счёт того, что часть вычислений переиспользуется. Но acceptance rate для них выше на коде из-за лучшего понимания структуры.
Так что, MTP — это зло для креатива?
Не совсем. Всё упивается в acceptance rate. Если вы сможете обучить draft-модель, которая хорошо предсказывает творческие паттерны (например, на датасете стихов), то MTP может работать. Но на практике: кодовые draft-модели есть, творческих — нет. Пока индустрия делает ставку на кодинг, MTP останется «кодовым ускорителем».
Если вы используете MTP — всегда смотрите логи acceptance rate. Если он упал ниже 50% — отключайте speculative decoding на этот запрос. И никогда не включайте его по умолчанию на творческих задачах. Иначе ваш «ускоренный» инференс будет медленнее, чем дефолтный.
Мой прогноз: к концу 2026 года мы увидим draft-модели, специализированные под креативные домены. Но пока что — держите MTP включённым только для кода. И не забывайте про Cursor Composer 2, который умеет переключать режимы в зависимости от задачи. Возможно, следующий шаг — встроенные профили MTP.