Ollama, LM Studio, llama.cpp и MLX-LM на macOS: сравнение
Автоматический перевод
Эта статья была автоматически переведена с оригинальной английской версии.
Используйте Ollama для локального сервиса моделей или LM Studio для выбора моделей и работы в настольном интерфейсе. Используйте llama.cpp для прямого управления рантаймом. Используйте MLX-LM для генерации на Python или файн-тюнинга на Apple Silicon. И Ollama, и LM Studio предоставляют API и работу без графического интерфейса. Выбирайте по тому, как вы загружаете модели, вызываете их и проверяете производительность.
Для приложения, которому нужен локальный эндпоинт, сначала протестируйте Ollama или LM Studio. Переходите к llama.cpp или MLX-LM, когда существующий сервис не предоставляет настройки, необходимые для вашей задачи.
Записывайте модель, рантайм, настройки генерации и конфигурацию сети, чтобы можно было воспроизвести конфигурацию.
Таблица рекомендаций
| Инструмент | Основная задача | Используйте, когда | Основной компромисс |
|---|---|---|---|
| Ollama | Управляемый локальный сервис и жизненный цикл моделей | Нужно быстро получить небольшой эндпоинт, которым можно управлять из скриптов | Меньше низкоуровневого контроля, чем в llama.cpp. |
| LM Studio | Поиск моделей, SDK, демон и рабочие процессы с локальным сервером | Нужна единая среда разработки с графическим интерфейсом и без него | Абстракция по-прежнему скрывает часть деталей рантайма. |
| llama.cpp | Инференс GGUF, квантизация, флаги сервера и управление Metal | Нужен контроль над контекстом, батчем, квантизацией и поведением рантайма | Больше настроек и больше флагов. |
| MLX-LM | Генерация и файн-тюнинг с нативной поддержкой Apple Silicon | Нужны эксперименты на уровне Python на Mac с чипом серии M | Экосистема сервинга меньше, чем у Ollama или llama.cpp. |
Что установить в первую очередь?
Начните с Ollama, если хотите управлять моделью через локальный сервис, к которому может обращаться ваше приложение. Протестируйте API с промптами и форматами ответов, необходимыми приложению.
Сначала установите LM Studio, если хотите выбирать и сравнивать модели в настольном приложении. Его инструменты для разработчиков включают SDK для Python и TypeScript, локальные API, structured output и демон без графического интерфейса. Проверьте поддержку tool use у выбранной модели.
Сначала установите llama.cpp, если нужно напрямую задавать длину контекста, размер батча, квантизацию или параметры Metal. Его CLI и сервер предоставляют эти настройки без отдельного сервиса управления моделями.
Используйте MLX-LM, когда задача выходит за рамки сервинга чат-модели. Он подходит для нативных экспериментов с моделями на Apple Silicon, конвертации, файн-тюнинга и рабочих процессов на Python, где объединённая память является частью дизайна.
Матрица рабочих процессов
| Рабочий процесс | Вариант по умолчанию | Почему |
|---|---|---|
| Локальный API для приложения | Ollama | Удобство разработки и широкая поддержка интеграций. |
| Ручное сравнение моделей | LM Studio | GUI ускоряет сравнение промптов и моделей. |
| Отладка производительности | llama.cpp | Можно видеть параметры рантайма и управлять ими. |
| Сервинг квантизированной GGUF-модели | llama.cpp или Ollama | Используйте llama.cpp для контроля, Ollama — для удобства. |
| Эксперименты с моделями на Apple Silicon | MLX-LM | Нативные инструменты для моделей на Mac с чипом серии M. |
| Демонстрация для нетехнических коллег | LM Studio | Модель легко показать и настроить интерактивно. |
| Воспроизводимая инженерная конфигурация | CLI/API любого инструмента с зафиксированными моделями | Записывайте модель, настройки рантайма и генерации, чтобы скрипт мог повторить запуск. |
Особенности оборудования
Доступная объединённая память ограничивает модель, контекст и число запросов, которые может выполнять Mac на Apple Silicon. Модель, которая помещается на MacBook Pro с 64 ГБ, может оказаться непригодной для использования на MacBook Air с 8 ГБ. Квантизация уменьшает память для весов, а более длинные промпты увеличивают память для кэша аттеншна. Проводите бенчмарки с реальной длиной промпта и одновременными запросами.
Сначала протестируйте меньшую модель, которая помещается в память без интенсивного использования подкачки, прежде чем тестировать большую модель, исчерпывающую память. Для программирования проверяйте работу с контекстом и интеграцию с инструментами на реальных задачах. Для ответов на вопросы по документам проверяйте, предоставляет ли retrieval нужные доказательства, прежде чем менять модель.
Как сохранить инференс локальным
Явно выбирайте локальную модель и бэкенд. API на localhost всё равно может перенаправить запрос в облачную модель или внешнюю интеграцию. FAQ Ollama описывает режим только локального использования (OLLAMA_NO_CLOUD=1) и привязку по умолчанию к loopback-интерфейсу. Оставляйте сервер доступным только с вашей машины, если намеренно не настраиваете безопасный доступ для других клиентов.
LM Studio может запускать скачанные модели офлайн; для поиска и скачивания моделей требуется сетевой доступ. Проверяйте облачные функции, плагины, телеметрию и вызывающее приложение, а также сервер моделей. Скачивание модели и отправка приватного промпта — разные сетевые операции.
Чего не следует делать
Начните с Ollama или LM Studio и проверьте, подходит ли локальный инференс для задачи. Используйте llama.cpp или MLX-LM, когда нужны настройки, которые сервис не предоставляет. Проводите более широкие бенчмарки, когда производительность влияет на требования к продукту.
Не сравнивайте модели только в чат-интерфейсе, если реальная нагрузка — это структурированное извлечение, редактирование кода или синтез ответов в RAG. Напишите небольшой эвал-скрипт с репрезентативными промптами.
Дополнительные материалы
- Локальные LLM на macOS — практическое руководство по настройке.
- Варианты LLM с открытыми весами — объяснение GGUF, GPTQ, AWQ, базовых моделей и instruct-моделей.
- Настройка MacBook для AI-инжиниринга — более подробное руководство по настройке рабочей станции.