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

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

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

Лучшие локальные инструменты LLM для macOS

Инструменты для локальной работы с LLM на macOS делятся на четыре задачи: простой serving, исследование через GUI, низкоуровневый контроль inference и нативные для Apple Silicon эксперименты. Один инструмент не обязан закрывать все четыре.

Мой вариант по умолчанию: используйте Ollama для локального API. Используйте LM Studio для изучения моделей. Используйте llama.cpp, когда нужен контроль runtime для GGUF. Используйте MLX, когда нужна нативная для Apple Silicon работа в Python ближе к самой модели.

Таблица рекомендаций

Tool Best at Use when Main trade-off
Ollama Простой локальный сервер моделей и управление жизненным циклом моделей Вам нужен локальный endpoint как можно быстрее Меньше низкоуровневого контроля, чем в llama.cpp.
LM Studio GUI-чат, поиск моделей и локальные server workflow Вы хотите сравнивать модели без написания glue code Абстракция desktop скрывает детали runtime.
llama.cpp GGUF inference, quantization, server flags, управление Metal Нужен контроль над context, batch, quantization и поведением runtime Больше настройки и больше флагов.
MLX Нативные для Apple Silicon массивы и workflow для моделей Нужны эксперименты на уровне Python на Mac с M-series Экосистема serving меньше, чем у Ollama или llama.cpp.

Что установить первым?

Сначала установите Ollama, если вы разрабатываете софт. Многие приложения уже умеют с ним работать, а локального API достаточно для прототипов, тестов и небольших внутренних инструментов. Это самый короткий путь от «мне нужна локальная модель» к «моё приложение может вызывать локальную модель».

Сначала установите LM Studio, если вы выбираете модель. Он хорошо подходит для просмотра моделей, изменения настроек, сравнения выходов и запуска локального OpenAI-compatible сервера без необходимости самостоятельно проектировать workflow.

Сначала установите llama.cpp, если вам важна механика inference. Длину контекста, quantization, флаги Metal, обработку prompt, размеры batch и поведение сервера проще анализировать, когда вы ближе к runtime.

Используйте MLX, когда задача не сводится только к serving чат-модели. Он подходит для нативных для Apple Silicon экспериментов с моделями, конвертации, fine-tuning и Python workflow, где unified memory — часть архитектуры.

Матрица workflow

Workflow Default Why
Локальный API для приложения Ollama Стабильный developer experience и широкая поддержка интеграций.
Ручное сравнение моделей LM Studio GUI ускоряет сравнение prompt и моделей.
Отладка производительности llama.cpp Вы видите и контролируете runtime-параметры.
Serving квантованных GGUF-моделей llama.cpp or Ollama llama.cpp — для контроля, Ollama — для удобства.
Эксперименты с моделями на Apple Silicon MLX Нативный framework массивов и инструменты для моделей на Mac с M-series.
Демо для нетехнических стейкхолдеров LM Studio Легко показать и интерактивно настроить.
Воспроизводимая инженерная конфигурация Ollama plus a pinned model list Проще автоматизировать, чем workflow только через GUI.

Заметки по железу

Unified memory — это реальное ограничение на Apple Silicon. Модель, которая помещается на MacBook Pro с 64 GB, может быть практически непригодной на MacBook Air с 8 GB. Quantization помогает, но длина контекста может незаметно стать главным потребителем памяти. Бенчмарьте реальную форму prompt, а не ориентируйтесь только на имя модели.

Для небольших локальных инструментов модель класса 7B или 8B часто полезнее, чем перегруженная более крупная модель. Для задач кодинга длинный контекст и интеграция с инструментами могут быть важнее, чем сырое место в бенчмарках. Для document QA качество retrieval обычно важнее выбора локальной модели.

Чего не делать

Не превращайте настройку локальных LLM в бесконечный benchmark-проект, если производительность не является продуктом. Начните с Ollama или LM Studio. Докажите, что локальный inference действительно помогает. Затем переходите к llama.cpp или MLX, когда появится конкретная причина.

Не сравнивайте модели только в чат-интерфейсе, если реальная нагрузка — это structured extraction, редактирование кода или синтез ответов для RAG. Напишите небольшой eval script с репрезентативными prompt.

Что почитать глубже

Ссылки