Запуск больших языковых моделей с MLX
MLX на Mac с Apple silicon позволяет исследователям и разработчикам ИИ экспериментировать локально с новейшими моделями и методами в приватной среде. Open-source фреймворк для работы с массивами использует архитектуру единой памяти Apple silicon, давая возможность каждому запускать новые методы вывода и fine-tuning на собственном оборудовании и изучать другие техники ИИ. Ранее в отдельной статье рассмотрели преимущества архитектуры M5 и её GPU Neural Accelerators.
В этом материале показано, как запустить новейшую frontier-class модель — Muse Spark Open с почти триллионом параметров — прямо со своего рабочего стола, используя свежевышедшую версию MLX. На кластере из четырёх Mac Studio модель генерирует более 36 токенов в секунду (см. Figure 1) — это значительно превышает среднюю скорость чтения человека.
Начиная с одного Mac Studio (вплоть до 512GB единой памяти), а затем масштабируя на несколько Mac через RDMA over Thunderbolt драйвер, ниже представлен обзор диапазона моделей, которые теперь можно запускать на Mac Studio.
Скорость декодирования Muse Spark Open
Размер контекста: 8 192 токена
Проведены тесты нескольких популярных LLM с открытыми весами на Mac Studio, используя пакет MLX LM, как описано в предыдущей статье. Сравнены два поколения Mac Studio: недавно выпущенный M5 Ultra и предыдущее поколение M3 Ultra. Поколение M5 получило GPU Neural Accelerator, поддерживающий специализированные операции матричного умножения, критически важные для многих ML-задач.
Оценены три frontier-class модели (Table 1) с широким диапазоном размеров (в миллиардах параметров, B): недавно выпущенная Muse Spark Open (816 B), Mistral Medium 3.5 (128 B) и Qwen 3.8 (27 B). Muse Spark Open — это модель архитектуры mixture of experts (MoE), которая держит активными лишь часть экспертов и, соответственно, параметров, снижая требования к вычислениям при выводе, и оценивается в NVFP4 точности. Mistral Medium 3.5 и Qwen 3.8 — плотные архитектуры, где все параметры активны при выводе, и они оценены в своей исходной точности (FP8 и BF16 соответственно).
| Модель | Всего параметров | Активных параметров | Исходная точность | Точность оценки |
|---|---|---|---|---|
| Muse Spark Open | 816B | 42B | BF16 | NVFP4 |
| Mistral Medium 3.5 | 128B | 128B | FP8 | FP8 |
| Qwen 3.8 | 27B | 27B | BF16 | BF16 |
При оценке измеряются три метрики на диапазоне размеров контекста: время до первого токена (TTFT, в секундах), пропускная способность генерации (в токенах/секунду) и пиковое потребление мощности (в ваттах). Все результаты производительности получены с помощью mlx_lm.benchmark. Например, запуск Qwen 3.8 с контекстом из 8 192 токенов и генерация 128 токенов выполняется командой:
mlx_lm.benchmark --model Qwen/Qwen3.8-27B -p 8192 -g 128 -b 1
Популярное использование локальных LLM на Mac Studio — запуск agentic-приложений в приватной среде, включая agentic coding tools, часто требующие больших контекстов. Поэтому результаты приведены для размеров контекста 8 192 и 65 536 токенов.
Raw значения TTFT и пропускной способности декодирования представлены в Table 2 и Table 3 соответственно.
Производительность вывода на одном Mac Studio
Qwen 3.8 27B и Mistral Medium 3.5 128B комфортно размещаются на одном Mac Studio с 512GB, занимая до 68GB и 158GB оперативной памяти в конфигурации с большим контекстом (65 536 токенов). На Figure 2 сравнена производительность вывода на одном Mac Studio с 512GB оперативной памяти, как для M3 Ultra, так и для M5 Ultra.
Время до первого токена (TTFT) в основном ограничено вычислениями, и это именно то, где GPU Neural Accelerators в M5 Ultra сияют: специализированная аппаратная поддержка быстрого матричного умножения напрямую даёт значительное ускорение для TTFT, до 4,6× быстрее в сравнении с M3 Ultra (см. Figure 2). Это делает Mac Studio с M5 Ultra идеальным выбором для задач с очень большими контекстами.
Скорость генерации (в токенах в секунду) ограничена пропускной способностью памяти. Чип M5 Ultra обеспечивает пропускную способность единой памяти 1,2 TB/s, что выше, чем 819 GB/s для M3 Ultra. И снова это напрямую переводится в скорость генерации (см. Figure 3) — Mac Studio с M5 Ultra показывает 1,6× более быстрые токены в секунду.
Ускорение TTFT
Один Mac Studio, M5 Ultra против M3 Ultra (baseline 1.0×)
Ускорение декодирования
Один Mac Studio, M5 Ultra против M3 Ultra (baseline 1.0×)
Mac Studio также энергоэффективен при выводе LLM (см. Figure 4): пиковое потребление мощности составляет около 200W для Mac Studio с M3 Ultra и 300W для Mac Studio с M5 Ultra — доля мощности, потребляемой обычным тостером. Главное — такое скромное потребление мощности означает, что Mac Studio может быть развёрнут для работы с ИИ в любой домашней или офисной среде.
Пиковое потребление мощности
Размер контекста: 65 536 токенов
Хотя обе модели Qwen и Mistral размещаются на одном Mac Studio с 512GB оперативной памяти, Muse Spark Open в исходной точности (BF16) потребовала бы более 1,6TB оперативной памяти только для параметров модели. В 4-битном квантованном формате (NVFP4) требования к памяти снижаются примерно до 493GB. С добавлением памяти, необходимой для промежуточных вычислений при выводе, модель не может поместиться на одной машине. Требуется параллелизация на нескольких Mac Studio.
Пипелайн вывода на двух Mac Studio
Очень большие frontier-class модели, такие как Muse Spark Open, не поместятся на одной машине. Однако возможно разместить половину модели на одном Mac Studio и другую половину на другом. Затем можно сделать пипелайн вывода модели на двух компьютерах: первый Mac Studio выполняет первую половину слоёв модели, затем отправляет выход на второй Mac Studio, который выполняет вторую половину. Эта схема параллелизации называется pipeline parallelization (см. Figure 5) и чрезвычайно проста в реализации, требуя только минимальных изменений кода.
Разделение больших моделей на несколько компьютеров
MLX поддерживает различные схемы параллелизации, как описано в документации по распределённому MLX. Они полагаются на быструю коммуникацию между машинами: macOS 26.2 представила низколатентный RDMA драйвер через Thunderbolt 5, а MLX (версия 0.30.1 и позже) строится на основе этого драйвера и предоставляет новые коммуникационные примитивы (jaccl, произносится как «jackal») для различных схем параллелизации. В нашей настройке два Mac Studio подключены двумя кабелями Thunderbolt (чтобы удвоить пропускную способность канала), обеспечивая RDMA-over-Thunderbolt линк, который использует jaccl. После настройки хостов MLX предоставляет mlx.launch — вспомогательную команду для запуска заданий на нескольких узлах:
mlx.launch --hostfile hostfile.json --backend jaccl --env MLX_METAL_FAST_SYNCH=1 -- \
mlx_lm.benchmark --model mistralai/Mistral-Medium-3.5-128B -p 8192 -g 128 -b 1 --prefill-step-size 8192 --pipeline
В этой команде --backend jaccl указывает RDMA Thunderbolt драйвер. Флаг --env MLX_METAL_FAST_SYNCH=1 включает экспериментальную функцию MLX для быстрой синхронизации CPU-GPU, снижая накладные расходы коммуникации между CPU (инициирующей коммуникацию Thunderbolt) и GPU (выполняющей вычисления).
В целом скорость декодирования при pipeline parallelization (см. Figure 7) очень похожа на скорость одной машины, так как слои всё ещё вычисляются последовательно. Накладные расходы коммуникации также очень низкие, так как нужно обменивать только промежуточные выходы между двумя наборами слоёв.
Однако примечательно, что для очень больших контекстов (65 536 токенов в нашем тесте) pipeline parallelization оказывается быстрее, чем один узел для prefill — до ~1,8× быстрее (см. Figure 6). Это потому, что MLX разбивает большие контексты на более мелкие части (здесь 8 192 токена, как указано параметром --prefill-step-size 8192) и делает пипелайн prefill на машинах: пока вторая машина вычисляет более поздние слои блока k, первая машина вычисляет более ранние слои блока k+1, так что последовательные блоки перекрываются во времени. Для ещё лучшей параллелизации вычислений переходим к tensor parallelization.
Ускорение TTFT
Два Mac Studio с pipeline parallelization против одного M5 Ultra (baseline 1.0×)
Ускорение декодирования
Два Mac Studio с pipeline parallelization против одного M5 Ultra (baseline 1.0×)
Tensor Parallelization для более быстрого вывода
Tensor parallelization (см. Figure 5) распределяет ширину LLM на несколько компьютеров, в отличие от pipeline parallelization, которая распределяет модель по глубине. Каждая машина теперь содержит часть каждого слоя модели, так что вычисления per-layer параллелизуются. При эффективной реализации tensor parallelization повышает скорость вывода. Однако tensor parallelization сложнее реализовать, чем pipeline parallelization: каждый слой должен быть параллелизован, что повышает сложность кода. Схема также предполагает много мелких операций коммуникации: для каждого входного токена и каждого слоя нужно транслировать входные данные и агрегировать выходные. В результате критически важна очень низколатентная технология коммуникации, такая как Thunderbolt RDMA, поддерживаемая MLX jaccl, для получения любого ускорения.
С высокоуровневым вспомогательным методом mlx.launch MLX легко переключиться на tensor parallelization. Mac Studio подключены в mesh Thunderbolt, где каждая пара машин связана peer-to-peer двумя кабелями Thunderbolt. Предполагая настроенные хосты, просто запускаем тест на нескольких машинах:
mlx.launch --hostfile hostfile.json --backend jaccl --env MLX_METAL_FAST_SYNCH=1 -- \
mlx_lm.benchmark --model meta-models/Muse-Spark-Open-816B-A42B-NVFP4 -p 8192 -g 128 -b 1
Figure 8 и Figure 9 показывают ускорения, полученные с двумя или четырьмя Mac Studio с M5 Ultra, относительно baseline с одной машиной (или для Muse Spark Open — baseline с pipeline parallelization на двух машинах). Примечательно, что плотные архитектуры масштабируются лучше на нескольких компьютерах.
С небольшим числом машин накладные расходы коммуникации tensor parallelization могут перевесить некоторые вычислительные выгоды при очень больших контекстах, хотя это применимо только к prefill. Это видно на примере Muse Spark Open, где отдельная нормализация выходов экспертов добавляет некоторую prefill коммуникацию, достаточную, чтобы при очень больших контекстах (65 536 токенов) tensor parallelization на двух машинах отставал от pipeline parallelization на двух машинах. Однако подход окупается по мере добавления машин, как видно с четырьмя M5 Ultras. Декодирование не подвержено влиянию: Muse Spark Open поддерживает значительное ускорение декодирования при tensor parallelization даже при больших контекстах, сопоставимое с плотными моделями, такими как Qwen 3.8 и Mistral Medium 3.5.
Двухкабельный mesh также даёт результаты во время prefill, где чувствуется дополнительная полоса пропускания канала. Для Muse Spark Open на четырёх M5 Ultras при контексте 65 536 токенов два кабеля на линк снижают TTFT с ~50,5s (один кабель) до 40,6s — значение с двумя кабелями, представленное в Table 2, запуск с одним кабелем — дополнительный эксперимент.
Ускорение TTFT
Два или четыре Mac Studio с tensor parallelization против одного M5 Ultra (baseline 1.0×; Muse Spark Open: два машины pipeline)
Ускорение декодирования
Два или четыре Mac Studio с tensor parallelization против одного M5 Ultra (baseline 1.0×; Muse Spark Open: два машины pipeline)
Время до первого токена (секунды)
Меньше — лучше
| Модель | M3 Ultra | M5 Ultra | 2 M5 Pipeline | 2 M5 Tensor | 4 M5 Tensor |
|---|---|---|---|---|---|
| Muse Spark Open | — | — | 8.4 | 8.2 | 4.8 |
| Mistral Medium 3.5 | 95.9 | 24.6 | 24.5 | 14.4 | 7.5 |
| Qwen 3.8 | 18.2 | 4.1 | 4.1 | 3.1 | 1.7 |
Скорость декодирования (токены в секунду)
Больше — лучше
| Модель | M3 Ultra | M5 Ultra | 2 M5 Pipeline | 2 M5 Tensor | 4 M5 Tensor |
|---|---|---|---|---|---|
| Muse Spark Open | — | — | 15.74 | 24.99 | 36.73 |
| Mistral Medium 3.5 | 4.95 | 7.70 | 7.70 | 13.69 | 23.37 |
| Qwen 3.8 | 12.46 | 19.69 | 19.44 | 33.27 | 50.89 |
Локальный Agentic AI на Mac
Недавно agentic AI на Mac приобрел значительный импульс, при этом agentic coding tools получают широкое распространение среди разработчиков. С MLX включение этих инструментов локально так же просто, как запуск сервера с помощью инструмента mlx_lm.server. Например, сервер, запускающий Muse Spark Open на порту 8080, запускается командой:
mlx.launch --hostfile hostfile.json --backend jaccl --env MLX_METAL_FAST_SYNCH=1 -- \
mlx_lm.server --model meta-models/Muse-Spark-Open-816B-A42B-NVFP4 --port 8080
Как и с mlx_lm.benchmark, вспомогательный метод mlx_lm.server может быть дополнен mlx.launch для параллелизации вычислений на нескольких Mac Studios. Отсюда agentic AI можно включить с помощью инструментов, таких как OpenCode, который легко настраивается для использования этого локального LLM сервера:
{
"$schema": "https://opencode.ai/config.json",
"model": "meta-models/Muse-Spark-Open-816B-A42B-NVFP4",
"provider": {
"mlx": {
"npm": "@ai-sdk/openai-compatible",
"name": "Local MLX",
"options": {
"baseURL": "http://127.0.0.1:8080/v1"
},
"models": {
"meta-models/Muse-Spark-Open-816B-A42B-NVFP4": {
"name": "Muse Spark Open 816B (MLX)"
}
}
}
}
}
Многие другие локальные agentic AI приложения можно включить через аналогичный подход.
Заключение
За последний год разработчики работали над несколькими ключевыми инновациями в MLX, чтобы облегчить и сделать более эффективным запуск state-of-the-art LLM локально на свежих Apple silicon. Это включает поддержку программного обеспечения для Neural Accelerators в GPU семейства M5, низколатентную коммуникацию на нескольких Mac через RDMA over Thunderbolt и эффективные реализации популярных недавних архитектур, таких как mixture of experts (MoE). Каждое из этого помогает само по себе, но их комбинация с последним Apple silicon — Mac Studio с M5 Ultra, Neural Accelerators в M5 Ultra GPU, 512GB единой памяти и RDMA over Thunderbolt 5 — теперь позволяет запускать модели, такие как Muse Spark Open с более чем 800B параметрами локально, с ускорением до 4,6× для скорости запуска (time-to-first-token) относительно предыдущего поколения Mac Studio.