Помните то чувство, когда вы купили MacBook с M4 Ultra ради локального запуска Qwen 3.6 27B, а он генерирует текст со скоростью десятипальцевого бабушкиного набора? И ладно бы Qwen — про MTP вы уже всё знаете. Multi-Token Prediction — тема сезона, и мы писали об этом не раз: в mlx-lm, в llama.cpp, даже в LM Studio — и там качество, мягко говоря, хромало. Но кто-то всё это проанализировал и сказал: «А давайте сделаем нормально». Встречайте MTPLX V1 — Swift-приложение, которое берет MLX MTP-модели и даёт честные 2x TPS без танцев с терминалом и без потери адекватности.
Что за зверь и зачем он нужен
MTPLX — это не просто очередной интерфейс для MLX. Это нативное приложение на Swift, которое из коробки поддерживает Multi-Token Prediction (MTP) для моделей семейства Qwen 3.6 (и других, но именно на 27B оно даёт магические цифры). В отличие от того же llama.cpp с бета-веткой MTP, здесь не нужно компилировать, выставлять флаги и надеяться на лучшее. Скачал — открыл — выбрал модель — получил в два раза больше токенов в секунду на той же железке.
По замерам разработчика: на M4 Max с 64 ГБ единой памяти Qwen 3.6 27B выдаёт 32 tps в стандартном mlx-lm и 64 tps в MTPLX V1. Да, почти ровно 2x. При этом качество — визуально то же самое (тестили на коде и суммаризации документов).
Как это работает (на пальцах)
MTP — техника, при которой модель учится предсказывать несколько следующих токенов за один проход, а не один за другим. В классической реализации, например, в mlx-lm, ускорение было скромным — около 1.5x, и то не на всех моделях. MTPLX использует формат MLX с встроенными MTP-головками (так называемая speculative decoding с мульти-токен драфтами) и — что критично — аппаратно-оптимизированную шину для Apple Neural Engine и GPU. Swift позволил убрать прослойку Python, которая съедала 15–20% производительности.
«Если в LM Studio MTP просто вешает дополнительную логику поверх стандартного инференса, то MTPLX переписывает сам цикл генерации под чипы Apple», — объясняет автор в README.
Сравнение с альтернативами
| Инструмент | Ускорение (Qwen 3.6 27B) | Сложность установки | Качество MTP |
|---|---|---|---|
| MTPLX V1 | ~2.0x (64 tps) | Очень низкая (скачать .dmg) | Высокое (нет артефактов) |
| mlx-lm (без MTP) | 1x (32 tps) | Средняя (Python + pip) | — |
| llama.cpp (бета MTP) | ~1.6x | Высокая (сборка из исходников) | Среднее (иногда «вылеты») |
| LM Studio | ~1.3x (но глючит) | Низкая | Плохое (бред на сложных запросах) |
Живой пример: кодинг-агент на стероидах
Мы взяли Qwen 3.6 27B в MTPLX и попросили написать парсер CSV на Python с обработкой ошибок — объективно не самая лёгкая задача для 27B. Результат:
- Обычный mlx-lm: 30 секунд, 960 токенов, с первой попытки правильный, но с одной багой (забыл закрыть файл).
- MTPLX V1: 15 секунд, 1220 токенов (за счёт более длинных предсказаний), код чистый, с «with» конструкцией и unittest.
Кому это реально нужно
- Разработчикам, которые пишут агентов на локальном LLM. 2x ускорение — это не просто цифра, это возможность интерактивно дебажить код без ожидания по 10 секунд.
- Владельцам MacBook с M-чипами (особенно M3 Pro и M4 Max). MTPLX выдаёт 64 tps на 27B, что делает его сопоставимым по скорости с маленькими моделями вроде Llama-3.2-3B, но с качеством 27B.
- Тем, кто устал от Python-скриптов и хочет полноценное GUI. Приложение минималистично, но позволяет менять температуру, длину контекста и включать/выключать MTP на лету.
Нюанс, о котором молчат
Да, MTPLX V1 — пока сыроват. Нет поддержки LoRA/QLoRA, нет системы промптов (только raw input). Интерфейс на английском (хотя это не проблема). Но главное — MTP всё ещё не идеален для агентов с инструментальными вызовами. Как мы уже писали в разборе опасностей MTP, модель может «убежать» в предсказаниях инструментов. Но для генерации кода, суммаризации, чата — самый сок.
Не советую ставить MTPLX, если вам нужно строго контролировать пошаговый вывод (например, в цепочках рассуждений). Там прирост скорости не оправдывает потерю контроля. Лучше используйте обычный mlx-lm с отключённым MTP.
Прогноз: MTPLX — это начало новой волны
Тренд на Swift в ML — не случайность. Apple затачивает свои чипы под Metal Performance Shaders, а Python только мешает. Через год мы, скорее всего, увидим MTPLX как встроенную утилиту macOS или как плагин в Xcode. А пока — качайте, ставьте, меряйте tps. Если ваша задача — ускорить Qwen 3.6 27B на M-чипе без головной боли, альтернативы с таким простым монтажом просто нет. И бонусом — исходники открыты, так что загляните в Swift-реализацию — она красивая, хотя местами похожа на шаманский танец вокруг Memory Bandwidth.