Перейти к содержанию
modelium.
Начать с задачи
←

MLX-LM на Mac: установить и запустить локальную модель

MLX-LM — Python-инструмент для запуска языковых моделей с MLX на Mac с Apple Silicon. Установите пакет в виртуальное окружение, укажите конкретный MLX-репозиторий в `mlx_lm.chat --model` и проверьте ответ на контрольный вопрос. Потребность в памяти зависит от модели и контекста, а не только от размера файла; запуск на Mac редакцией Modelium не выполнялся.

Сверено 26 сентября 2026 года. Исходники MLX-LM закреплены на commit 87b7b583a697537aa68f47130b40884700b5f55f, пример модели — на HF-ревизии 73e3e38d981303bc594367cd910ea6eb48349da8; руководство MLX по установке — живой документ. Это сверка документации и кода, не запуск на Mac. Версия пакета из PyPI может отличаться от исследованного commit; перед использованием команды проверьте справку установленной версии. Запрос «mlx lm mac» найден в подсказках, но частотность и рост не измерялись.

Когда выбрать MLX-LM на Mac?

MLX-LM — пакет Python для текстовой генерации, интерактивного чата, конвертации и дообучения моделей на MLX. README проекта описывает работу с репозиториями Hugging Face и установку pip install mlx-lm s1. Этот материал рассматривает Mac с Apple Silicon. Новая документация MLX также описывает Linux-бэкенды CPU/CUDA; поэтому «MLX существует только на Mac» было бы неверным обобщением s2s6.

Для первого опыта нужен узкий маршрут: текстовый вопрос → небольшая MLX-совместимая модель → доступная память конкретного Mac → MLX-LM → текстовый ответ в терминале. В качестве примера выбрана community-конверсия mlx-community/Qwen3-0.6B-4bit из Qwen3-0.6B; её карточка указывает MLX, а файл конфигурации — архитектуру Qwen3 и 4-битную квантизацию s7s8. Это кандидат для начального технического теста, не рекомендация качества для ваших документов или обещание запуска на любом Mac. GGUF для llama.cpp — другой формат; описание различий есть в материале о квантизации.

Что проверить до установки?

Согласно инструкции MLX для стандартной установки на Mac через PyPI нужны Apple Silicon, нативный Python и macOS от 14.0. Зафиксированный pyproject.toml MLX-LM строже по Python: требуется версия не ниже 3.11. Для большого веса или длинного контекста этого недостаточно как оценки памяти: предел зависит от весов, KV-кеша и других процессов; размер файла модели на диске нельзя превращать в минимум unified memory s6s2s1. Сравнить варианты устройств можно в гайде по компьютеру для локальных моделей.

На Mac выполните диагностику в Terminal:

uname -m
sw_vers -productVersion
python3 --version
python3 -c 'import platform; print(platform.machine())'

Ожидаемый ориентир для этого гайда — arm64 у нативного процесса Python, подходящая версия macOS и Python от 3.11. Если процесс Python запускается через Rosetta как x86_64, установите нативный Python и создайте окружение заново; официальный раздел troubleshooting MLX предупреждает о проблемах поиска совместимого пакета при ненативном Python s6s2. Команды диагностики здесь не выполнялись на Mac редакции.

Как установить пакет и получить первый ответ?

Создайте отдельную папку и виртуальное окружение. Команда установки из README — pip install mlx-lm, а pyproject.toml регистрирует исполняемые файлы mlx_lm.chat и mlx_lm.generate s1s2:

mkdir mlx-lm-first-chat && cd mlx-lm-first-chat
python3 -m venv .venv
source .venv/bin/activate
python -m pip install mlx-lm
mlx_lm.chat --help
mlx_lm.chat --model mlx-community/Qwen3-0.6B-4bit --max-tokens 512

Последняя команда выбирает конкретный HF-репозиторий, а не тяжёлую модель по умолчанию: README указывает для чата без --model другую модель mlx-community/Llama-3.2-3B-Instruct-4bit; код chat.py принимает HF ID или локальный каталог и лимит генерации через --max-tokens s1s4. При первом обращении к нескачанным весам нужен сетевой доступ к Hub; имя репозитория без ревизии может разрешиться в новый commit. Для воспроизводимой проверки зафиксируйте скачанную ревизию и версии mlx-lm, mlx, Python и macOS, затем укажите локальный каталог снимка через --model; исследованная карточка относится к HF-ревизии 73e3e38d981303bc594367cd910ea6eb48349da8 s1s4s7. Перед использованием весов в работе проверьте их происхождение и лицензию по гайду Hugging Face.

Введите простой контрольный вопрос, например «Ответь одним предложением: что означает локальный запуск модели?». Критерий для вашего теста — завершённая загрузка модели, отсутствие ошибки и содержательный ответ в выбранной сессии, а не только появившийся Python prompt. В чате q завершает сессию, r сбрасывает её контекст; окно диалога сохраняет предыдущие сообщения до сброса s1s4. Качество на русскоязычных документах, расход памяти и скорость этим одним вопросом не доказываются.

