Учебник

Как запустить языковую модель на Mac без облака и за вечер

Вы тратите деньги на облачные AI-сервисы, данные уходят на чужие сервера, а ваш Mac простаивает. Разбираем, как запустить языковую модель локально на Mac с M-чипом - без программиста, за один вечер. Получите конкретные шаги: какой инструмент выбрать (MLX или llama.cpp), сколько памяти нужно для разных моделей, как дообучить модель под свои задачи.

Макс Космов··7 мин чтения

У ваших менеджеров уходит по 4 часа в день на переписку с клиентами - шаблонные ответы, уточнения, повторение одного и того же. А вы ещё платите за облачные AI-сервисы, где ваши данные уходят неизвестно куда. Вот как запустить языковую модель прямо на вашем Mac без облака, без программиста и за один вечер.

Разберём на примере стройфирмы: у вас есть прайс на работы и типовой договор подряда. Вы хотите, чтобы менеджер мог спросить у локальной модели «сколько стоит ремонт кухни 10 кв.м?» и получить ответ на основе вашего прайса, не выходя в интернет. Это пример, не реальный кейс автора.

Почему Mac с M-чипом - это ваш личный AI-сервер

Обычные ноутбуки с дискретной видеокартой имеют два отдельных склада памяти: системная RAM (для процессора) и VRAM (для видеокарты). Чтобы запустить языковую модель, нужно перетаскивать данные между ними - это медленно.

У Apple Silicon (чипы M1, M2, M3, M4, M5) память единая. Процессор, видеокарта и нейронный движок читают одни и те же данные без копирования. Пропускная способность этой памяти:

  • M2 Pro: 200 GB/s
  • M3 Max: 400 GB/s
  • M4 Pro: 273 GB/s
  • M4 Max: 546 GB/s
  • M4 Ultra: 819 GB/s

Для запуска модели это принципиально: вы можете загрузить модель весом 40 GB и сразу работать с ней на видеокарте без задержек.

Минус: всю память делят браузер, система, видео - при активной работе остаётся меньше, чем написано в характеристиках. Планируйте с запасом 2-3 GB на фоновые процессы.

Два инструмента: MLX и llama.cpp - что выбрать бизнесу

Есть два основных способа запустить модель на Mac. Выбор зависит от того, что вам нужно.

MLX - фреймворк от Apple. Он быстрее обрабатывает длинные промпты (например, целый договор), позволяет дообучать модель под ваши данные. Минус: требует конвертации модели в свой формат или готовой модели с сайта Hugging Face.

llama.cpp - универсальный инструмент. Работает с любыми моделями в формате GGUF, легко подключается к другим программам (например, к вашему CRM через API). Немного медленнее на длинных промптах, но для чата разница незаметна.

Для стройфирмы из примера: если вы хотите просто чат-бота для менеджеров - берите llama.cpp. Если планируете дообучать модель на своих документах - MLX.

Как установить и запустить MLX за 20 минут

MLX - это набор утилит, которые устанавливаются одной командой. Вам нужен Python (обычно уже есть на Mac) и macOS 13.5 или новее.

# Установка
pip install mlx-lm

# Первый запуск - модель скачивается автоматически
mlx_lm.generate \
 --model mlx-community/Llama-3.2-3B-Instruct-4bit \
 --prompt "Объясни unified memory за 100 слов" \
 --max-tokens 200

Модели хранятся в папке ~/.cache/huggingface/hub/. Первый запуск скачивает их - нужно интернет-соединение.

Чтобы запустить сервер, к которому можно подключиться из любой программы (например, из вашей CRM):

mlx_lm.server --model mlx-community/Llama-3.2-3B-Instruct-4bit --port 8080

Теперь к этому серверу можно обращаться как к обычному API - любой разработчик или даже менеджер через скрипт сможет отправлять запросы.

Как конвертировать модель под свои данные

На сайте Hugging Face есть тысячи уже готовых моделей в MLX-формате. Если нужной нет - конвертируете сами:

# Конвертация с квантованием в 4-bit (меньше памяти, чуть хуже качество)
mlx_lm.convert \
 --hf-path mistralai/Mistral-7B-Instruct-v0.3 \
 --mlx-path ./mistral-7b-mlx \
 -q

