Как запустить локальный ИИ без покупки Mac Studio: собрали кластер из старых MacBook

30.07.2026
Локальный ИИ без Mac Studio: как запустить LLM на старых MacBook

Мы в SaaSoft давно присматривались к локальному ИИ— своей, изолированной LLM без облачных API.

Зачем вообще запускать языковую модель локально, если есть облачные API вроде OpenAI или Anthropic? Как минимум три причины.

  1. Данные клиентов не покидают периметр — это важно, когда работаешь с кодом, который передаешь клиентам, или документами с персональными данными.

  2. Не нужно платить за каждый токен подписки.

  3. Можно тестировать модели без ограничений провайдера.

Но на старте покупать Mac Studio или другое дорогое железо ради экспериментов тоже не хотелось. Поэтому взяли два старых MacBook Air M1 по 16 ГБ, которые лежали без дела, соединили их кабелем Thunderbolt и собрали из них собственный кластер для локального запуска языковых моделей. Инструмент, который это позволяет сделать, называется EXO.

EXO простыми словами

EXO — это открытый проект (exo-explore/exo на GitHub) для запуска локального ИИ на кластере из нескольких компьютеров Apple. EXO объединяет несколько Mac в единый вычислительный кластер для запуска больших языковых моделей. Идея простая: одна модель редко помещается в память одного Mac, а память нескольких Mac, соединённых вместе, — уже вполне рабочий объём.

На каждом компьютере запускается узел EXO. Узлы находят друг друга по сети, договариваются, кто на себя берёт какую часть модели, и вместе обрабатывают запросы. Для пользователя это выглядит как один сервис: открываешь веб-интерфейс или обращаешься к API, а дальше EXO сам решает, какой узел что считает.

Мы собрали кластер из двух M1 по 16 ГБ и получили около 28 ГБ общей памяти. На таком объёме уже можно тестировать модели, которые не влезли бы в один ноутбук.

Что удалось проверить даже на этой скромной конфигурации:

  • Qwen3.6-35B нормально справляется с OCR — распознаванием текста на изображениях.

  • Qwen3-Coder-30B неплохо делает код-ревью.

Главный плюс такого подхода — не нужно сразу покупать Mac Studio за пару сотен тысяч рублей, чтобы понять, подходит ли вам локальный ИИ. Старых MacBook или Mac mini на M1/M2 у многих компаний и так хватает — они простаивают после апгрейда парка техники. Мы сейчас присматриваемся к паре Mac Studio или Nvidia DGX Spark — но уже понимая, зачем они нужны и какие модели на них имеет смысл гонять.

Технический блок: как это устроено под капотом

Дальше — для тех, кому интересны детали реализации локального ИИ-кластера, а не только результат.

Сеть. Два Mac соединяются напрямую кабелем Thunderbolt (3/4/5, разъём USB-C). macOS автоматически поднимает интерфейс Thunderbolt Bridge. По умолчанию он получает link-local адрес (169.254.x.x), но для стабильной работы кластера лучше задать статику вручную, например 192.168.100.1 и 192.168.100.2 через networksetup -setmanual. Узлы находят друг друга через Zenoh — это протокол для обмена сообщениями между узлами, пришедший на смену более раннему libp2p в EXO.

Требования. EXO работает только на Apple Silicon, потому что использует MLX — фреймворк Apple для машинного обучения на его чипах. Для сборки MLX нужен не просто Command Line Tools, а полный Xcode из App Store плюс отдельно устанавливаемый Metal Toolchain (xcodebuild -downloadComponent MetalToolchain). Без него сборка падает с ошибкой про отсутствующий инструмент metal.

Установка. Дальше стандартный набор для macOS-разработки: Homebrew, uv (пакетный менеджер Python), Node для сборки веб-дашборда, Rust nightly. Сам EXO клонируется из репозитория, дашборд собирается через npm run build, а Python-окружение с MLX разворачивается через uv sync --extra mlx. На 16 ГБ ОЗУ первую сборку лучше ограничить одним потоком (CMAKE_BUILD_PARALLEL_LEVEL=1) — иначе сборка может упасть по памяти. Первая сборка занимает 15–40 минут.

Запуск. На каждом Mac задаётся одна и та же переменная EXO_ZENOH_NAMESPACE — это имя кластера, по которому узлы находят друг друга. После этого просто uv run exo, и на порту 52415 поднимается дашборд и API, совместимый с OpenAI. Если запустить EXO на обоих Mac с одинаковым неймспейсом, в дашборде появятся оба узла, и при выборе модели, которая не помещается в память одного компьютера, EXO автоматически распределит её слои между узлами — это называется pipeline parallelism.

Доступ и безопасность. По умолчанию API слушает 0.0.0.0:52415, то есть доступен любому в локальной сети. Встроенной аутентификации у EXO нет, поэтому выставлять порт наружу без reverse proxy и авторизации не стоит — для этого лучше поставить nginx или Caddy с Basic Auth или Keycloak.

Если у кого-то тоже есть опыт локальных серверов для ИИ — делитесь, интересно сравнить подходы.

А если вы в своей компании задумываетесь о том, чтобы использовать локальную модель LLM — пишите, обсудим, что выбрать под ваши задачи и бюджет: старое железо для теста или сразу что-то помощнее.

Понравилось: 0Комментариев: 0 Просмотров: 5

Оставить комментарий