Игорь Градов
Игорь Градов
6 мин
ai

Разработчик показал, как локально запустить нейросеть на MacBook с 24 ГБ без облака

Разработчик за полгода собрал голосового помощника для macOS, который сам открывает папки, ищет файлы и читает почту, и дообучил для него большую модель на ноутбуке с 24 ГБ памяти, без облака и подписок.

Разработчик показал, как локально запустить нейросеть на MacBook с 24 ГБ без облака
Почему это важно

Автор прошёл весь путь от схемы до дообучения на обычном MacBook. Лучший результат дала не тренировка с нуля, а ремонтный проход длиной около 70 минут.

Помощник не просто отвечает, а выполняет действия: открывает папки, ищет файлы, включает фильмы, читает почту. Главное условие автор поставил себе сам: языковая модель работает на том же Mac. Его опыт пригодится всем, кто ищет, как локально запустить нейросеть и поручить ей настоящие дела, а не только разговор.

Что понадобится для сборки?

  • MacBook на Apple Silicon с 24 ГБ общей памяти, которую делят процессор и видеочип.
  • Electron, оболочка для настольных приложений, в которой живёт окно помощника.
  • Python для «слуха». Он запускает VAD, детектор речи, который замечает, что человек заговорил, и Whisper, нейросеть распознавания речи. Whisper нужен в сборке под MLX, библиотеку для чипов Apple.
  • llama.cpp с сервером llama-server, программа для запуска языковых моделей на своём компьютере.
  • Модель Gemma 4 26B A4B. В ней 26 млрд параметров, то есть внутренних настроек, из которых состоит модель. Её берут в 4-битной квантизации: веса сжимают, чтобы модель влезла в память, примерно как фото сжимают в архив.
  • Qwen-TTS для синтеза речи по эталонной записи голоса.
  • Небольшой помощник на Swift, языке программирования Apple. Он отвечает за звук, микрофон и эхо.
  • Время. Один проход обучения длится около трёх часов, поэтому автор учит модель ночью.

Как собрать помощника по шагам?

  1. Разделите систему на процессы. Слух, мозг, голос и системный помощник работают отдельно и обмениваются с окном сообщениями. Если процесс падает, сторож перезапускает его: голос, например, поднимается заново примерно за 7 секунд.
  2. Научите модель выбирать действие, а не писать ответ. По сути это ИИ-агент, то есть программа, которая сама выполняет действия. На каждую реплику модель возвращает один шаг в фиксированном формате с полями think (рассуждение), tool (инструмент: папки, поиск файлов, видео, почта, браузер, заметки), args (параметры), say (фраза вслух) и next (нужен ли следующий шаг).
  3. Защитите файлы. Всё, что меняет или удаляет файлы, выполняется только после голосового подтверждения.
  4. Замерьте модель без дообучения. Автор давал Gemma системный промпт, скрытую инструкцию перед диалогом, примерно на 5 тысяч токенов. Токен здесь означает кусочек слова, которым считает модель. Результат: 89% верных шагов при медиане 1,94 секунды на ответ, но с системными ошибками. Модель путала «поставь» фильм и музыку, забывала параметры и переспрашивала там, где всё ясно.
  5. Соберите стенд до обучения. Это набор фраз с правильными шагами, на котором модель никогда не учится. У автора в нём 766 разговоров, файл заморожен, и любые две версии сравниваются только на нём.
  6. Дообучите насадку. LoRA работает как небольшая насадка поверх модели: она меняет поведение, не переписывая все веса. QLoRA делает то же самое на сжатой модели. Автор обучает через mlx-lm, и цель простая: перенести правила из промпта в веса и обойтись коротким промптом.
  7. Уложитесь в память. Gemma 4 26B устроена как MoE, «смесь экспертов»: на каждом шаге работают около 4 млрд параметров из 26. Пример должен быть не длиннее примерно 1400 токенов, иначе Metal, графическая система Mac, падает от нехватки памяти. Длинные примеры заранее отсекает отдельный скрипт.
  8. Не давайте Mac уснуть и продолжайте с последней точки. Вся цепочка (обучение, перевод в GGUF, проверка на стенде) идёт под одной командой caffeinate, которая не даёт Mac уснуть. После срыва обучение продолжают с последней сохранённой точки:
caffeinate -i -s <скрипт всей цепочки>
--resume-adapter-file
  1. Переведите насадку в GGUF, формат файлов для llama.cpp. Для этого автор завёл отдельное окружение с torch, библиотекой для нейросетей. Под Gemma 4 ему понадобились ещё две небольшие правки в mlx-lm.
  2. Настройте слух. Команды выполняются только после имени помощника, а фильм приглушается уже по началу речи. Если голос громче «плавающего пола», то есть медленного среднего уровня громкости без речи, на 6 дБ и это не эхо самого помощника, звук стихает. Если за 2,5 секунды имя не прозвучало, громкость возвращается.
