M4 Pro Mac mini: локальные LLM вместо облачных API — мой стек и настройка

My local model setup on an M4 Pro Mac Mini

M4 Pro Mac mini: локальные LLM вместо облачных API — мой стек и настройка

Автор делится опытом запуска локального LLM-сервера на M4 Pro Mac mini с 48 ГБ RAM. Он объясняет, почему предпочитает локальные модели облачным API: непредсказуемость цен, лимиты, проблемы с конфиденциальностью и «суверенитет ИИ». В статье разбирается стек: Qwen3.6-35B-A3B-OptiQ-4bit и Gemma-4-E4B-it-OptiQ-4bit под управлением oMLX, доступ через Tailscale. Также даются практические советы по выбору моделей с учётом RAM и объясняется разница между dense и MoE моделями.

Облачные API — это арендованная земля: они могут менять цены, урезать лимиты или незаметно подменять модель, когда им вздумается.
  1. bambax

    Хорошая настройка; но для простых задач или вопросов ИИ сейчас бесплатен? И, вероятно, останется бесплатным, так как я не вижу, чтобы Google начал брать плату за использование ИИ в своей поисковой системе? Так что затраты не могут быть мотивацией для запуска маленьких моделей локально?

    Для более сложных или важных задач важны затраты, автономность и конфиденциальность, но тогда также важны производительность и качество.

    Так что я не совсем убеждён, что это действительно стоит того; но это заманчиво!

  2. amanzi

    Ни слова о производительности моделей? Я могу загрузить кучу разных моделей на свой маленький мини-ПК с 16 ГБ ОЗУ, но производительность ужасная. Мне всегда интересно, какую производительность люди получают с локальными моделями, которую они считают приемлемой?

  3. c16

    > Запуск большой модели локально сводится к одному: сколько ОЗУ ей реально нужно в памяти.

    Не совсем так. Это память И пропускная способность памяти. У вас может быть 1 ТБ памяти, но если пропускная способность памяти ужасная, у вас также будет медленный tok/s. A3B помогает с этим, но и MTP тоже.

    Из моего опыта, вам лучше запускать плотную 27b-mlx с MTP, чем версию 3.6 с A3B. Вы говорите, что ваша модель занимает ~20 ГБ ОЗУ, но 3.8:27b-mlx занимает 18 ГБ и даёт мне очень приемлемые tok/s, и большую скорость, если отключить мышление, когда оно не требуется.

  4. akg_67

    Недавние данные о производительности на моём M1 Max 32GB MacBook с использованием oMLX. Я работал над выбором подходящей модели и конфигурации для моего случая использования и системы. Используя промпт для рефакторинга и предложения улучшений для конкретного блока кода Django с расширением VSCode Cline.

    ---

    Qwen3.8-27B-4bit, обработка промпта (PP) 66.3 ток/с, генерация токенов (TG) 11.8 ток/с

    Ornith-1.5-35B-A3B-MLX-4bit, PP 379.7, TG 45.8

    Ornith-1.5-35B-A3B-MLX-4bit, PP 381.5, TG 46.4

    Qwen3.6-35B-A3B-mxfp4, PP 389.6, TG 47.6

    Qwen3.6-35B-A3B-OptiQ-4bit, PP 342.6, TG 44.4

    ---

    Qwen3.8-27B-4bit обычно заканчивается до завершения задачи, хотя даёт отличные частичные результаты.

    Ornith-1.5-35B-A3B-MLX-4bit, похоже, часто зацикливается, особенно с вызовами инструментов.

    Qwen3.6-35B-A3B-mxfp4, похоже, оптимален по скорости и качеству вывода.

    Я собираюсь скоро протестировать Qwen3.6-35B-A3B-4bit с тем же блоком кода, просто чтобы проверить мою интуицию, что любые производные не работают лучше оригиналов.

  5. stub_out

    Ох, M4 Pro. Мой старый M1 уже начинает показывать свой возраст, когда пытается запустить что-то больше 7B.

  6. thrw93747572007

    Здесь довольно много "локально не работает" - к сожалению, часто без подробностей о том, для чего люди на самом деле хотят использовать свои модели. А мне было бы любопытно.

    Лично я использую передовые модели в облаке для многих (мета-)когнитивных анализов, которые настолько тяжёлые, что я регулярно упираюсь в лимиты платных аккаунтов - так что я не лудит и не жадничаю с деньгами в этом случае.

    Однако у меня также довольно хороший опыт с локальными моделями. Мой надёжный, но не экстремальный десктоп (с одной RX 9070 XT 16GB) в основном обслуживает gemma4:12b и специализированные модели (для эмбеддингов) в моей локальной сети. Это для общего использования, такого как простые запросы, простой код, переформатирование и тому подобное, но также для двух конкретных задач, которые работают постоянно:

    а) Он подключён к Home Assistant (как второй этап после очень простых команд типа "включи свет XY", которые обрабатываются без LLM). Так что я могу бормотать в свои умные часы "компьютер, сколько у нас газа в варп-ядре и сколько энергии собрали коллекторы Бусарда из космической пыли сегодня?" (или описать более сложную световую сцену, или создать автоматизацию, которую я хочу, или что угодно).

    Телефон транскрибирует это - с локальной моделью на устройстве - и отправляет на десктоп, у которого есть агентный доступ к HA, он просматривает датчики и данные, видит, что я пометил свои солнечные панели и батарею техническим словарём. Он делает правильные выводы, конвертирует несколько единиц и выдаёт мне хороший обзор. Всё без рук, пока я [...]

  7. amelius

    > Основная причина запускать локально: облачные API - это арендованная земля. Они могут менять цены, упираться в ваши лимиты использования или менять модель, которая обслуживается за кулисами, когда им вздумается.

    Да, но их легко заменить.

    Основной причиной должна быть конфиденциальность.

  8. jumploops

    Моя самая большая проблема с запуском локальных LLM на моём M4 Max/128GB RAM - это задержка предварительного заполнения (prefill).

    С тех пор я приобрёл два DGX Spark, и ощущается гораздо более отзывчиво.

Ещё за этот день

2026-09-01