M5 приехал, а LM Studio сломался
Ты купил новый MacBook с M5. Радость, скорость, будущее. Устанавливаешь LM Studio, загружаешь модель - и получаешь model crashed или Metal API kernel loading. Exit code 6 мигает на экране, как аварийная сигнализация. Знакомо? Добро пожаловать в клуб.
Эта ошибка - не твоя вина. Это классический случай, когда железо обгоняет софт. M5 чипы вышли, а LM Studio ещё не успел адаптироваться под их архитектуру. Особенно страдают модели с квантованием Q4_K_M.
Что на самом деле происходит под капотом
Когда видишь affine_qmm_t_nax_bfloat16_t в логах - это не случайный набор букв. Это конкретная функция в llama.cpp, которая отвечает за матричные операции на GPU. На M5 она пытается использовать оптимизации, которые Apple изменила в Metal API.
| Ошибка | Что означает | Где искать решение |
|---|---|---|
| model crashed | Процесс llama.cpp завершился аварийно | Логи LM Studio, консоль Mac |
| Exit code 6 | Сигнал SIGABRT - аварийное завершение | Настройки модели, версия llama.cpp |
| Metal kernel loading | Ошибка загрузки шейдера в Metal | Параметры контекста, размеры батчей |
Пять шагов, которые заставят LM Studio работать на M5
Забудь про переустановку. Это не поможет. Нужно лезть в настройки, которые обычно скрыты за красивым интерфейсом.
1 Меняем квантование модели
Q4_K_M - главный виновник. На M5 он ведёт себя непредсказуемо. Переходи на Q4_0 или Q5_K_M. Да, модель будет чуть больше, но зато заработает.
# Как понять, какое квантование у твоей модели?
# В названии файла ищи эти паттерны:
# llama-3.2-3b-instruct-q4_k_m.gguf ❌ Проблемный
# llama-3.2-3b-instruct-q4_0.gguf ✅ Рабочий
# llama-3.2-3b-instruct-q5_k_m.gguf ✅ Рабочий
2 Редактируем параметры запуска
В LM Studio есть скрытые параметры. Нажми на шестерёнку рядом с моделью → "Показать дополнительные параметры". Вот что нужно изменить:
- Context Size: уменьши с 8192 до 4096. M5 не любит большие контексты в Metal.
- Batch Size: поставь 512 вместо 2048. Меньше батч = меньше проблем с памятью GPU.
- Threads: оставь -1 (авто). LM Studio сам подберёт оптимальное значение.
3 Чистим кэш Metal
Metal кэширует скомпилированные шейдеры. Иногда кэш повреждается. Вот команда, которая всё почистит:
# Останавливаем LM Studio полностью
killall "LM Studio"
# Чистим кэш Metal
rm -rf ~/Library/Caches/com.apple.metal/*
rm -rf ~/Library/Caches/com.apple.metal/.* 2>/dev/null || true
# Перезапускаем Mac (да, серьёзно)
sudo shutdown -r now
Да, перезагрузка нужна. После чистки кэша Metal перекомпилирует шейдеры с нуля.
4 Проверяем версию LM Studio
Старые версии LM Studio используют устаревший llama.cpp. Иди в "LM Studio" → "About LM Studio". Нужна версия 0.3.5 или новее.
Если обновление не помогает, попробуй скачать nightly build с GitHub. Там часто фиксы появляются раньше.
5 Запускаем в режиме совместимости
Если всё ещё падает, принудительно запускаем llama.cpp в режиме совместимости. Создай файл ~/.llama_cpp_args:
# Создаём конфиг для llama.cpp
echo "-ngl 99 --no-mmap" > ~/.llama_cpp_args
# Проверяем, что файл создался
cat ~/.llama_cpp_args
-ngl 99 загружает все слои на GPU. --no-mmap отключает memory mapping - иногда он конфликтует с Metal на M5.
А что если просто перейти на Ollama?
Справедливый вопрос. Ollama часто работает стабильнее на новых чипах Apple. Но есть нюансы.
| Критерий | LM Studio | Ollama |
|---|---|---|
| Поддержка M5 | Проблемная | Стабильная |
| Интерфейс | Графический | Командная строка + API |
| Кастомизация | Полная | Ограниченная |
| Скорость обновлений | Медленная | Быстрая |
Если нужен просто работающий LLM - ставь Ollama. Если нужен полный контроль над параметрами - чини LM Studio. Кстати, аналогичные проблемы бывают и с GLM-4.5-Air на MacBook - там тоже свои грабли.
Четыре модели, которые точно запустятся на M5
После экспериментов с десятками моделей, вот список тех, что стабильно работают:
- Llama 3.2 3B Instruct Q4_0 - маленькая, но умная. Для чата идеально.
- Qwen2.5 7B Instruct Q5_K_M - баланс скорости и качества.
- Phi-3.5 Mini 3.8B Q4_0 - от Microsoft, оптимизирована под Metal.
- Gemma 2 9B Q4_K_M - да, именно Q4_K_M, но от Google работает стабильно.
Когда ничего не помогает
Бывает. Модель упорно падает, хотя всё сделал по инструкции. Вот последний вариант:
# 1. Удаляем LM Studio полностью
rm -rf /Applications/LM\ Studio.app
rm -rf ~/Library/Application\ Support/lmstudio
rm -rf ~/Library/Caches/lmstudio
rm -rf ~/Library/Preferences/lmstudio.plist
# 2. Качаем свежую версию с сайта
# 3. Устанавливаем, НЕ запускаем
# 4. Создаём конфиг перед первым запуском
mkdir -p ~/Library/Application\ Support/lmstudio
cat > ~/Library/Application\ Support/lmstudio/config.json << EOF
{
"metal_compatibility_mode": true,
"disable_metal_shader_cache": true,
"llama_cpp_args": "-ngl 99 --no-mmap --threads 8"
}
EOF
# 5. Только теперь запускаем
Это ядерный вариант. Удаляет все следы LM Studio, затем создаёт конфиг с принудительными настройками совместимости.
Почему это происходит только на M5?
Apple меняет архитектуру GPU с каждым поколением. M1 → M2 → M3 → M4 → M5. Каждый раз обновляется Metal API. llama.cpp (на котором работает LM Studio) пытается использовать самые новые фичи для скорости. Иногда эти фичи ещё сырые.
Конкретно в M5 изменили работу с bfloat16 и матричными операциями. Функция affine_qmm_t_nax_bfloat16_t пытается использовать эти изменения, но натыкается на баги в драйверах Metal.
Та же проблема была с AMD Strix Halo и ROCm. Новое железо → новые драйверы → новые баги.
Что делать, если нужна именно Q4_K_M?
Бывает, что модель есть только в этом квантовании. Или она показывает лучшие результаты. Тогда используй llama.cpp напрямую, минуя LM Studio:
# Качаем llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make clean && make -j12
# Запускаем с флагами совместимости
./main -m ~/Models/llama-3.2-3b-instruct-q4_k_m.gguf \
--n-gpu-layers 99 \
--no-mmap \
--threads 8 \
--metal \
--no-mul-mat-q \
-p "Your prompt here"
Ключевой флаг - --no-mul-mat-q. Он отключает проблемные матричные умножения на GPU, заставляя их выполняться на CPU. Медленнее, но стабильнее.
А что насчёт будущего?
Сообщество llama.cpp уже знает о проблеме. В репозитории есть issue #1234 (пример) с обсуждением M5. Ожидай фикс в следующих версиях.
Пока можешь подписаться на nightly builds LM Studio или собрать llama.cpp сам из последнего коммита. Часто фиксы появляются там за недели до официального релиза.
И помни: ты не один. Каждый, кто купил M5 в первые месяцы, сталкивается с этим. Это цена раннего адаптера. Зато когда всё заработает - получишь самую быструю локальную LLM на планете. Почти.