Если нужна одиночная неинтерактивная проверка, mlx_lm.generate принимает --model, --prompt и --max-tokens, а исходный код предусматривает применение chat template, если он есть у токенизатора s3:

mlx_lm.generate --model mlx-community/Qwen3-0.6B-4bit \
--prompt 'Ответь кратко по-русски: что такое локальная модель?' --max-tokens 512

Это инструкция из анализа параметров, не засвидетельствованный вывод модели. Поведение и форма ответа конкретных квантов требуют реального прогона на вашем Mac.

Что делать, если установка или генерация не удалась?

  • No matching distribution или процесс x86 под Rosetta: проверьте uname -m, архитектуру самого Python, macOS и python3 --version; MLX для установки на Mac требует нативный Apple Silicon Python, а текущий исходный пакет MLX-LM — Python от 3.11 s6s2.
  • Ошибка при загрузке модели: отделите сетевой доступ к Hub от локального запуска. Проверьте точное написание HF ID и выбранную ревизию/файлы на Hugging Face; документация MLX-LM описывает загрузку модели из Hub при указании репозитория s1s7. Не вводите закрытые данные, пока способ загрузки и сетевые обращения не выяснены.
  • Модель не помещается или ответ слишком медленный: начните с меньшего варианта или сократите вход/контекст. README описывает ограничение KV-кеша и уменьшение --prefill-step-size для снижения пиковой памяти ценой других свойств, но не даёт универсального «минимума RAM» для всех моделей s1. Не запускайте предложенную в README команду sudo sysctl как первый способ диагностики: она меняет системный лимит памяти и описана отдельно для больших моделей на macOS от 15.0 s1.
  • Странный ответ: убедитесь, что выбраны правильный --model и шаблон чата; chat.py применяет шаблон токенизатора, а в генераторе есть отдельный флаг отключения шаблона. Не оценивайте пригодность модели по одной короткой фразе s4s3.

Нужен ли HTTP-сервер вместо терминала?

MLX-LM документирует mlx_lm.server --model ..., локальный порт 8080 и маршрут /v1/chat/completions s5. Но сам разработчик не рекомендует этот сервер для production, поскольку в нём лишь базовые проверки безопасности; не выставляйте тестовый endpoint во внешнюю сеть и не считайте совместимость URL полноценной совместимостью API s5. Для первого ответа сервер не нужен. Если сравниваете другой runtime и API, откройте Ollama; её формат модели и условия запуска следует проверять отдельно.

pyproject.toml указывает лицензию MIT для кода MLX-LM; карточка выбранной community-модели помечена Apache-2.0 для её весов и ссылается на базовую модель Qwen. Это разные объекты, из меток нельзя автоматически сделать юридический вывод о конкретном коммерческом сценарии s2s7. После первого локального ответа следующий осмысленный шаг — проверить сетевые соединения до работы с настоящими документами: слово «локальный» не подтверждает, что загрузчик и процесс никогда не обращаются к сети.

Источники

  1. MLX-LM — README: установка, чат, генерация и память — revision 87b7b583a697537aa68f47130b40884700b5f55f; Снимок s1-README.md; 8569 байт, SHA-256 в manifest.json.. Получено 26.09.2026.
  2. MLX-LM — pyproject.toml: Python, зависимости и CLI — revision 87b7b583a697537aa68f47130b40884700b5f55f; Снимок s2-pyproject.toml; лицензия ПО MIT и requires-python >=3.11.. Получено 26.09.2026.
  3. MLX-LM — CLI генерации — revision 87b7b583a697537aa68f47130b40884700b5f55f; Снимок s3-generate.py; аргументы --model, --prompt, --max-tokens, шаблон чата.. Получено 26.09.2026.
  4. MLX-LM — реализация интерактивного чата — revision 87b7b583a697537aa68f47130b40884700b5f55f; Снимок s4-chat.py; model, token limit, REPL reset/quit.. Получено 26.09.2026.
  5. MLX-LM — HTTP Model Server — revision 87b7b583a697537aa68f47130b40884700b5f55f; Снимок s5-SERVER.md; localhost:8080, chat completions и предупреждение о базовой защите.. Получено 26.09.2026.
  6. MLX — Build and Install — Снимок s6-mlx-install.html; текущая документация MLX, без неизменяемой ревизии: macOS и Linux-бэкенды.. Получено 26.09.2026.
  7. mlx-community/Qwen3-0.6B-4bit — карточка модели — revision 73e3e38d981303bc594367cd910ea6eb48349da8; Снимок s7-model-card.md; происхождение community-конверсии, заявленная лицензия весов.. Получено 26.09.2026.
  8. mlx-community/Qwen3-0.6B-4bit — config.json — revision 73e3e38d981303bc594367cd910ea6eb48349da8; Снимок s8-model-config.json; архитектура qwen3, quantization bits: 4.. Получено 26.09.2026.