> · · 6 мин

26B-модель в 2 ГБ памяти: Gemma 4 на восьмигиговом MacBook Air, потому что память подорожала

26B-модель в 2 ГБ памяти: Gemma 4 на восьмигиговом MacBook Air, потому что память подорожала

«Память подорожала. Поэтому я дал модели на 26 миллиардов параметров бюджет в 2 гигабайта». С этой фразы начинается README проекта TurboFieldfare, который сегодня висит на главной Hacker News. Автор — Андрей Михайлов, iOS- и Metal-инженер — написал свой рантайм на Swift и Metal, чтобы Gemma 4 26B работала на восьмигиговом MacBook Air.

TL;DR: TurboFieldfare держит в памяти общее ядро модели на 1,35 ГБ и FP16 KV-кеш, а экспертов под каждый токен стримит с SSD. В итоге Gemma 4 26B-A4B укладывается примерно в 2 ГБ оперативной памяти вместо 14,3 ГБ. Замеры автора: 5,1–6,3 токена в секунду на 8 ГБ M2 MacBook Air и 31–35 на 24 ГБ M5 Pro. Apache-2.0, требуется macOS 26 и Metal 4.

Что делает TurboFieldfare

Проект запускает инструкционную версию Gemma 4 26B-A4B, не загружая всю модель в память. 26 миллиардов параметров всего, около 3,88 миллиарда активных на токен — это MoE-архитектура, и именно она делает трюк возможным.

Идея простая по формулировке и мучительная в реализации. В памяти постоянно живёт только общее ядро на 1,35 ГБ плюс KV-кеш в FP16. Эксперты, которые нужны конкретному токену, подтягиваются с SSD по мере надобности и лежат в ограниченном по размеру кеше. Полная модель на диске занимает 14,3 ГБ, в памяти — около двух.

Это не обёртка над MLX или llama.cpp. Рантайм, Metal-ядра, CLI, установщик и нативное Mac-приложение написаны с нуля на Swift и Metal, и всё заточено под одну конкретную модель. Автор выложил журнал экспериментов со 103 измеренными результатами по ядрам, кешированию, вводу-выводу, префиллу и декодингу — включая идеи, которые звучали разумно и не сработали.

Насколько это быстро на самом деле

Честные цифры из бенчмарков автора: 5,1–6,3 токена в секунду на 8 ГБ M2 MacBook Air и 31–35 токенов в секунду на 24 ГБ M5 Pro.

Шесть токенов в секунду — это медленно. Примерно скорость чтения вслух не торопясь. Для чата в терминале терпимо, для агента, который гоняет десять инструментальных вызовов подряд, — нет.

Но сравнивать надо не с облачным API, а с альтернативой на том же железе. На восьмигиговом Air альтернатива — не запускать 26B вообще. Автор честно оговаривает, что измерение это опорная точка, а не потолок: на пропускную способность влияют длина промпта, длина генерации, состояние page cache и само железо. Есть гайд для контрибуции своих замеров, и на редких конфигурациях цифр пока нет.

Как устроена установка

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

Вместо этого он тянет нужные диапазоны байт с закреплённой ревизии Hugging Face и на лету перепаковывает их прямо в формат .gturbo. Никакой второй копии чекпоинта на диске, ограниченная память под временные данные. Первая установка прокачивает около 15 ГБ, итоговая установка занимает 14,3 ГБ и принимается только после проверки манифеста и хешей файлов. Загрузка модели в память при установке не происходит.

Поставить и запустить из командной строки:

swift run -c release TurboFieldfareRepack \
  --output scratch/gemma4.gturbo \
  --overwrite

swift run -c release TurboFieldfareCLI \
  --model scratch/gemma4.gturbo \
  --messages-file messages.json

Пакет отдаёт шесть продуктов: библиотеку с рантаймом и Metal-ядрами, нативное Mac-приложение, CLI для чата и сырых дополнений, экспериментальный OpenAI-совместимый сервер на loopback и установщик-репакер. Модельную директорию .gturbo они делят, но запускать одновременно можно только один процесс, владеющий моделью.

Дефолты генерации: температура 0.2, Top-K 64, Top-P 0.95. Для детерминированного жадного вывода ставьте температуру в 0.

Подводные камни

macOS 26 и Metal 4 обязательны, откатов нет. Пакет только под arm64, нужны Xcode 26 и Swift 6.2 или новее. Старые версии macOS и Metal не поддерживаются в принципе, так что на MacBook, который вы не обновляли, это не поедет.

Стриминг экспертов с SSD означает постоянные чтения. Каждый токен тянет свой набор экспертов с диска. На производительность это влияет предсказуемо, на ресурс SSD при долгих сессиях — вопрос, который в документации не рассматривается вообще.

Только текст и только одна модель. Ни картинок, ни аудио. Приложение и CLI не дают модели инструментов; loopback-сервер принимает объявления function-tool и возвращает вызовы инструментов, но выполнять и авторизовывать их должен клиент. И запускается ровно Gemma 4 26B-A4B с закреплённого чекпоинта, подставить свою модель нельзя — рантайм модель-специфичный.

