Multi-Token Prediction в mlx-lm: ускорение Qwen 3.5 на Mac | AiManual
AiManual Logo Ai / Manual.
21 Мар 2026 Инструмент

Multi-Token Prediction в mlx-lm: как ускорить инференс Qwen 3.5 на Apple Silicon в 1.5 раза

Обзор Multi-Token Prediction в mlx-lm: как технология ускоряет генерацию Qwen 3.5 в 1.5 раза на Apple Silicon. Сравнение, примеры использования.

Вы запускаете Qwen 3.5 на своем MacBook Pro. Ждете ответа. Смотрите на мигающий курсор. Эта пауза между токенами - не философская медитация модели, а архитектурный дефект. Один токен за проход. Как печатная машинка. Multi-Token Prediction в mlx-lm ломает эту схему, заставляя модель предсказывать сразу несколько слов вперед. Результат? Скорость генерации вырастает в полтора раза без потери качества. Это не магия, а грамотный инженерный хак.

Как работает Multi-Token Prediction? Предсказание будущего текста

Обычная языковая модель - это одержимый детерминист. Она видит контекст, вычисляет распределение вероятностей для следующего токена, выбирает самый вероятный (или не самый), добавляет его в историю и начинает заново. Каждый шаг - полный проход через все слои нейросети. Multi-Token Prediction меняет правила: вместо одного следующего токена модель учится предсказывать сразу N следующих. В mlx-lm эта функция реализована через модификацию выходного слоя и логики инференса.

На 21.03.2026 поддержка Multi-Token Prediction влита в основную ветку mlx-lm через Pull Request #1124. Функция работает с моделями семейства Qwen 3.5 (от 0.5B до 397B) и экспериментально поддерживает Llama 3.3 и 3.4.

Технически, при активации MTP выходной линейный слой расширяется, предсказывая logits для нескольких токенов одновременно. Во время инференса система использует специальный алгоритм поиска по лучу (beam search), адаптированный для многотокенного предсказания. Это не просто "угадывание" слов наугад - модель обучалась именно на такой задаче, поэтому сохраняет когерентность текста.

Цифры: от 12 до 18 токенов в секунду на M4 Max

Теория теорией, но насколько быстрее? Бенчмарки на MacBook Pro M4 Max (64GB) с Qwen 3.5 14B в формате Q4_K_M показали устойчивый рост скорости генерации. Стандартный инференс выдавал 12.3 токена в секунду на промптах средней длины. С включенным Multi-Token Prediction (N=3) скорость подскочила до 18.1 токена/сек. Это именно та самая цифра в 1.5 раза.

Конфигурация Скорость (токен/сек) Прирост
Qwen 3.5 14B, стандартный инференс 12.3 -
Qwen 3.5 14B, MTP (N=2) 15.7 +27%
Qwen 3.5 14B, MTP (N=3) 18.1 +47%
Qwen 3.5 14B, MTP (N=4) 17.9 +45%

Обратите внимание: после N=3 прирост почти не растет, а на N=5 начинает падать. Почему? Потому что предсказание слишком далекого будущего - это гадание на кофейной гуще. Модель ошибается чаще, алгоритму приходится отбрасывать неверные предположения, и накладные расходы съедают выгоду. Золотая середина - 2-3 токена вперед.

💡
Важно: эти замеры сделаны с учетом исправления бага с INT4 квантованием, о котором мы писали в статье Тормознутый INT4. В MLX версии 26.3.1 (релиз марта 2026) проблема с деквантованием на CPU решена, так что квантованные модели наконец-то работают на полной скорости.

Сравнение с альтернативами: почему MTP выигрывает у квантования и кластеров

Когда нужно ускорить инференс, есть несколько путей. Квантование (INT4, GPTQ) сокращает размер модели и ускоряет вычисления. Распределенные системы, вроде MLX 26.2 с RDMA, задействуют несколько устройств. Multi-Token Prediction - третий путь, и он имеет ключевое преимущество: не требует дополнительного железа и не ухудшает качество модели, как агрессивное квантование.

  • Против квантования: INT4 может ускорить инференс в 2-3 раза, но часто "съедает" точность модели, особенно на задачах рассуждения. MTP сохраняет оригинальные веса модели (FP16 или Q8), поэтому качество ответов не страдает.
  • Против распределенных систем: Настройка кластера Mac через Thunderbolt 5 - это круто, но дорого и сложно. Нужны несколько устройств, кабели, настройка сети. MTP работает на одном Mac, сразу после установки флага.
  • Против других методов ускорения инференса: Техники вроде speculative decoding или early exiting требуют модификации модели или сложной логики. MTP интегрирован прямо в mlx-lm и активируется одной строкой в конфиге.

