Автоматический перевод
Эта статья была автоматически переведена с оригинальной английской версии.
Локальные LLM на macOS: Ollama, LM Studio, llama.cpp, MLX и Apple Silicon
Отправлять каждый промпт в сторонний API быстро надоедает, особенно когда половина запросов — это «перепиши этот абзац» или «какая здесь JSON schema». Локальные LLM решили для меня эту задачу на Apple Silicon быстрее, чем я ожидал. Модель 7B в 4-битной квантизации комфортно работает на MacBook с 16 GB, а полный цикл запроса заканчивается прямо на клавиатуре.
Поэтому открытый вопрос — из какого приложения всем этим пользоваться. Ollama, LM Studio, llama.cpp, MLX и ещё несколько инструментов оборачивают похожие inference-движки и одни и те же файлы GGUF. Разница в том, сколько трения между вами и моделью: на одном конце спектра — двойной клик и ввод текста, на другом — сборка из исходников и чтение man page.
Ключевые понятия для локальных LLM на macOS
- Inference: запуск модели для генерации текста.
- Квантизация (GGUF): техника уменьшения размера модели с минимальной потерей качества. Вы будете видеть имена файлов вроде
llama-3-8b-Q4_K_M.gguf. ЧастьQ4означает 4-битную квантизацию, которая использует намного меньше RAM, чем полные 16-битные веса. - Apple Silicon (Metal): чипы Apple серии M используют общую RAM для CPU и GPU (Apple называет это «Unified Memory»). Поэтому MacBook с 32GB или 64GB может загружать модели, для которых на ПК понадобился бы дорогой выделенный GPU.
Предварительные требования
- Оборудование: нужен Mac с Apple Silicon (M1–M4). Intel Mac тоже работают, но заметно медленнее.
- RAM:
- 8GB: достаточно для небольших моделей (Mistral 7B, Llama 3 8B).
- 16GB+: комфортно для более крупных моделей и многозадачности.
- Место на диске: модели большие. Закладывайте примерно 10–20GB под полезную стартовую библиотеку.
1. Ollama - вариант «просто работает»
Скачать: ollama.com
Думайте об Ollama как о «Docker для LLM». Он оборачивает движок llama.cpp в нативный пакет для macOS, подтягивает модели по запросу и автоматически отправляет работу в Metal. Устанавливаете, запускаете одну команду — и уже общаетесь с моделью. Это самый простой путь, если вам просто нужен рабочий LLM и HTTP endpoint, в который можно направить свой код.
Пример рабочего процесса
# 1. Download and run Llama 3 (it auto-downloads if needed)
ollama run llama3
# 2. Use it in your code via the local API
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "Explain quantum computing to a 5-year-old",
"stream": false
}'
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
Самая простая установка (drag-and-drop .dmg) |
Основное приложение имеет закрытый исходный код |
Чистый CLI (ollama list, ollama pull) |
Меньше тонкого контроля над параметрами генерации |
| Большая библиотека предварительно настроенных моделей |
2. LM Studio - визуальный обозреватель
Скачать: lmstudio.ai
LM Studio — это GUI-first вариант. У него есть браузер в стиле App Store для поиска моделей прямо на HuggingFace, поддержка формата Apple MLX наряду с GGUF (на некоторых Mac это может быть быстрее), а также локальный сервер, совместимый с OpenAI. Поэтому существующий клиентский код, который уже работает с OpenAI, в основном продолжит работать без изменений.
Пример рабочего процесса
Можно использовать официальный Python SDK или любой OpenAI-compatible client, направленный на локальный сервер:
# Using the official LM Studio SDK
from lmstudio import LMStudio
client = LMStudio()
response = client.complete(
model="llama-3-8b",
prompt="Write a haiku about debugging."
)
print(response.content)
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Отполированный и удобный интерфейс | GUI имеет закрытый исходный код |
| Нативная поддержка моделей GGUF и MLX | Большой размер загрузки (~750MB) |
| Встроенный RAG (чат с вашими PDF) |
3. llama.cpp - инструмент для опытных пользователей
Репозиторий: github.com/ggml-org/llama.cpp
Это движок, который оборачивает почти каждый другой инструмент. Если вам нужна максимальная производительность, новейшие возможности в день выхода или встраивание LLM в собственное C++-приложение, начинать нужно отсюда. Это bare-metal и лёгкий инструмент, но цена такая: всем управляете сами — загрузками, форматами и десятками CLI-флагов.
Пример рабочего процесса
# 1. Install via Homebrew
brew install llama.cpp
# 2. Download a model manually (e.g., from HuggingFace)
huggingface-cli download TheBloke/Llama-3-8B-Instruct-GGUF --local-dir .
# 3. Run inference with full control
llama-cli -m llama-3-8b-instruct.Q4_K_M.gguf \
-p "Write a python script to sort a list" \
-n 512 \
--temp 0.7 \
--ctx-size 4096
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Полный контроль над каждым параметром | Крутая кривая обучения (только CLI) |
| Лицензия MIT (open source) | Ручное управление моделями |
| Очень лёгкий (<30MB) |
4. GPT4All - приватность и RAG в первую очередь
Скачать: gpt4all.io
GPT4All построен вокруг двух идей: приватность и документы. Его ключевая функция, LocalDocs, позволяет указать приложению папку с PDF, заметками или кодом и общаться напрямую с её содержимым. Всё работает офлайн, без telemetry. Это самый простой способ получить рабочий RAG на своей машине без написания кода.
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| LocalDocs RAG хорошо работает из коробки | Только GUI (без headless mode) |
| Полностью офлайн и приватно | Более тяжёлое потребление ресурсов, чем у Ollama |
| Кроссплатформенность (Mac, Windows, Linux) |
5. KoboldCPP - для сторителлеров
Репозиторий: github.com/LostRuins/koboldcpp
Форк llama.cpp, ориентированный на творческое письмо и настольные RPG-сценарии. Работает как локальное веб-приложение с инструментами для длинной генерации: «World Info», память персонажей и хаки для согласованности сюжета, которые пытаются удерживать модель в рамках на протяжении тысяч токенов. Целевая аудитория — писатели и пользователи текстовых RPG; если вам в основном нужен чат или кодинг, стандартный интерфейс покажется тесным.
Пример рабочего процесса
# 1. Download the single binary
wget https://github.com/LostRuins/koboldcpp/releases/latest/download/koboldcpp-mac.zip
# 2. Run it (launches a web server)
./koboldcpp --model llama-3-8b.gguf --port 5001 --smartcontext
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Сильные инструменты для творческого письма | Нишевый UI (не лучший вариант для coding/chat) |
| Один исполняемый файл (без установки) | Лицензия AGPL (ограничивает коммерческое использование) |
Отдельное упоминание: MLX-LM
Если вы Python-разработчик на Apple Silicon, посмотрите на MLX-LM от Apple. Это framework, настроенный под чипы серии M, и на подходящем железе это часто самый быстрый способ запускать модель локально. Компромисс в том, что здесь меньше «ведения за руку», чем в Ollama: больше Python, меньше защитных ограничений.
Итог: какой инструмент подходит именно вам?
Короткое дерево решений:
Таблица быстрого сравнения
| Tool | Interface | Difficulty | Best feature |
|---|---|---|---|
| Ollama | CLI / Menu Bar | ⭐ (Easy) | «Просто работает» |
| LM Studio | GUI | ⭐ (Easy) | Поиск моделей и UI |
| GPT4All | GUI | ⭐ (Easy) | Чат с локальными документами (RAG) |
| KoboldCPP | Web UI | ⭐⭐ (Medium) | Инструменты для творческого письма |
| llama.cpp | CLI | ⭐⭐⭐ (Hard) | Сырая производительность и контроль |
Что реально выбрать
- Начните с Ollama, если вам просто нужно что-то запустить уже сегодня.
- Выбирайте LM Studio, если вам удобнее сначала визуально просматривать модели.
- Переходите на llama.cpp, когда нужен полный контроль над inference.