Запуск требует ручной подготовки. Документация советует перед прогоном закрыть тяжёлые приложения и проверить memory_pressure -Q, а если свободной памяти мало — отложить запуск. Одновременно должен работать только один процесс с моделью: приложение, CLI, сервис декодинга, сервер или тесты. Для восьмигиговой машины это не придирка, а условие работы.

Проект новый и маленький. Репозиторий создан 17 июля, двенадцать коммитов, один автор. Валидированная цель — 8 ГБ M2 MacBook Air, всё остальное железо в статусе «померьте и пришлите». Модель может зациклиться или ответить неверно, автор об этом предупреждает прямым текстом.

Альтернативы

Ollama и llama.cpp — универсальны, поддерживают сотни моделей и работают на любой платформе. Но 26B на восьмигиговой машине они не запустят: там нет стриминга экспертов с диска, модель должна поместиться в память.

MLX от Apple — родной фреймворк под Apple Silicon с хорошей производительностью и большим выбором моделей. Требует, чтобы веса влезли в unified memory, то есть на 8 ГБ вы остаётесь в классе моделей до 7–8B.

Модель поменьше — Gemma 4 в младших размерах или Qwen на 4–8B пойдут на том же Air быстрее и без танцев с версиями macOS. Вопрос в том, устраивает ли вас качество 8B там, где вы хотели 26B.

Вердикт

Ставьте, если у вас Apple Silicon с 8–16 ГБ памяти, macOS 26 и желание гонять модель локально без облака: это единственный известный способ запустить 26B на такой машине, и шесть токенов в секунду лучше, чем ноль. Не ставьте, если нужен агент с инструментами и быстрым циклом — на этой скорости он не работает, берите API. И отдельно стоит прочитать журнал экспериментов, даже если запускать не собираетесь: 103 измеренных результата с описанием того, что не сработало и какие ранние выводы развалились под нормальной проверкой, — редкий жанр в мире локального инференса, где обычно публикуют только победы.

Как попробовать

  1. Проверьте требования: Apple Silicon, macOS 26 с Metal 4, Xcode 26, Swift 6.2+, около 15 ГБ свободного места. Без macOS 26 дальше можно не читать.
  2. Склонируйте drumih/turbo-fieldfare и поставьте модель через TurboFieldfareRepack либо через Mac-приложение, если хотите графический установщик.
  3. Перед первым прогоном закройте браузер и всё тяжёлое, проверьте memory_pressure -Q. На восьмигиговой машине это влияет на результат больше, чем настройки сэмплирования.
  4. Замерьте свою скорость по гайду сообщества и пришлите результат: по 16 ГБ M4 Mac mini и другим 8-гиговым конфигурациям цифр пока нет.
  5. Если хотите подключить модель к своему коду, поднимайте loopback-сервер с OpenAI-совместимым Chat Completions и просто перенаправьте туда base URL.
$ ls ./related/

Похожие статьи

opus-5-vending-bench.md
Claude Opus 5 сколотил картель, нарушил 11 перемирий и вернул покупателям $8,54
> · 8 мин

Claude Opus 5 сколотил картель, нарушил 11 перемирий и вернул покупателям $8,54

Andon Labs посадила Opus 5, GPT-5.6 Sol и Kimi K3 управлять торговыми автоматами по соседству. Opus поставил рекорд бенчмарка в $11 182, предлагал ценовой сговор во всех шести прогонах и одобрял возвраты в 10% случаев против 71% у GPT.

ai agents llm claude
handbook-md-benchmark.md
Твой CLAUDE.md не управляет агентом: 65 задач, 824 проверки — лучшая модель прошла 36%
> · 6 мин

Твой CLAUDE.md не управляет агентом: 65 задач, 824 проверки — лучшая модель прошла 36%

Surge AI выложила HANDBOOK.md — бенчмарк, который проверяет не «справился ли агент с задачей», а «удержал ли его регламент, пока он справлялся». Лучшая из 30 конфигураций проходит 36,2% попыток, большинство фронтир-моделей — меньше 25%.

ai agents llm claude-code
openai-deepseek-model-shutdowns.md
За два дня отключили 21 модель: все codex прошлых поколений и оба имени DeepSeek. Плюс тихий баг, который увеличит твой счёт
> · 7 мин

За два дня отключили 21 модель: все codex прошлых поколений и оба имени DeepSeek. Плюс тихий баг, который увеличит твой счёт

23 июля OpenAI выключила 19 снапшотов, включая gpt-5-codex, gpt-5.1-codex-max и gpt-5.2-codex. 24 июля DeepSeek убила deepseek-chat и deepseek-reasoner без грейс-периода. В миграции DeepSeek спрятана ловушка: режим размышления включается по умолчанию и молча раздувает счёт. Что грепать и какие даты держать в календаре.

llm api openai devtools
subscribe.sh

$ cat /dev/blog/updates

> Свежие заметки о программировании,

> DevOps и AI — прямо в мессенджер

./subscribe