Как ускорить локальные нейросети на Apple Silicon в два раза с помощью MTPLX

20 авг 2026
1,444
103
19
4 недели

MTPLX

Если вы запускали свежие модели семейства Qwen на макбуке, вы наверняка замечали, что генерация длинных ответов может ощутимо упираться в пропускную способность памяти. Обычно для ускорения используют спекулятивное сэмплирование (speculative decoding). Но у классического подхода есть неприятный минус: вам приходится держать в драгоценной объединенной памяти Mac вторую, маленькую модель-черновик.

Недавно наткнулся на проект MTPLX разработчика Юссофа Алтухи (Youssof Altoukhi). Автор решил выжать максимум из архитектуры Apple Silicon и встроенных голов многотокенового предсказания (Multi-Token Prediction, или MTP), которые уже зашиты в веса современных моделей вроде Qwen 3.5, 3.6 и 3.8.

В чем хитрость MTP без второй модели

Большинство существующих рантаймов просто игнорируют MTP-головы внутри весов. MTPLX устроен иначе.

Модель сама набрасывает несколько токенов вперед, а затем верифицирует всю пачку за один прямой проход через MLX. Для валидации используется точный алгоритм rejection sampling Левиафана и Чена с остаточной коррекцией.

Реклама

Что это значит на практике? Никаких упрощений или эвристик. Распределение вероятностей остается ровно таким же, как при обычной пошаговой генерации. Если вы выставили temperature=0.6 и top_p=0.95, модель ответит точь-в-точь так же, как и без MTP, только гораздо быстрее.

На M4 Mac mini с 16 ГБ памяти ускорение достигает 1.6x, а на чипах M5 Max прирост доходит до 2.24x.

Панель MTPLX

Что внутри: приложение и CLI

Проект поставляется в двух вариантах: нативное GUI-приложение для macOS 14+ и классический CLI-инструмент.

Графический клиент берет на себя всю рутину. При первом запуске он анализирует доступную память, подбирает подходящую модель, скачивает ее, настраивает изолированное окружение Python и даже предлагает управление вентиляторами, чтобы макбук не троттлил на длинных задачах.

Интерфейс чата MTPLX

Если вам привычнее терминал, установка делается через Homebrew или pip:

brew install youssofal/mtplx/mtplx
mtplx start

Или через pip:

python3 -m pip install mtplx

Главные возможности

  1. Автоматический тюнинг глубины драфта. Эффективность MTP зависит от конкретного чипа и ширины шины памяти. Команда mtplx tune --retune прогоняет модель на разных глубинах (Depth 1, 2, 3) прямо на вашем железе и фиксирует самый быстрый вариант. Если MTP на вашей конфигурации внезапно уступает обычному авторегрессионному режиму, программа честно отключит драфт.
  2. Локальный совместимый сервер. Команда mtplx serve поднимает сервер на порту 8000. Он совместим с форматами OpenAI (/v1/chat/completions) и Anthropic (/v1/messages). С ним без танцев с бубном работают Claude Code, Cline, Continue и Open WebUI.
  3. Встроенные эмбеддинги и реранкинг. Вам не нужен отдельный сервер для RAG. Демон умеет параллельно держать MLX-модели эмбеддингов и реранкеров, подгружая их в память по мере поступления запросов.
  4. Утилита Forge для сборки своих моделей. В состав входит инструмент mtplx forge, который конвертирует репозитории с Hugging Face в формат MLX, дообучает MTP-адаптер и замеряет скорость до и после.

Инструмент Forge

Как работать с сервером

После старта сервера к нему можно обращаться стандартными запросами:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"mtplx","messages":[{"role":"user","content":"Привет!"}],"stream":true}'

Если вы строите агентскую систему или RAG-пайплайн, сразу укажите модели для поиска:

mtplx serve \
  --embedding-model mlx-community/Qwen3-Embedding-8B-4bit-DWQ \
  --reranker-model vserifsaglam/Qwen3-Reranker-4B-4bit-MLX

Сессии сохраняются на SSD, поэтому при перезапуске сервера контекст предыдущих длинных диалогов восстанавливается почти мгновенно.

Ограничения проекта

Чудес без компромиссов не бывает, поэтому держите в голове несколько нюансов:

  • Инструмент написан строго под Apple Silicon (чипы M1 и новее) и опирается на фреймворк MLX. Пользователям Linux и видеокарт NVIDIA лучше оставаться на vLLM или SGLang.
  • MTPLX не умеет цеплять случайные MTP-головы к произвольным моделям, так как несовпадение весов ломает математическую точность генерации. Нужно брать либо проверенные сборки из официального каталога автора на Hugging Face (Qwen 3.5, 3.6, 3.8, Gemma 4), либо тренировать адаптер с нуля через встроенный Forge.

Стоит ли пробовать

Если вы пишете код на Mac и используете локальные LLM через Continue или Cline, MTPLX дает отличный прирост скорости без покупки дополнительного софта. На моделях вроде Qwen 3.8 27B разница в отзывчивости автодополнения и генерации кода ощущается сразу.

Проект распространяется под свободной лицензией Apache-2.0, исходники чистые, а бенчмарки воспроизводятся прямо из терминала через команду mtplx bench. Отличная находка для локальной разработки.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.