Как это сработало на практике

В версию v4 автор добавил новые разделы: вопросы к документам, чертежи, английский язык, цепочки команд. На них модель выросла, а на старых командах просела: «включи фильм» запускало музыку, «найди фильм» теряло тип поиска, «свою папку» путалось с папкой заметок.

Автор собрал 416 примеров ровно на эти случаи и добавил к ним случайную выборку старых и новых данных, всего около 1100. Затем он доучил v4 ещё примерно на 1000 шагов. Шаг обучения, то есть то, насколько сильно модель меняется за раз, он снизил с 3e-5 до 1,5e-5 и отключил валидацию. Ушло около 70 минут, и получился лучший результат за всё время.

Частые ошибки
  • Проверка по отдельным репликам. У автора из такой проверки выпадало больше 400 примеров с цепочками, и картина получалась слишком радужной.
  • Обучение на ошибках стенда с проверкой на нём же. Оценка завышается. Нужен свежий набор, которого не видели ни модель, ни автор примеров.
  • Шаги цепочки по отдельности. Однажды Mac уснул после обучения, и проверка растянулась на шесть часов.
  • Тяжёлые соседи по памяти. Браузер и индексация Spotlight, поиска по Mac, раздували подкачку на диск до 6 или 7 ГБ. Срывы совпадали с валидацией, которая шла каждые 200 или 400 шагов.
  • Правка сценария команд на ходу. Bash читает файл по мере выполнения, и правка уронила цепочку на строке, которой при запуске ещё не было.
  • Обучение с нуля. Модель забывает старое, ремонтный проход надёжнее.

Что делать с этим прямо сейчас, по ролям

Автору Дзена. Возьмите идею стенда: соберите 20 или 30 своих типовых запросов к нейросети и проверяйте на них каждый новый промпт. Так вы увидите, что правка улучшила, а что сломала.

Маркетологу. Фиксированный формат ответа (действие, параметры, фраза) подходит для любой автоматизации, где нейросеть должна выдавать решение, а не текст. Автор подключает и внешние модели, ChatGPT, Claude, Gemini, в том же формате. В этом режиме локальный сервер останавливается и освобождает около 13 ГБ памяти.

Предпринимателю в РФ и СНГ. Локальная модель не зависит от облака и подписок, но потребует Mac на Apple Silicon с 24 ГБ и человека, который пишет код. Если собирать своё пока рано, из доступных в РФ облачных аналогов есть YandexGPT и GigaChat.

Совет редакции dzen.guru

На мой взгляд, главная ценность разбора не в выборе модели, а в стенде и ремонтном проходе. Сам автор называет стенд главным, что он сделал, и я с ним согласен: без замороженной проверки любое дообучение превращается в гадание. Честная оговорка: это проект для тех, кто пишет код, 24 ГБ памяти хватает впритык, а итоговую точность дообученной версии автор в описанной части не называет. Начните с малого: сначала стенд и промпт, насадка потом.

Освойте нейросети на практике

Разбираем, как применять ИИ в работе автора и бизнеса, без лишней теории.

Перейти на dzen.guru
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

ИИ-агент Claude на VPS банит сам себя в 7 прогонах из 60, отрезая доступ владельцу
ai

ИИ-агент Claude на VPS банит сам себя в 7 прогонах из 60, отрезая доступ владельцу

Автор открытого навыка vps-forge провёл 120 прогонов Claude Opus 5.5 на виртуальных серверах и показал, что без подсказок агент банит сам себя в 7 прогонах из…

4 мин
Дашборд Битрикс24 за 20 минут: ИИ-агент собирает загрузку отдела без разработчиков
ai

Дашборд Битрикс24 за 20 минут: ИИ-агент собирает загрузку отдела без разработчиков

Руководитель отдела в Битрикс24 теперь может за 20 минут собрать экран загрузки команды через ИИ-агента Коворк/Код, не заводя заявку на разработку и не собирая…

4 мин
ИИ за два года из помощника аналитика стал инструментом тимлида: протоколы без лотереи
ai

ИИ за два года из помощника аналитика стал инструментом тимлида: протоколы без лотереи

Даниил Иванов, руководитель группы аналитики КОРУСа, спустя два года после первых опытов с ChatGPT показал, как библиотека промптов превращает протокол встречи…

5 мин