Новый стек antirez · Счёт по Unified Memory · Трёхуровневая матрица аренды · Чек-лист запуска ds4-server
Автор Redis antirez за пару недель написал на C движок ds4 (DwarfStar 4), благодаря которому DeepSeek V4 Flash впервые реально пошёл на одном Mac. Цена входа высока: 96 ГБ Unified Memory — нижний порог, серьёзная работа начинается с 256 ГБ, зона комфорта — 512 ГБ. Прайс — от примерно 4 000 до более 14 000 долларов. Статья даёт независимым разработчикам, AI-исследователям и небольшим командам три вещи. Во-первых, честный счёт по железу для ds4 и Flash, с поправкой на распространённое заблуждение «PRO заведётся на 512 ГБ Mac». Во-вторых, матрицу решений для облачных Mac-нод 96 / 128 / 256 / 512 ГБ и черновик TCO на три года. В-третьих, минимально жизнеспособный чек-лист поднятия ds4 на ноде VpsMesh с интеграцией Cursor и opencode.
ds4 — сокращение от DwarfStar 4. Автор — Salvatore Sanfilippo (antirez), создатель Redis. Это не обёртка над llama.cpp, не универсальный GGUF-загрузчик и не очередной веб-интерфейс. Это нативный движок инференса, заточенный под одну модель — DeepSeek V4 Flash. Основные бэкенды — Metal на macOS и CUDA на Linux, включая DGX Spark. AMD ROCm живёт в отдельной ветке. Эта сознательная узость и стала причиной того, что ds4 за дни набрал десятки тысяч звёзд на GitHub и показывает цифры, недоступные универсальным раннерам.
Узкий фокус даёт ощутимые выгоды. ds4 целиком контролирует MoE-роутинг DeepSeek V4 и применяет агрессивную 2-битную квантизацию к маршрутизирующим экспертам, оставляя остальную часть графа на более высокой точности. Контекст в 1 млн токенов рассматривается как полноценный сценарий: KV-кеш по необходимости сбрасывается на диск, поэтому prefill не пересчитывается на каждой сессии. Цикл tool calling и coding-агент встроены в сам движок, а не подвешены сверху как отдельный фреймворк. Ниже — основные дизайн-решения.
Одна модель — но доведена до предела. README прямо говорит: ds4 — не GGUF-раннер, не обёртка, не фреймворк. Каждый путь выполнения графа подогнан под MoE-структуру DeepSeek V4 Flash, поэтому маршрутизирующих экспертов можно квантизовать жёстко, а остальную сеть оставить точной. Универсальные раннеры этого почти не делают из соображений совместимости.
Metal — первый, CUDA — параллельно, CPU — только для диагностики. На macOS Metal-бэкенд собирается обычным make. На Linux работают make cuda-spark и make cuda-generic. README предупреждает: текущая реализация виртуальной памяти macOS может уронить ядро на CPU-пути, поэтому на Mac инференс без Metal делать нельзя.
KV-кеш на диске встроен изначально. При запуске ds4-server передаются флаги --kv-disk-dir и --kv-disk-space-mb. KV-состояние сохраняется в указанный каталог и переиспользуется между сессиями. В связке с внутренним SSD Mac это превращает миллионнотокенный контекст из постоянного налога в возвращаемые издержки.
OpenAI-совместимый сервер и агент в коробке. ds4-server отдаёт /v1/chat/completions, поэтому Cursor, opencode, Claude Code и любой клиент с OpenAI-протоколом подключаются напрямую. Tool calling реализован нативно — coding-агент собирается без внешнего фреймворка.
Маленький размер — значит, аудируемо. Проект самодостаточен и не тянет сторонний runtime. Кодовая база небольшая, и команда может реально проверить граф выполнения и решения по квантизации. Для тех, кто крутит большие модели в проде, это плюс.
Как только принимаешь, что ds4 по дизайну только под Flash, следующий раздел становится логичным продолжением. Расхожее утверждение «PRO заведётся на 512 ГБ Mac Studio» приходится прямо поправлять, и не один раз.
Начнём со спецификаций. DeepSeek V4 Flash — это MoE на 284 млрд параметров и 13 млрд активаций на токен. Веса в BF16 занимают около 570 ГБ. Q4-квантизация даёт файл порядка 150 ГБ. Вариант q2 от antirez занимает около 86,7 ГБ. Поэтому 96 ГБ — нижний порог, при котором модель вообще грузится, а 128 ГБ — реалистичный лабораторный минимум по консенсусу сообщества. DeepSeek V4 PRO — другая весовая категория: 1,65 трлн параметров и 49 млрд активаций, около 3,2 ТБ в BF16 и около 800 ГБ даже в Q4. Это не помещается ни в один Mac на 512 ГБ Unified Memory, и основная ветка ds4 на PRO не нацелена.
| Unified Memory | Типичный Mac / прайс | Что тянет ds4 | Опорная скорость | Практическая роль |
|---|---|---|---|---|
| 96 ГБ | MacBook Pro M3/M4/M5 Max топ-спека, от ~4 000 USD | порог Flash q2 | q2 только на коротких промптах | грузится; swap приходит уже на средних контекстах |
| 128 ГБ | MacBook Pro M3 Max макс-спека или Mac Studio M2 Max, ~5 000–6 500 USD | лабораторный минимум Flash q2 | q2 prefill ~58,5 t/s, генерация ~26,7 t/s на коротком промпте; ~250 t/s prefill на 11,7 тыс. токенов | принятый сообществом порог; q2 можно держать постоянно |
| 256 ГБ | Mac Studio M2 Ultra или M3 Ultra средней комплектации, ~7 500–10 000 USD | Flash q4 в проде | q4 на коротких промптах идёт ровно; средние контексты не вызывают принудительный swap | первая серьёзная цель для Flash |
| 512 ГБ | Mac Studio M3 Ultra топ-спека, от ~14 000 USD | Flash q4 + комфорт на длинных контекстах | q4 короткий: prefill ~79 t/s, генерация ~35,5 t/s; q4 длинный (~12 тыс. токенов): prefill ~449 t/s, генерация ~26,6 t/s | длинный контекст и резидентный coding-агент; PRO всё равно не входит |
Три нюанса заслуживают отдельной фразы. Уместить веса — не то же, что плавно генерировать. KV-кеш, окно контекста и сторонние процессы могут съесть ещё десятки гигабайт. На 96 ГБ swap почти гарантированно появляется после ~100 тыс. токенов. Разница между q2 и q4 не линейна: на 512 ГБ Mac Studio q2 на коротком промпте чуть-чуть обходит q4 в prefill (около 84 t/s против 79 t/s), но q4 выигрывает на длинных контекстах и качестве tool calling. DGX Spark GB10 со 128 ГБ под CUDA выдаёт ~344 t/s prefill на 7 тыс. токенов q2, но генерация — лишь ~13,7 t/s, что подтверждает: у Mac с Unified Memory остаётся явный sweet spot на сценариях «одна машина — длинный контекст».
ds4 опускает порог локального запуска DeepSeek V4 Flash до 96 ГБ, но граница комфорта по-прежнему 256–512 ГБ. Реальная стоимость измеряется загрузкой машины на горизонте проекта.
ds4 ставит Metal первым по инженерным причинам, а не из эстетики. Apple Silicon Unified Memory (UMA) делит один пул между CPU и GPU. Нет PCIe-рейса, по которому тензоры мотаются между VRAM и системной памятью. Для MoE-модели вроде Flash, где на каждый токен активируется лишь часть экспертов, UMA позволяет подтягивать нужные веса из общего пула без упирания в потолок видеопамяти. На потребительских ценах ни одна другая платформа не даёт 96 ГБ снизу и 512 ГБ сверху в качестве эффективной памяти для инференса.
Второй фактор — пропускная способность памяти. M3 Max — около 400 ГБ/с, M3 Ultra — около 800 ГБ/с. Именно она позволяет ds4 выдавать ~449 t/s prefill на длинном промпте на Mac Studio M3 Ultra. Полоса определяет, насколько быстро движок читает веса — это доминирующее узкое место MoE-инференса. На Mac полоса едина и не нарезана между несколькими дискретными GPU.
Третий фактор часто упускают. Современные внутренние NVMe-SSD в Mac отлично сочетаются с дисковым KV-кешом ds4. ds4-server пишет KV-состояние в каталог из --kv-disk-dir и ограничивает занятое место через --kv-disk-space-mb. При возобновлении той же сессии экономятся секунды и минуты prefill. Внутренние SSD Apple дают 5–7 ГБ/с последовательно, и «слить KV на диск и быстро поднять обратно» дешевле, чем платить RAM за каждую параллельную сессию.
Совет: направляйте --kv-disk-dir на внутренний SSD. Внешние USB-C-диски часто дают треть случайных операций — и тогда reload KV становится новым узким местом. Внешние накопители удобны под холодные снапшоты прошлых сессий.
Если сложить эти три фактора, вывод однозначный. На потребительском железе 2026 года под связку «DeepSeek V4 Flash + ds4 + длинный контекст + дисковый KV» нет более подходящей платформы, чем Mac с большим Unified Memory. Остаётся вопрос денег и загрузки: можно ли позволить себе Mac на 256 или 512 ГБ и реально его выкатать на горизонте проекта.
Если наложить счёт по железу на реальный проектный цикл, вывод трудно обойти: большинство разработчиков не загружают 512 ГБ Mac Studio постоянно. Ранний research спокойно живёт на 128 ГБ Flash q2. Продуктовая фаза переходит на 256 ГБ в q4. Резидентный coding-агент с длинным контекстом требует уже 512 ГБ. Эта лесенка идеально ложится на облачные Mac-ноды; купленная машина запирает вас на одной ступеньке.
| Типовая роль | Основной уровень | Частота смены | Покупка топ-Mac Studio, TCO 3 года | Аренда облачной Mac-ноды, TCO 3 года |
|---|---|---|---|---|
| Независимый разработчик / исследователь (до 20 часов/неделю) | в основном 128 ГБ Flash q2, иногда 256 ГБ | редкие апгрейды | 256 ГБ Mac Studio ~7 500 USD; с амортизацией ~6 500+ USD за 3 года | неделями 128 ГБ + квартально 256 ГБ; ~2 300–3 800 USD за 3 года |
| Небольшой AI-стартап (30–60 часов/неделю, мультипроект) | в основном 256 ГБ Flash q4, изредка 512 ГБ длинный контекст | еженедельные смены | 512 ГБ Mac Studio ~14 000 USD; ~12 000+ USD за 3 года | помесячно 256 ГБ резидент + 512 ГБ под burst; ~5 700–9 000 USD за 3 года |
| Интенсивный пользователь coding-агента (60+ часов/неделю) | в основном 512 ГБ Flash q4 длинный контекст | без смен | топ-Mac Studio окупается лучше всего | помесячная долгосрочная аренда 512 ГБ; разница в цене сужается, остаются гибкость и отсутствие эксплуатации |
| Мульти-региональная команда (близко к пользователям) | 128–256 ГБ на регион | параллельно по регионам | несколько машин = дублирование расходов, сложно сопровождать | открытие нод по регионам по требованию; смена региона = заказ, а не логистика |
Главный вывод таблицы прост. Покупка топ-Mac Studio выгодна только при «постоянной загрузке уровня 512 ГБ круглый год», до такой интенсивности доходят немногие. Реалистичный сценарий — сначала через облачные ноды нащупать свой реальный уровень, а уже потом решать, стоит ли привязываться к физической машине. Часто к концу этой проверки облачная нода и оказывается окончательным ответом.
Важно: скрытые издержки покупки далеко не ограничиваются ценником: электричество, охлаждение, бэкап-диски, ремонт после окончания гарантии и, главное, две-три ближайшие смены поколений Apple Silicon внутри трёхлетнего горизонта. Сегодняшний топ через три года станет «средним»; облачная нода переносит эту кривую амортизации на провайдера.
Шесть шагов ниже сводят всю теорию в воспроизводимый Runbook. Базовая платформа — облачная Mac-нода VpsMesh, минимум 128 ГБ, рекомендованно 256 ГБ, для комфортного длинного контекста — 512 ГБ. У каждого шага есть чёткий критерий pass/fail, и его можно использовать командой как есть.
Собрать ds4 с Metal-бэкендом. git clone https://github.com/antirez/ds4 && cd ds4 && make. На выходе ./ds4 (CLI) и ./ds4-server (HTTP). Pass: оба бинаря существуют, ./ds4 --help выводит справку. На macOS не запускайте make cpu — CPU-путь может ронять ядро.
Smoke-тест Metal. Запустите ./ds4 -p "Hello" --metal с очень коротким промптом, чтобы убедиться, что устройство захвачено и базовый граф работает. На ноде от 128 ГБ дальше уже можно грузить веса Flash q2. Pass: нет ошибки «Metal device not available», нет OOM.
Скачать и проверить веса DeepSeek V4 Flash q2 / q4. Источник GGUF — из проекта ds4; q2 ~86,7 ГБ, q4 ~150 ГБ. Обязательно сверьте SHA256. Веса и KV разносите по разным томам: веса на большой диск данных (≥ 500 ГБ свободно), KV — на внутренний SSD Mac. Pass: контрольная сумма совпадает, df -h показывает не меньше 100 ГБ запаса.
Запустить ds4-server с дисковым KV. Пример: ./ds4-server --ctx 200000 --kv-disk-dir /Volumes/ssd-kv/ds4-kv --kv-disk-space-mb 16384 --bind 127.0.0.1:8080. Начинайте с окна 200 тыс., а не 1 млн, чтобы избежать давления на память на старте. Pass: лог запуска показывает готовность Metal и пишущийся каталог KV; curl http://127.0.0.1:8080/v1/models отдаёт JSON.
Подключить Cursor, opencode или Claude Code. Направьте base URL клиента на ds4-server через SSH-туннель, который пробрасывает удалённый 8080 на локальный 127.0.0.1:8080. 8080 нельзя выставлять на 0.0.0.0. Задайте Authorization по параметрам запуска и имя модели по текущей документации ds4. Pass: короткий streaming-запрос к /v1/chat/completions возвращает 200 OK.
Поднять наблюдаемость и правило отката. Память и диск следите через vm_stat, memory_pressure и iostat. Триггеры: устойчиво высокий swap, prefill падает ниже 50% от базового, или каталог KV превысил 80% от --kv-disk-space-mb — переключайтесь на облачное API (OpenAI, Anthropic или официальный DeepSeek). Pass: путь отката возвращает сравнимый результат на тех же входных данных.
ssh -L 8080:127.0.0.1:8080 vpsmesh-mac-node \
'./ds4-server \
--ctx 200000 \
--kv-disk-dir /Volumes/ssd-kv/ds4-kv \
--kv-disk-space-mb 16384 \
--bind 127.0.0.1:8080'
curl -sS http://127.0.0.1:8080/v1/chat/completions \
-H "Authorization: Bearer $DS4_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4-flash-q4","messages":[{"role":"user","content":"hello"}],"stream":false}' \
| jq .
Три жёстких ориентира, которые стоит вклеить в team README:
--kv-disk-space-mb с 16 ГБ и закладывайте ~1–3 ГБ на одну длинную сессию. Используйте внутренний SSD; внешний накопитель сделает reload KV новым узким местом.Если вы выбираете между покупкой 256/512 ГБ Mac Studio и арендой облачного Mac под ds4, заведите в сравнение два пункта, которые обычно не попадают в спецификации. Первый — скрытый счёт физической машины: электричество, шум, охлаждение, ремонт после окончания гарантии и две-три ближайшие смены поколений Apple Silicon в горизонте трёх лет. Второй — нагрузка self-hosting: держать ds4-server демоном через перезагрузки, следить за уровнем KV-диска, поддерживать самовосстановление линка с Cursor или opencode. Ничто из этого не «работа, ради которой вы пришли». Для независимых разработчиков, исследователей и небольших команд, которые предпочитают тратить время на модели и код, а не на администрирование железа, ноды VpsMesh с большим Unified Memory — переключаемые между 96 / 128 / 256 / 512 ГБ по требованию — обычно оказываются более реалистичным и более экономичным выбором. Начните с недели на 128 ГБ для проверки совместимости с Flash q2, затем месяц на 256 ГБ, чтобы вывести Cursor и coding-агента в комфортный режим, и только потом решайте, нужен ли вам резидентный узел на 512 ГБ. Этот лестничный путь куда менее рискован, чем разовый покупкой топового Mac Studio за деньги небольшого автомобиля.
Нет. Основная ветка ds4 целится только в DeepSeek V4 Flash. Flash — 284 млрд параметров и 13 млрд активаций на токен. PRO — 1,65 трлн параметров и 49 млрд активаций, около 3,2 ТБ в BF16 и около 800 ГБ в Q4. Это не помещается ни в один Mac на 512 ГБ и выходит за рамки ds4 и однокорпусных Mac-конфигураций; PRO потребует мульти-GPU-кластера. Для Flash смотрите страницу цен VpsMesh и выбирайте ноду от 128 ГБ.
Это нижний порог, при котором q2 вообще загружается, не зона комфорта. Длинные контексты и параллельные запросы быстро вызывают swap, особенно после 100 тыс. токенов. 128 ГБ — реалистичный лабораторный минимум, 256 ГБ — первая серьёзная цель, где q4 на средних контекстах не уходит в swap, а 512 ГБ — зона комфорта для длинных контекстов и резидентного coding-агента. Если задача — только проверить осуществимость, аренда 128 ГБ-ноды на две недели обходится дешевле, чем покупка 96 ГБ ноутбука.
Простое правило: только если уровень 512 ГБ стабильно загружен не меньше 30 часов в неделю и минимум два года. При меньшей интенсивности аренда выигрывает, как только учтены электричество, амортизация и две-три ближайшие смены поколений Apple Silicon. Планирование ёмкости описано в центре помощи VpsMesh, а пробную ноду под реальную нагрузку удобно открыть прямо на странице оформления заказа.
Да. ds4-server отдаёт /v1/chat/completions и совместим с протоколом OpenAI. Направьте base URL клиента на сервер, выставьте токен и окно контекста по параметрам запуска. В проде обязательно биндите ds4-server на 127.0.0.1 и обращайтесь через SSH-туннель или приватную сеть; никогда не выставляйте порт на 0.0.0.0. Шаблон SSH-туннеля и условия отката приведены в разделе 05.