На M4 Mac Mini при запуске локальных LLM в чатах чаще спорят не про «Ollama или MLX», а про то, хватает ли 16GB. Кто-то ставит qwen2.5:14b, радуется «вроде работает» — а на третьем раунде диалога начинается swap, tok/s падает с 11 до 3; кто-то берёт 24GB и видит 7B на ~50 tok/s. Неверный объём RAM бьёт сильнее, чем неверный фреймворк.
В Macstripe Lab мы протестировали три M4 Mac Mini (16GB / 24GB / 32GB) с парой Ollama 0.6.2 и MLX: таблица решений память × сценарий × фреймворк, точка swap и чеклист из семи шагов. Цены и официальные стартовые конфигурации — по состоянию на 2026-07-21. Подробнее о выборе модели — в тесте 7B vs 14B; про фреймворки — в Ollama vs MLX.
1. Сначала вывод: объём памяти × сценарий × рекомендуемая связка
| Unified memory | Типичный сценарий | Модель | Runtime | tok/s (median) | Риск |
|---|---|---|---|---|---|
| 16GB | Личный чат, лёгкие скрипты, проба на своей машине | qwen2.5:7b / llama3.1:8b | Ollama | 7B ~29 · 8B ~28.8 | 14B легко уходит в swap; Chrome+IDE одновременно — перегруз |
| 24GB | Claude Code Agent, программирование по нескольким файлам | qwen2.5-coder:14b | Ollama | 14B ~15.1 · 7B ~51.1 | Sweet spot; decode медленнее 7B — норма |
| 32GB | Большой ctx + Xcode на той же машине, лёгкий командный узел | 14B + num_ctx 32K | Ollama serve | 14B ~16–18 | Дороже 24GB; личный ROI нужно считать |
| 48GB+ | Общий inference, эксперименты с 32B | qwen2.5:32b (Q4) | кластер Ollama serve | 32B ~8–12 | См. гайд по M4 Pro |
2. Три типичные ошибки: почему память важнее фреймворка
В лаборатории мы снова и снова видим три ситуации «кажется, всё верно — а памяти не хватает»:
| Тип ошибки | Как проявляется | Цифры из тестов | Что делать |
|---|---|---|---|
| Смотреть только рейтинги tok/s | В сети 14B «даёт 15 tok/s», у вас — 3 | 14B на 16GB: 11.2 → 8.4 → 3.4 tok/s (три раунда подряд) | Сверяйте Swapins; рейтинги чаще сняты на 24GB в чистой системе |
| Игнорировать фон | «Я только Ollama», но Chrome 30 вкладок + индексация Xcode | 8B в чистоте 28.8 tok/s → с Chrome 20.8 (исключено из median) | Закрывайте вкладки перед тестом; или закладывайте 4–6GB на OS + IDE |
| Путать фреймворк и память | Думать, что MLX «сэкономит» RAM для 14B | Ollama vs MLX на той же модели: разница <5% | Фреймворк — проценты; объём RAM — порядок величины |
Типичный отзыв indie-разработчика: «На 16GB Claude Code + qwen2.5-coder:14b — первые два раунда норм, на третьем TTFT с 1.9s до 5.8s». Модель не «глупеет» — unified memory входит в зону swap. Теория — в «Unified memory и LLM-инференс».
3. Границы: 16GB / 24GB / 32GB
Базовый M4 Mac Mini предлагает три уровня unified memory, GPU 10 ядер, bandwidth ~120 GB/s. Число GB не меняет потолок L2 bandwidth, но определяет, поместятся ли модель + KV + foreground-приложения без давления L3 и обвала.
3.1 Формула бюджета памяти (оценка)
| Статья | 7B Q4 | 14B Q4 | Примечание |
|---|---|---|---|
| Квантованные веса | ~4.5 GB | ~9 GB | Ollama по умолчанию Q4_K_M |
| KV cache (num_ctx=2048) | ~0.5 GB | ~1 GB | Растёт линейно с ctx |
| macOS + foreground | 4–6 GB | 4–6 GB | Chrome/IDE по 1–3 GB |
| Ollama daemon | ~0.3 GB | ~0.3 GB | Постоянный HTTP-сервис |
| Итого (грубо) | ~10 GB | ~15 GB | 14B на 16GB почти без запаса |
3.2 Три уровня: стабильно / на пределе / не стоит
| RAM | 7B/8B | 14B | 32B | Заметка |
|---|---|---|---|---|
| 16GB | ✅ стабильно | ⚠️ легко swap | ❌ | Первый выбор для лёгкого solo |
| 24GB | ✅ очень быстро | ✅ sweet spot | ⚠️ впритык | Рекомендуемый уровень для Agent / кода |
| 32GB | ✅ | ✅ большой ctx | ⚠️ Q4 можно пробовать | CI + LLM на одной машине |
Если основной сценарий — «Claude Code + 14B локально», 24GB — лучшая точка по цене/пользе. Это не линейное «+8GB = +8 tok/s», а отодвигание swap, перевод 14B из зоны обвала в стабильную. Полная методология — в Hub с полными тестами.
4. Конфигурация: footprint Ollama vs MLX
Многие думают, MLX «нативнее» и экономит память — тесты это не подтверждают. При той же модели и квантизации веса и KV почти одинаковы; разница в архитектуре runtime, а не в гигабайтах.
| Параметр | Ollama | MLX | Разница в тестах |
|---|---|---|---|
| Веса модели (Llama 3.1 8B Q4) | ~4.9 GB | ~4.8 GB | Можно игнорировать |
| Резидентный процесс | ~200–400 MB (daemon) | По запросу, без daemon | Ollama чуть больше |
| tok/s (16GB, чисто, 8B) | median ~28.8 | ~28–32 | MLX быстрее на 0–12% (офлайн) |
| tok/s (24GB, чисто, 8B) | median ~51.2 | ~52–55 | Разрыв сужается |
| Claude Code | ✅ нативно :11434 | ❌ нужен свой HTTP | Agent → Ollama |
| После swap | 11.2 → 3.4 tok/s | На том же RAM — тот же обвал | Решает объём RAM |
Нужен удалённый 14B без апгрейда своей машины? Неделю можно прогнать на облачном узле Macstripe 24GB, проверить Agent-workflow и решить — покупать или арендовать.
5. Данные тестов: tok/s, TTFT и точка swap
Среда: Mac Mini M4 (Mac14,3), macOS 15.4.1, Ollama 0.6.2, Q4_K_M по умолчанию. Машины m4-16gb-lab-01, m4-24gb-lab-02. Период 2026-05-28 — 2026-07-18.
5.1 16GB: 7B стабилен, 14B рушится
| Модель | run 1 | run 2 | run 3 | median | Swapins |
|---|---|---|---|---|---|
| qwen2.5:7b | 28.7 | 31.4 | 26.9 | 29.1 | 0 |
| qwen2.5:14b | 11.2 | 8.4 | 3.4 | — (сессия прервана) | 8421+ |
14B на 16GB — не «чуть медленнее», а обвал в три фазы: run 1 терпимо → run 2 swap → run 3 memorystatus: WARN → runner убит OOM.
5.2 24GB: 14B в sweet spot
| Модель | tok/s, 5 прогонов | median | TTFT | Swapins |
|---|---|---|---|---|
| qwen2.5:7b | 49.2 / 53.8 / 51.1 / 48.6 / 52.4 | 51.1 | ~2.0s | 0 |
| qwen2.5:14b | 14.2 / 16.8 / 15.1 / 17.3 / 14.9 | 15.1 | ~2.7s | 0 |
5.3 Фрагмент raw log
--- m4-16gb-lab-01 · qwen2.5:14b ---
run 1: tok/s=11.2 TTFT=2.71s
run 2: tok/s=8.4 Swapins: 1204
run 3: tok/s=3.4 memorystatus: WARN TTFT=5.81s
run 4: ERROR runner killed (oom?) Swapins: 8421
--- m4-24gb-lab-02 · qwen2.5:14b ---
tok/s: 14.2 16.8 15.1 17.3 14.9 median: 15.1
Полный лог: resources/sample-benchmark-7b-14b-run.log; скрипт воспроизведения: resources/benchmark-m4-mac-mini-ollama.sh.
6. Канал: апгрейд своей машины vs облачная аренда Mac
| Путь | Кому подходит | Плюсы | Минусы |
|---|---|---|---|
| Апгрейд при покупке (16→24GB) | Локальный Agent несколько раз в неделю, долгий офлайн | Разовая покупка, данные не покидают машину | Официальный апгрейд Apple дорог; привязка к столу |
| Облачный Mac посуточно/помесячно | Проба 14B, пиковые задачи, командный узел | Развёртывание за минуты; 24GB/48GB по запросу | Нужна сеть; долгий ROI считать отдельно |
| Гибрид: 16GB локально + 24GB в облаке | 7B дома, тяжёлые задачи в облаке | Гибкая стоимость, пики без swap | Два окружения поддерживать |
Разработчик iOS + AI использовал гибрид: 16GB локально с 7B для дополнения кода, тяжёлый Claude Code по SSH на узле Macstripe 24GB с 14B — ~$103/мес, дешевле разницы при покупке 24GB. Сравнение аренды — в «Сравнение цен аренды Mac mini M4».
7. Разница в цене: сколько стоит больший объём RAM
| Апгрейд | Доплата Apple US (ориентир) | Облако, разница/мес (ориентир) | Когда окупается |
|---|---|---|---|
| 16GB → 24GB | +$200 (при заказе) | +~$30–50/мес | 3+ раза в неделю 7B «не тянет» задачу |
| 24GB → 32GB | +$200 | зависит от провайдера | Xcode CI + 14B на одной машине |
| 16GB → 48GB (M4 Pro) | смена модели | узел Macstripe 48GB | Общий доступ команды / 32B |
Грубый ROI: если из‑за качества 7B вы теряете 2 часа в неделю (при $50/ч), за месяц $400 — больше официальной доплаты 16→24GB ($200). Апгрейд RAM — часто самое дешёвое эффективное улучшение, полезнее смены фреймворка или тюнинга параметров.
8. Чеклист и семь шагов запуска
Перед заказом или сборкой сверьте ожидания:
- ☐ Основной сценарий — чат (7B хватит) или Agent-программирование (склоняетесь к 14B)
- ☐ Будут ли одновременно Chrome 20+ вкладок + IDE
- ☐ Нужен ли Claude Code / Cursor с локальной моделью
- ☐ Runtime: Ollama (Agent) или MLX (только бенчмарки)
- ☐ Постоянно локально или пики в облаке
- ☐ Бюджет на 16GB / 24GB / 32GB
- ☐ Общий доступ команды (→ 24GB+ или облачный узел)
- ☐ Готовы ли к риску swap (16GB + 14B = высокий)
Семь шагов (путь Ollama)
- Определите объём RAM и целевую модель (16GB→7B; 24GB→14B)
- Установите Ollama:
brew install ollamaили pkg с сайта - Скачайте модель:
ollama pull qwen2.5-coder:7b(16GB) или:14b(24GB) - Проверьте Metal: в логе
ollama serveестьggml_metal_init - Запустите бенчмарк:
./resources/benchmark-m4-mac-mini-ollama.sh - Мониторинг памяти:
vm_stat+ индикатор давления в Activity Monitor - Подключите Agent: Claude Code →
http://127.0.0.1:11434
9. Стартовые цены для цитирования (по состоянию на 2026-07-21)
| Конфигурация | Apple US MSRP (USD) | Образование (ориентир) | Macstripe облако/мес (USD) |
|---|---|---|---|
| M4 Mac Mini 16GB / 256GB | $599 | ~$539 | ~$102.9 |
| M4 Mac Mini 24GB / 256GB | $799 | ~$719 | ~$130–150 (по узлу) |
| M4 Mac Mini 32GB / 256GB | $999 | ~$899 | по запросу / custom |
| M4 Pro 48GB (inference-узел) | $1,399+ | по конфигурации | см. тарифы |
Цены Apple — публичные данные US store; образовательная скидка по условиям Apple. Облачные тарифы — актуальные на странице Macstripe.
10. Кому какой объём RAM
| Аудитория | Рекомендуем RAM | Модель + фреймворк | Альтернатива |
|---|---|---|---|
| Студент / проба | 16GB | 7B + Ollama | Облако посуточно для 14B |
| Indie + Agent | 24GB | 14B + Ollama | 16GB локально + 24GB в облаке |
| iOS-разработка + локальный LLM | 32GB | 14B + Xcode на одной машине | CI и inference на разных Mac |
| Малый командный inference-узел | 48GB | кластер ollama serve | узел Macstripe 48GB |
Не уверены, хватит ли 24GB? Арендуйте облачный Mac на неделю с реальным Agent-workflow — надёжнее десяти обзоров бенчмарков. Macstripe: SSH/VNC, ~5 минут до доступа, без долгого контракта — потом решите: апгрейд своей машины или постоянная аренда.
FAQ
M4 Mac Mini для локальных LLM: 16GB или 24GB?
Повседневные 7B/8B + лёгкая IDE — 16GB; стабильный 14B, Claude Code Agent или много вкладок браузера — 24GB. При насильном 14B на 16GB tok/s падает с 11.2 до 3.4.
Ollama или MLX — кто больше ест память?
При той же модели и квантизации разница обычно <5%. Узкое место — объём unified memory, не название фреймворка. Для Agent — Ollama.
Стоит ли 32GB вместо 24GB?
Для solo с 14B и стандартным ctx 24GB обычно хватает; 32GB — Xcode CI + LLM на одной машине или больший num_ctx.
Как понять, что памяти не хватает?
Индикатор давления памяти, рост Swapins в vm_stat, обрыв tok/s. memorystatus WARN — предвестник swap.
Можно ли арендовать облачный Mac вместо покупки?
Да. Macstripe — выделенные узлы M4 16GB/24GB/48GB, после SSH установите Ollama; подходит для пробы 14B или командного inference.
Итог
Локальные LLM на M4 Mac Mini: объём RAM — решающий фактор. 16GB — 7B + Ollama для личной пробы; 24GB — sweet spot для 14B Agent; 32GB — CI + большой контекст на одной машине. Разница Ollama/MLX по памяти пренебрежима; фреймворк выбирают по сценарию (Agent → Ollama, бенчмарки → MLX).
Если на 16GB насильно держите 14B — прочитайте тест 7B vs 14B про swap или арендуйте облачный Mac 24GB на неделю с реальным workflow.