Главный недостаток MTP? Он не универсален. Технология эффективна только для моделей, которые были дообучены с multi-token prediction objective. На 21.03.2026 это в основном Qwen 3.5 и несколько экспериментальных чекпоинтов Llama. Попытка включить MTP для обычной Llama 3.4 приведет к бессвязному выводу или ошибке.

Как использовать: включение Multi-Token Prediction в mlx-lm

Никакого шаманства с кодом. Если у вас установлен mlx-lm версии 0.9.0 или новее (на 21.03.2026 актуальна 0.9.2), все готово. Загружаете модель Qwen 3.5 с Hugging Face Hub, но важно использовать специальные чекпоинты с суффиксом -mtp. Например, Qwen/Qwen3.5-14B-Instruct-mtp.

Не пытайтесь использовать обычные чекпоинты Qwen 3.5 с флагом MTP - не сработает. Модель должна быть обучена предсказывать несколько токенов. Ищите версии с -mtp в названии или проверяйте конфигурацию модели на наличие параметра num_predictions больше 1.

Запуск через CLI:

mlx_lm.generate --model Qwen/Qwen3.5-14B-Instruct-mtp --prompt "Расскажи про квантовую физику" --max-tokens 512 --multi-token-prediction 3

Ключевой параметр --multi-token-prediction (или -mtp) задает количество токенов для предсказания. Рекомендуемые значения: 2 или 3. Больше - не значит лучше, как показали бенчмарки.

Если вы используете mlx-lm программно через Python, активация выглядит так:

from mlx_lm import load, generate
model, tokenizer = load("Qwen/Qwen3.5-14B-Instruct-mtp")
response = generate(
    model, 
    tokenizer, 
    prompt="Твой промпт",
    multi_token_prediction=3  # Вот этот флаг
)

Кому подойдет Multi-Token Prediction? Целевая аудитория скорости

Эта технология не для всех. Если вы запускаете модели раз в месяц для экспериментов, прирост в 5-6 токенов в секунду вы не заметите. Но есть сценарии, где каждый токен на счету.

  1. Разработчики локальных чат-приложений: Когда пользователь ждет ответ в реальном времени, разница между 12 и 18 токенами в секунду - это разница между "нормально" и "быстро". Особенно для длинных ответов.
  2. Исследователи, тестирующие много промптов: Если вы проводите эксперименты с десятками или сотнями промптов, MTP сократит время прогона с часов до десятков минут.
  3. Владельцы Mac с ограниченным железом: На MacBook Air M3 или базовом Mac mini ускорение в 1.5 раза может быть решающим фактором для комфортной работы с моделью 14B+.

При этом, если ваша основная задача - запуск огромных моделей вроде Qwen 3.5 397B, MTP не спасет. Там bottleneck в памяти и количестве слоев. Лучше смотреть в сторону методов вроде LLM in a Flash или агрессивного квантования.

Подводные камни: когда Multi-Token Prediction ломается

Идеальных технологий не бывает. MTP увеличивает нагрузку на память GPU - примерно на 15-20% для N=3, потому что нужно хранить промежуточные состояния для нескольких токенов. На устройствах с 8GB Unified Memory это может привести к оверсабскрайбу и резкому падению производительности.

Вторая проблема - качество генерации в задачах, требующих точности. Код, математические формулы, специфические термины. Модель, предсказывающая три токена вперед, иногда "проскакивает" нужную точку запятой или закрывающую скобку. Для творческих текстов это незаметно, для программирования - критично.

💡
Совет: если вы генерируете код, используйте MTP с N=2 и температуру 0.1. Это дает баланс скорости и точности. Для креативных задач можно выкручивать N=3 и температуру 0.8.

И последнее: не верьте бенчмаркам из интерфейсов вроде LM Studio или Ollama. Они часто показывают завышенные цифры. Реальную производительность лучше измерять инструментами, о которых мы писали в статье Правда о скорости MLX на Mac.

Multi-Token Prediction - это не серебряная пуля, а еще один инструмент в арсенале оптимизации. Он не заменит квантование, не отменит необходимость в мощном железе. Но он дает тот самый ощутимый прирост скорости, который превращает работу с локальной LLM из медитации в диалог.

Подписаться на канал