Перейти к содержанию

Автоматический перевод

Эта статья была автоматически переведена с оригинальной английской версии.

Локальные 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

  1. Inference: запуск модели для генерации текста.
  2. Квантизация (GGUF): техника уменьшения размера модели с минимальной потерей качества. Вы будете видеть имена файлов вроде llama-3-8b-Q4_K_M.gguf. Часть Q4 означает 4-битную квантизацию, которая использует намного меньше RAM, чем полные 16-битные веса.
  3. 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 под полезную стартовую библиотеку.

Архитектура локальной LLM


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.