# Квантование в 8-bit (лучше качество, вдвое больше размер)
mlx_lm.convert \
 --hf-path mistralai/Mistral-7B-Instruct-v0.3 \
 --mlx-path ./mistral-7b-mlx-8bit \
 --q-bits 8

Конвертация требует оперативной памяти = размер модели в BF16: для Mistral-7B - 14 GB, для Llama-3.3-70B - 140 GB. Процесс занимает 5-30 минут.

После конвертации модель лежит в локальной папке. Запускаете:

mlx_lm.generate --model ./mistral-7b-mlx --prompt "Сколько стоит ремонт кухни 10 кв.м?"

Как запустить llama.cpp и выжать максимум скорости

llama.cpp собирается из исходников. Звучит страшно, но на деле это две команды в терминале:

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DGGML_METAL=ON
cmake --build build -j$(sysctl -n hw.ncpu)

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

./build/bin/llama-cli \
 -m ./llama-3.2-3b-q4_k_m.gguf \
 --n-gpu-layers 99 \
 --ctx-size 8192 \
 --flash-attn \
 -p "Привет, как дела?"

Флаг --n-gpu-layers 99 помещает все слои модели на видеокарту. Частичная выгрузка не имеет смысла - либо всё на GPU, либо только на процессоре.

Для больших моделей (70B) нужно управлять кешем:

./build/bin/llama-cli \
 -m ./llama-3.3-70b-q4_k_m.gguf \
 --n-gpu-layers 99 \
 --cache-type-k q8_0 \
 --cache-type-v q8_0 \
 --ctx-size 32768 \
 --flash-attn

Что быстрее: MLX или llama.cpp

Типичные показатели на Llama-3.2-3B и Llama-3.1-8B в 4-bit:

M3 Pro 18GB:

  • llama.cpp Metal, 3B: генерация ~85 токенов/с, prefill ~600 токенов/с
  • MLX 3B: генерация ~90 токенов/с, prefill ~850 токенов/с
  • llama.cpp Metal, 8B: генерация ~45 токенов/с, prefill ~350 токенов/с
  • MLX 8B: генерация ~48 токенов/с, prefill ~520 токенов/с

M4 Pro 24GB:

  • llama.cpp Metal, 8B: генерация ~65 токенов/с, prefill ~480 токенов/с
  • MLX 8B: генерация ~72 токенов/с, prefill ~720 токенов/с

M2 Ultra 96GB:

  • llama.cpp Metal, 70B: генерация ~25 токенов/с, prefill ~200 токенов/с
  • MLX 70B: генерация ~28 токенов/с, prefill ~380 токенов/с

Вывод: MLX быстрее на обработке длинных промптов (prefill) на 30-60%. На генерации ответов разница 5-15%. Для чата с короткими вопросами разница незаметна. Для пакетной обработки длинных документов MLX выгоднее.

M5 Neural Accelerators: ускорение через MLX

Новые чипы M5 (2025) получили обновлённый нейронный движок. MLX использует его автоматически - время до первого ответа сокращается в 3-4 раза по сравнению с M4. Скорость генерации растёт меньше (1.5-2 раза) - здесь узкое место пропускная способность памяти, а не вычисления.

llama.cpp на M5 тоже работает быстрее, но прирост меньше - он не использует специфические операции нейронного движка напрямую.

Как дообучить модель под свой бизнес без программиста

MLX - единственный локальный инструмент, который позволяет дообучать модель прямо на Mac. Это нужно, чтобы модель знала ваши прайсы, договоры, типовые ответы.

pip install mlx-lm

# Подготовить данные в формате JSONL - файл с парами вопрос-ответ
# Например: {"prompt": "Сколько стоит ремонт кухни 10 кв.м?", "completion": "18 000 руб. за кв.м, итого 180 000 руб."}

# LoRA дообучение (не меняет всю модель, только небольшую часть)
mlx_lm.lora \
 --model mlx-community/Llama-3.2-3B-Instruct-4bit \
 --train \
 --data ./my-dataset \
 --batch-size 4 \
 --num-layers 16 \
 --iters 1000 \
 --save-every 200 \
 --adapter-path ./my-adapter

