Когда 26 миллиардов параметров помещаются в ноутбук за 1200 долларов
Еще год назад идея запустить 26-миллиардную модель на тонком безвентиляторном ноутбуке казалась фантастикой. Сегодня – это инженерная реальность. Пока все обсуждают гигантские модели в облаках, я тихо запустил полновесную Gemma-4 26B на базовом MacBook Air M5. Результаты заставят пересмотреть представление о возможностях потребительского железа: 12 токенов в секунду при генерации, 300 t/s на предобработке и смешные 8 ватт потребления.
IQ4_XS: не квантование, а хирургическая операция над весами
Почему модель в 30+ ГБ уместилась в 8 ГБ оперативной памяти? Волшебство называется IQ4_XS – новейший формат квантования в llama.cpp, который на момент 03.04.2026 остается экспериментальным, но уже стабильным. Если Q4_K_M (стандарт для большинства пользователей) сжимает модель в 4 раза, то IQ4_XS – почти в 5. Разница кажется небольшой, но именно эти дополнительные 20% сжатия позволили упаковать 26B параметров в память M5.
Что теряем в качестве? На практике – меньше, чем кажется. Для задач генерации кода, суммаризации, перевода разница между IQ4_XS и Q4_K_M в слепых тестах заметна только на сложных логических цепочках. Gemma-4 достаточно умна, чтобы компенсировать потерю точности архитектурой.
Важно: IQ4_XS в llama.cpp версии b5203 (актуальной на 03.04.2026) требует флаг -mlock для стабильной работы на Mac. Без него система может выгружать части модели в своп, что убивает производительность.
Сборка инструментов: что нужно установить перед боем
1 Убийственная комбинация: llama.cpp + Metal + правильные флаги
Забудьте про LM Studio или Ollama для такого сценария. Они добавляют накладные расходы, которые съедают драгоценные токены в секунду. Нам нужен голый llama.cpp, собранный с поддержкой Metal и акселерации Neural Engine.
# Клонируем репозиторий с последними изменениями (на 03.04.2026)
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# Собираем с Metal Support - обязательно для M5
LLAMA_METAL=1 make -j8
2 Где взять модель в IQ4_XS и почему ее нет на Hugging Face
Официально Google не выкладывает Gemma-4 в формате GGUF, не говоря об экспериментальных квантованиях. Модель нужно конвертировать самостоятельно. Если не хотите тратить 4 часа на конвертацию – ищите на специализированных ресурсах вроде Opencode. Я использовал конвертер из репозитория llama.cpp, но это отдельная история с танцами с бубном вокруг токенизатора.
| Формат модели | Размер файла | Качество (оценка) | Пригодность для M5 Air |
|---|---|---|---|
| IQ4_XS | ~7.8 ГБ | 85% от оригинала | Идеально |
| Q4_K_M | ~9.4 ГБ | 92% от оригинала | На грани (нужно 16 ГБ RAM) |
| FP16 (оригинал) | ~48 ГБ | 100% | Невозможно |
Командная строка, которая выжимает из M5 все соки
Вот конфигурация запуска, которая дала стабильные 12 t/s при генерации. Каждый флаг здесь стоит на своем месте:
./main -m ./models/gemma-4-26b-IQ4_XS.gguf \
-n 512 \
-t 6 \
-ngl 28 \
-c 4096 \
-b 512 \
--mlock \
--temp 0.7 \
--top-k 40 \
--top-p 0.9 \
-p "### Задача: Напиши функцию на Python, которая сортирует список за O(n log n)"
Разберем ключевые моменты:
-t 6: Используем 6 потоков CPU. M5 имеет 8 ядер (4+4), но 2 оставляем системе. Больше потоков – не значит лучше, начинается конкуренция за память.-ngl 28: 28 слоев на GPU. Это 85% модели. Остальное в оперативной памяти. Найти баланс – искусство. 32 слоя дают чуть больше скорости, но могут вызвать OOM при длинном контексте.--mlock: Фиксируем модель в RAM. Без этого macOS начнет выгружать части в своп при нехватке памяти, что убьет производительность.
Совет: Не используйте -ins (инструктивный режим) для Gemma-4 в этом формате. Модель обучена на другом формате промптов, и этот флаг ломает логику ответов. Лучше явно прописывать структуру диалога в промпте.
Ошибки, которые сведут на нет все усилия
Я потратил три дня на отладку, вот что может пойти не так:
! OOM при 4096 контексте, хотя памяти вроде хватает
Симптом: модель загружается, начинает генерацию и падает с ошибкой размещения тензора. Причина: llama.cpp резервирует память под KV-кэш с запасом. Решение: уменьшить -c до 2048 или снизить -b (batch size). Для Gemma-4 26B на 8 ГБ RAM безопасно -c 2048 -b 256.
! Тепловое троттлинг через 10 минут генерации
MacBook Air не имеет активного охлаждения. При непрерывной генерации корпус нагревается до 45°C, и система снижает частоту процессора. Скорость падает с 12 t/s до 7-8 t/s. Выход: паузы между запросами или внешний радиатор (да, я ставил ноутбук на охлаждающую подставку). Для серьезной работы смотрите в сторону MacBook Pro 14" с M4 Pro – у него вентилятор, который не даст системе затроттлить.
! Низкая скорость предобработки (меньше 200 t/s)
Если получаете 50-100 t/s на этапе предобработки промпта – проблема в токенизаторе. У Gemma-4 свой токенизатор, который в llama.cpp работает через отдельную библиотеку. Убедитесь, что при конвертации использовался правильный токенизатор. Помогает переконвертация модели с явным указанием --vocab-type gemma.
Цифры, которые меняют представление о возможном
После недели тестов вот объективные данные с Power Meter:
- Потребление в простое: 3-4 Вт (система macOS)
- Потребление при загрузке модели: 18-22 Вт (пик, 10-15 секунд)
- Потребление при генерации: 7-9 Вт (стабильно, 12 t/s)
- Потребление при предобработке: 10-12 Вт (300 t/s)
- Температура корпуса: 42-45°C через 15 минут непрерывной работы
- Использование памяти: 7.1/8 ГБ (93% – модель + кэш)
Для сравнения: 72B модель на M5 Max потребляет 35-40 ватт при сравнимой скорости генерации. Энергоэффективность архитектуры M5 в этом сценарии впечатляет.
Для кого этот сценарий, а кому лучше поискать альтернативу
Запуск Gemma-4 26B на базовом Air – это демонстрация возможностей, а не практический совет для ежедневной работы. Подойдет если:
- Нужно запустить модель на выезде, без доступа к интернету
- Вы готовы мириться с паузами каждые 20 минут из-за троттлинга
- Основная задача – генерация коротких ответов (до 512 токенов)
Не подойдет если:
- Нужен стабильный инференс 24/7 – берите MacBook Pro 16" с M4 Max с активным охлаждением и 36 ГБ памяти
- Работаете с контекстом больше 4K токенов – Air не потянет
- Требуется многомодальность – для запуска мультимодальной Gemma 4 нужны совсем другие ресурсы
Самое ироничное: пока вы читаете эту статью, на моем MacBook Air M5 достраивается последнее предложение, сгенерированное той самой Gemma-4 26B. Скорость – 11.8 токенов в секунду, потребление – 8.2 ватта. Будущее уже здесь, оно просто неравномерно распределено.