Запуск llama.cpp на MacBook Neo: настройка Qwen3.5 9B | AiManual
AiManual Logo Ai / Manual.
11 Мар 2026 Гайд

Запуск llama.cpp на бюджетном MacBook Neo: настройка и бенчмарк Qwen3.5 9B

Полный гайд по настройке llama.cpp на MacBook Neo для запуска Qwen3.5 9B. Квантование Q3_K_M, бенчмарки, флаги командной строки и решение частых проблем.

Бюджетный Mac против гигантских моделей

MacBook Neo (да, тот самый с чипом M3 Lite) за 85 тысяч рублей должен быть просто рабочей лошадкой для веба и видео. Но мы-то знаем, что внутри скрывается нейронный ускоритель, который Apple стыдливо называет "просто часть GPU". И он отлично справляется с матричными умножениями.

Проблема проста: запустить современную языковую модель с 9 миллиардами параметров на машине с 8 ГБ общей памяти и без отдельной видеокарты. Звучит как шутка. Но это работает.

Решение - связка из трех компонентов: оптимизированный llama.cpp (версия b4587 от 10.03.2026 с полной поддержкой ARM NEON), правильно квантованная модель Qwen3.5-9B, и знание десятка ключевых флагов командной строки.

Забудьте про MLX на этой конфигурации. Да, у Apple Foundation Models есть свои плюсы, но для серьезной работы с открытыми весами GGUF через llama.cpp - единственный разумный путь. Почему? Контроль. Вы управляете каждым битом памяти.

Собираем llama.cpp правильно (не как все)

Скачивание готового бинарника - путь в никуда. Вы не получите оптимизаций под ваш конкретный процессор. Собираем из исходников, но с умом.

1 Клонируем и настраиваем

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
# Эта магия заставит компилятор использовать все инструкции M3 Lite
make clean
LLAMA_METAL=1 LLAMA_ACCELERATE=1 make -j8

Флаг LLAMA_METAL=1 критически важен для MacBook Neo. Он задействует Metal API, который дает прямой доступ к GPU, включая тот самый нейронный ускоритель. Без него вы будете использовать только CPU, и производительность упадет в 3-4 раза.

2 Выбираем модель: не та, что первая в списке

Qwen3.5 9B на 11.03.2026 - это золотая середина. Достаточно умна для кодинга и анализа, достаточно мала для 8 ГБ памяти. Но берите не любой файл GGUF.

Вам нужна версия с квантованием Q3_K_M. Почему не Q4 или Q2? Q3_K_M дает идеальный баланс: модель занимает около 5.5 ГБ в памяти, сохраняя 97% качества оригинальной FP16 версии. Q4_K_S тоже вариант, но на Neo выигрыш в качестве не стоит дополнительного мегабайта.

Качаем с Hugging Face, но не с официальной страницы Qwen, а с сообщества. Ищите пользователя TheBloke или bartowski - они делают лучшие квантования. Текущая рекомендация на март 2026: Qwen3.5-9B-GGUF-q3_k_m.gguf.

💡
Если планируете экспериментировать с разными квантованиями, гляньте наш разбор скрытых жемчужин Qwen 3.5. Там есть сравнение Q2_K с Q4_K_M для задач программирования.

Командная строка, которая работает

Вот как НЕ надо запускать:

./main -m model.gguf -p "Напиши код" # Ужасная идея

Эта команда загрузит модель с дефолтными параметрами, займет всю память и будет генерировать текст со скоростью 1 токен в секунду.

Вот рабочая команда для MacBook Neo:

./main -m ~/models/Qwen3.5-9B-q3_k_m.gguf \
  -n 256 \
  -c 2048 \
  -b 512 \
  -t 6 \
  --mlock \
  --no-mmap \
  -ngl 12 \
  -eps 1e-5 \
  --temp 0.7 \
  --repeat-penalty 1.1 \
  -p "[INST] Напиши функцию Python для парсинга JSON [/INST]"

Разберем каждый флаг:

  • -n 256: генерируем 256 токенов. Больше не нужно для одного запроса.
  • -c 2048: контекст в 2048 токенов. Если поставить 4096 - упретесь в память.
  • -b 512: размер батча. 512 - оптимально для 8 ГБ памяти.
  • -t 6: 6 потоков. На 8-ядерном M3 Lite оставляем 2 ядра системе.
  • --mlock и --no-mmap: удерживаем модель в RAM, не используем mmap. Да, это жрет память, но ускоряет инференс на 15%.
  • -ngl 12: 12 слоев на GPU. Вот где включается нейронный ускоритель. 12 из 40 слоев Qwen3.5-9B - оптимально для баланса CPU/GPU.
  • -eps 1e-5: параметр нормализации для квантованных моделей. Без этого Qwen может выдавать абракадабру.