# Использование дообученной модели
mlx_lm.generate \
 --model mlx-community/Llama-3.2-3B-Instruct-4bit \
 --adapter-path ./my-adapter \
 --prompt "Сколько стоит ремонт кухни 10 кв.м?"

Память для дообучения: базовая модель + активации + градиенты. Для 3B модели с batch_size=4 - около 12-14 GB. M2 Pro 16GB справляется впритык. Рекомендуется M2 Max 32GB и выше.

llama.cpp не поддерживает дообучение - только запуск готовой модели.

Какую модель выбрать под ваш Mac

Практическая таблица «чип - модель - квантование»:

Чип Память Максимальная модель Рекомендуется
M1 / M2 8 GB 7B Q4 Llama-3.2-1B Q8
M2 Pro / M3 Pro 16 GB 13B Q4 Llama-3.1-8B Q8
M2 Pro / M3 Pro 18 GB 13B Q8 Llama-3.1-8B Q8
M3 Max / M4 Max 32-36 GB 30B Q4 Llama-3.1-8B Q8 + 70B Q4 (медленно)
M2 Ultra / M4 Max 48-64 GB 70B Q4 Llama-3.3-70B Q4_K_M
M2 Ultra / M3 Ultra 96-192 GB 70B Q8 / 405B Q4 Llama-3.3-70B Q8

Для кода и технических задач - Qwen2.5-Coder-7B Q8 на 16GB отличный вариант. Для русского языка - Qwen2.5-7B-Instruct Q8.

Частые вопросы

MLX или llama.cpp - что быстрее на одном и том же Mac?

MLX быстрее на обработке длинных промптов на 30-60%. На генерации разница 5-15% в пользу MLX. Для большинства задач выбор определяется не скоростью, а форматом модели: MLX требует конвертации или готовой модели, llama.cpp работает с любым GGUF. Если модель есть в обоих форматах - MLX предпочтительнее.

Сколько памяти нужно для 70B модели на Apple Silicon?

Llama-3.3-70B Q4_K_M: около 40 GB для весов + 8-16 GB кеша при контексте 8K-32K. Итого нужно 48-56 GB. Минимально комфортный чип - M2 Ultra 60GB или M4 Max 48GB (с ограниченным контекстом). На M3 Max 36GB модель запустится с контекстом 4K, но будет медленно.

Работает ли MLX на Mac с Intel-процессором?

Нет. MLX требует Apple Silicon (M1 и новее). На Intel Mac единственный вариант - llama.cpp в режиме процессора (без видеокарты). Скорость для 7B модели - около 5-15 токенов/с, практически неудобно.

Можно ли дообучить модель прямо на MacBook через MLX?

Да, LoRA доступна через mlx_lm.lora. Требования: минимум 16 GB для 3B модели, 32 GB для 7B. MacBook Pro M3 Pro 18GB справится с 3B LoRA при batch_size=2. Полное дообучение (не LoRA) требует значительно больше памяти и на MacBook практически нереально даже для 3B.

Как выбрать квантование для Apple Silicon: GGUF или MLX-формат?

Если главная задача - чат и модель есть на mlx-community в нужном квантовании - берите MLX. Если нужна интеграция с другими программами (Ollama, GPT4All, сервер) - GGUF универсальнее. Оба формата поддерживают 4-bit и 8-bit квантование с сопоставимым качеством.

Что внедрить прямо сейчас

  1. Проверьте, какой у вас Mac (M1 или новее) и сколько памяти.
  2. Установите MLX (одна команда pip install mlx-lm) или соберите llama.cpp (две команды).
  3. Скачайте модель из таблицы выше - начните с 8B модели на 16GB.
  4. Запустите сервер и подключите к нему вашу CRM или другой инструмент через API.
  5. Если нужно, чтобы модель знала ваши документы - соберите 10-20 пар вопрос-ответ и дообучите через LoRA.

Бесплатный план: MLX и llama.cpp - полностью бесплатны. Модели - бесплатны. Вам нужен только Mac.

AI Компас (t.me/kosmoslab_ai) - канал для предпринимателей в РФ и СНГ, которые применяют AI в своём бизнесе без программиста. Разбираем инструменты и схемы - без курсов и теории.