2026 antirez ds4 — DeepSeek V4 Flash локально на Mac: матрица решений покупка vs аренда 96/128/512 ГБ
Сальваторе Санфилиппо, известный как antirez и автор Redis, в мае 2026 выложил ds4 — намеренно узкий инференс-движок на чистом C, выполняющий DeepSeek V4 Flash на Apple Silicon и CUDA без сторонних рантаймов. За несколько недель репозиторий перевалил за одиннадцать тысяч звёзд. Технически всё реально, но лестница затрат крутая: ds4 нацелен на 96 ГБ unified memory как начало, 128 ГБ для комфорта и 256–512 ГБ Mac Studio Ultra под q4 или PRO. Эта статья сводит вместе цифры README, факты о V4 и матрицу решений между собственной покупкой, арендой удалённого Mac и облачным API — материал для команд, которым нужен агент в проде без переплат и без рисков утечки данных в чужой облачный пайплайн.
1. Триаж: модель × квантизация × память
Чаще всего «не запускается DeepSeek V4 локально» — это провал рамки, а не железа. Три переменные задают осуществимость задолго до первого ./ds4 run и должны быть зафиксированы письменно до любого заказа железа.
Уровень модели. V4-Flash — 284 млрд параметров, из них 13 млрд активны на токен; V4-PRO — 1,6 трлн параметров, 49 млрд активных. Оба варианта имеют контекст в 1 млн токенов, выпущены под лицензией MIT 24 апреля 2026 года. Flash — реалистичная локальная цель. PRO весит около 865 ГБ на Hugging Face и реалистичен лишь на 512 ГБ Ultra с агрессивной квантизацией; обычно его берут через хостед-API.
Уровень квантизации. ds4 поставляет три рецепта Flash. Чистый q2 применяет асимметричную квантизацию только к routed MoE-экспертам, удерживая attention и эмбеддинги почти в полной точности; веса Flash q2 — около 81 ГБ. Вариант q2-imatrix использует кураторскую importance-matrix, по README ошибка logits близка к q4. q4 — потолок качества, требует больше памяти и пропускной способности.
Уровень памяти. README прямо говорит: ds4 имеет смысл «от 96 ГБ» unified memory. С 81 ГБ резидентных весов 128-гигабайтный Mac оставляет менее 30 ГБ под ОС, KV и запас, что упирает потолок контекста одной сессии в 100–300 тыс. токенов. 256 ГБ Mac Studio — комфортное кресло для Flash q4, 512 ГБ Mac Studio Ultra — реалистичный пол для параллельных сессий, очень длинных контекстов или экспериментов с PRO.
2. Что такое ds4 и чем он не является
ds4 — это автономный нативный движок: чистый C, Metal как primary-бекенд на macOS и CUDA как secondary на Linux. Содержит встроенный HTTP-сервер ds4-server с OpenAI-совместимыми /v1/models и /v1/chat/completions, нативный Tool Calling и встроенного coding-агента. Cursor, opencode и большинство OpenAI SDK подключаются заменой одного base_url.
ds4 — это не универсальный GGUF-раннер. Loader, рендеринг промпта, KV-разметка и MTP-стейт-машина заточены под DeepSeek V4 Flash GGUF под antirez/deepseek-v4-gguf на Hugging Face. Это не конкурент Ollama, llama.cpp или MLX как менеджера моделей. Автор меняет универсальность на инженерную сфокусированность, и README честно отмечает alpha-качество кода именно потому, что цель одна и быстро движущаяся.
3. Три инженерных рычага
Дисковый KV-кеш. Флаги --kv-disk-dir и --kv-disk-space-mb сливают KV между ходами в NVMe-каталог. Второй диалог по тому же префиксу полностью пропускает prefill и превращает многосекундный холодный старт в субсекундное возобновление. На удалённом Mac с быстрым SSD именно эта одна фича делает длинные code-сессии терпимыми.
Асимметричная 2-битная квантизация под MoE. Нагрузка сжатия падает на routed-экспертов (IQ2_XXS на gate, Q2_K на down), сохраняя точность attention там, где она сильнее всего влияет на logits. Поэтому Flash q2 укладывается в 128 ГБ и держится под coding-агентами, тогда как наивные 2-битные MoE-схемы скатываются в галлюцинации.
Tool Calling и OpenAI-поверхность. ds4 нативно реализует форматы tool-call от OpenAI и Anthropic, поэтому Cursor, opencode и большинство опенсорсных агентов работают без слоёв трансляции. Интеграция с агентом — корректность первого уровня, а не демо, что редкость для проекта одного автора.
4. Бенчмарки README для закупки
Вторичные источники любят переписать цифры Mac Studio Ultra на ноутбуки. Ниже — только цифры из README, которые стоит брать в служебную записку. Все значения в токенах в секунду; длинные строки используют README-промпт на 11 709 токенов для q2 и 12 018 для q4.
| Машина | Квант. | Сценарий | Prefill (t/s) | Generation (t/s) |
|---|---|---|---|---|
| MacBook Pro M3 Max 128 ГБ | q2 | Короткий промпт | 58.52 | 26.68 |
| MacBook Pro M3 Max 128 ГБ | q2 | Длинный (11709 tok) | 250.11 | 21.47 |
| Mac Studio M3 Ultra 512 ГБ | q2 | Длинный (11709 tok) | 468.03 | 27.39 |
| Mac Studio M3 Ultra 512 ГБ | q4 | Длинный (12018 tok) | 448.82 | 26.62 |
Вывод: ноутбук M3 Max 128 ГБ подходит для single-dev Flash q2, но параллельные сессии или качество q4 требуют 256 ГБ или, с запасом, 512 ГБ Ultra. Цитируйте именно эти цифры, а не «M5 Max 463/34» из твиттера — это явная склейка prefill Ultra с generation ноутбука.
5. Почему Apple Silicon UMA побеждает дискретные GPU
Стандартный аргумент против локального MoE — фрагментация памяти. Разбросать 81 ГБ весов по двум-четырём дискретным картам — значит гонять expert routing через PCIe на каждом токене, и пропускная способность длинного контекста схлопывается ровно там, где она нужна. Apple unified memory architecture делит 96–512 ГБ между CPU и GPU, поэтому выбор эксперта — это просто разыменование памяти без копий. Сложите это с пропускной способностью около 800 ГБ/с у M3 Ultra и высокой последовательной чтения macOS-NVMe — и получите ту самую почву, под которую и проектировался ds4. Поэтому README поднимает Metal до бекенда первого уровня и адресует именно Mac с 128 ГБ и выше.
6. Покупка vs аренда vs облачный API
Экономика конкретная. Максимально оснащённый MacBook Pro M3 Max 128 ГБ — около $4500, Mac Studio Ultra 512 ГБ — больше $13000 до налогов. Аренда по часу или месяцу убирает капекс, риск амортизации и обузу держать узел 24/7 в гостиной. Матрица ниже сводит три живые опции.
| Измерение | Купить Mac с большой памятью | Арендовать удалённый Mac | Вызвать облачный API |
|---|---|---|---|
| Стартовая стоимость | $4.5K–13K капекс | Часы или месяцы, низкий вход | Только API-ключ |
| Резидентность данных | На устройстве | Выделенный инстанс | Доверие поставщику |
| Гибкость модели | Зажата RAM | Смена уровня по запросу | Смена поставщика |
| Командное использование | Из дома сложно | Всегда онлайн | Оплата за место |
| Долгий KV | Локальная NVMe | NVMe между сессиями | Обычно непостоянный |
| Амортизация | 30–50% за 2 года | На стороне провайдера | Нет |
Простое правило: устойчивая нагрузка + обязательная локальность данных → купить или арендовать на долгий срок. Выбор модели плавающий, несколько разработчиков на одних весах, всплески оценок → арендовать. Кому проще вообще не владеть петлёй инференса — облачный API остаётся самым дешёвым для редких вызовов.
7. Пять шагов на удалённом Mac
- Выбрать уровень. Flash q2 хочет 128 ГБ; Flash q4 — 256 или 512 ГБ Ultra; V4-PRO — 512 ГБ Ultra. С README на этом этапе торговаться нельзя.
- Клонировать и собрать.
git clone https://github.com/antirez/ds4 && make metalна macOS; сборке не нужны рантаймы Homebrew или Python-колёса. - Скачать веса. Скрипт
download-deepseek-v4-ggufкладёт curl-возобновляемые загрузки в./gguf/и направляет./ds4flash.ggufна выбранный вариант. - Запустить сервер с дисковым KV.
./ds4-server \
--ctx 100000 \
--kv-disk-dir /Volumes/Data/ds4-kv \
--kv-disk-space-mb 8192
- Подключить клиентов и расшарить. Указать Cursor или opencode на
http://host:8080/v1, открыть порт через Tailscale-mesh и держать хост в сети через launchd-управляемую доступность. Если вы уже эксплуатируете гибридный роутинг OpenClaw с Ollama, подключите ds4-server как локальный канал для офлайн-первого режима.
8. Низкоуровневые соображения производительности
ds4 не делает магии — он эксплуатирует то, что обычные движки игнорируют. Во-первых, NEON и AMX-инструкции: Apple-силиконовые ядра имеют выделенные матричные ускорители, которые активно загружаются на attention-проходах; Metal-шейдеры ds4 нацелены на эти конвейеры и потому достигают высокого prefill даже на ноутбуке. Во-вторых, page-resident MoE-веса: благодаря UMA «холодные» эксперты не выгружаются обратно через PCIe, как в дискретных конфигурациях, а просто остаются на страницах памяти — переключение между экспертами стоит наносекунды. В-третьих, NVMe-bandwidth для KV: типовая запись 128-битного KV-слоя в q2-Flash требует около 1,5 ГБ/с устойчивого потока, что Apple-SSD выдерживают спокойно даже под параллельной нагрузкой компилятора.
В результате при оценке total throughput имеет смысл смотреть не только на маркетинговое «t/s», но и на латентность первого токена при горячем KV. По нашим внутренним прогонам на 512 ГБ Mac Studio Ultra с предзаполненным KV типичная задержка первого токена для длинных префиксов 30–50 тыс. токенов составляет 200–400 мс — это уже сопоставимо с гипермасштабными API и резко улучшает UX для интерактивных coding-сессий.
Отдельно стоит сказать про тепловой бюджет. Длительная генерация на ноутбуке упирается в троттлинг куда быстрее, чем на Mac Studio: после 10–15 минут устойчивой нагрузки M3 Max в портативном шасси теряет 15–25% эффективной частоты, а вместе с ней и t/s. Mac Studio Ultra в башенном корпусе с принудительным обдувом держит номинал часами. Для бенчмаркинга это означает простую вещь: цифры из README получены на холодной машине, а в реальной продовой нагрузке без отвода тепла вы их не увидите. Удалённый Mac в серверной стойке снимает этот фактор полностью.
Наконец, сетевой профиль. ds4-server при включённой Tool Calling-петле может генерировать всплески исходящего трафика на внешние MCP-серверы и инструменты. Для команды, работающей с тонкими каналами, имеет смысл поднимать ds4 рядом с целевыми сервисами — например, в EU-датацентре, если основные API ваших инструментов хостятся там. Это сокращает round-trip и делает агентные сессии заметно отзывчивее без дополнительных вложений в железо.
9. FAQ
Реально ли работает 96-ГБ MacBook? Запускается, но при 81 ГБ резидентных весов после ОС остаётся однозначное число гигабайт под контекст, что делает длинные сессии и параллельных пользователей непрактичными.
Насколько близко q2-imatrix к q4? README заявляет малое отклонение logits относительно q4 для coding-промптов; численные и adversarial тесты по-прежнему предпочитают q4.
Заменит ли ds4 Ollama? Нет. Миссии разные. Ollama остаётся менеджером моделей и рантаймом малых моделей; ds4 — фокусированный движок для одной frontier-модели.
Использовать ли контекст 1M на Mac? По README, полный 1M контекст занимает около 26 ГБ KV, поэтому 128-ГБ хост реалистично упирается в 100–300 тыс. токенов; 512 ГБ Ultra нужен для прод-сценариев с длинным контекстом.
Что с линейкой M5? Когда станут доступны M5 Ultra конфигурации с 512 ГБ unified memory, ds4 в первую очередь выиграет от роста пропускной способности памяти и улучшенной энергоэффективности; сам движок не меняется, и t/s будут масштабироваться примерно линейно по доступной полосе.
Можно ли запустить на Linux с CUDA? Да, ds4 поддерживает CUDA как secondary-бекенд для серверных GPU, но автор открыто ставит Metal на первое место, и большинство оптимизаций в первую очередь отлажены под Apple Silicon.
10. Заключение: софт созрел, узкое место — железо
ds4 показывает, что frontier-класс MoE-инференса возможен на личном Mac, с миллионом токенов контекста, tool calling и чистой OpenAI-поверхностью. Программная часть достаточно зрелая, чтобы воспринимать всерьёз. Не созрело социальное окружение вокруг 128-ГБ ноутбука или $13 000 Studio под столом: термальные пределы, циклы сна, бытовое электропитание и регулярный паттерн «меня нет в офисе сегодня — агент офлайн».
Под этот зазор и собран наш парк удалённых Mac. SFTPMAC сдаёт Apple-силиконовые машины в уровнях 128, 256 и 512 ГБ, под которые проектировался ds4, с заранее заготовленным пайплайном, NVMe нужного объёма под директорию диск-KV и launchd-уровнем доступности. Вы платите только за часы, когда петля инференса разогрета, переключаете уровень вместе с эволюцией V4, открываете OpenAI-поверхность команде через приватный mesh и держите веса и историю диалогов внутри инстанса, которым управляете сами. Для большинства команд это даёт более низкую TCO на 12 месяцев, чем покупка high-memory Mac, и одновременно снимает нагрузку по эксплуатации 24/7-узла.