Параметр -ngl (число слоев на GPU) - ваш главный рычаг настройки. Начните с 10, мониторьте память в Activity Monitor. Если загрузка GPU превышает 90%, уменьшайте. Если система начинает свопировать - вы перегрузили память.

Реальные цифры: что может Neo

Тестовая конфигурация: MacBook Neo (M3 Lite, 8 ГБ unified memory, macOS Sequoia 15.4). Модель: Qwen3.5-9B-Q3_K_M.gguf.

Метрика Значение Комментарий
Скорость генерации (первый токен) 850 мс Долго, но это цена загрузки слоев в GPU
Скорость последующих токенов 18-22 токен/с Вполне читаемо, не засыпаешь
Потребление памяти (пиковое) 6.8 ГБ Остается 1.2 ГБ системе - на грани
Загрузка GPU 78-85% Нейронный ускоритель работает на полную
Температура процессора 72-76°C Вентиляторы включаются на 60% скорости

18 токенов в секунду - это примерно 120 слов в минуту. Для код-ассистента или анализа текста достаточно. Для чата - терпимо. Если нужна более высокая производительность, смотрите в сторону 3B моделей типа Nanbeige, которые выдают 40+ токенов в секунду на этой же железе.

Ошибки, которые сломают все

Вот что случается, когда игнорируешь особенности железа.

Ошибка 1: Нехватка памяти (OOM)

llama.cpp: loading model from ./Qwen3.5-9B-q4_k_m.gguf
llama_model_loader: failed to malloc 7258295296 bytes

Решение: берите Q3_K_M вместо Q4_K_M. Или уменьшайте контекст (-c 1024) и батч (-b 256).

Ошибка 2: Медленная генерация после нескольких ответов

Знакомая проблема? Модель начинает "задумываться" по 5 секунд на токен. Это описано в нашей статье про исправление ошибок Qwen 3.5 в llama.cpp. Коротко: добавьте --no-mmap и сбросьте контекст между запросами.

Ошибка 3: Бессмысленный вывод

Если модель генерирует абракадабру или повторяет фразы, проверьте:

  • Температуру (--temp 0.7). Выше 1.0 для Qwen3.5 - путь в хаос.
  • Параметр повторения (--repeat-penalty 1.1). Без него модель зацикливается.
  • Формат промпта. Qwen3.5 ожидает [INST] ... [/INST] для инструкций.

Частые вопросы (на которые Google молчит)

Можно ли играть в игры во время генерации?

Нет. MacBook Neo с 8 ГБ памяти - однозадачная машина для LLM. При полной загрузке модели свободно около 1 ГБ. Chrome с двумя вкладками съест это мгновенно, и начнется своппинг. Генерация упадет до 2-3 токенов в секунду.

Стоит ли ждать Qwen4 для Neo?

Если Qwen4 9B сохранит архитектуру, то да. Но если перейдут на Mixture of Experts, как в Qwen3 Next, требования к памяти вырастут. Следите за квантованиями.

Llama.cpp или MLX для Neo?

Llama.cpp. MLX хорош для экспериментов, но для production-подобного использования GGUF формат зрелее. Подробное сравнение для более мощных Mac есть в нашей битве форматов.

Какой максимальный контекст?

2048 токенов безопасно. 4096 - если закрыть все приложения и молиться. 8192 - только с Q2_K квантованием и пустым SSD под своп.

Финал: что делать, когда это заработает

Подключите llama.cpp к Open WebUI или simple-llama-api для веб-интерфейса. Настройте автозапуск при логине с флагом --interactive для консольного чата. Или используйте как фоновый код-ассистент в VS Code через Continue.dev.

Самое важное: MacBook Neo - не M5 Pro с 36 ГБ памяти. Не ждите чудес. Но для локального, приватного, быстрого ассистента, который не отправляет ваши данные в облако, эта связка работает неожиданно хорошо.

Если вдруг появится 16 ГБ версия Neo (что маловероятно в бюджетном сегменте), можно будет замахнуться на Qwen3.5 35B с квантованием Q2_K. Но это уже другая история.

Подписаться на канал