Redis 之父 antirez(Salvatore Sanfilippo)用一周时间写出的一千多行 C 代码 ds4(DwarfStar 4),让 DeepSeek V4 Flash 第一次真的能跑在一台 Mac 上——开源不到三周已经攒下 11,500+ Star、30 名贡献者。但要把它跑起来的硬门槛同样很硬:96GB 统一内存是底线、128GB 才舒适,对应一台起步价 ¥3 万、顶配 ¥10 万+ 的 Mac Studio。这篇文章不再重复一遍 README,而是把三件事讲透:① ds4 为什么不是又一个 llama.cpp 包装、② 为什么 Apple Silicon UMA 决定了 Metal 是首要后端、③ 在不买 Mac Studio 的情况下,怎样用一台远程高内存 Mac 节点立刻上手 ds4。
ds4 上线不到三周(创建于 2026-05-06)已经积累 11,500+ Star、30 名贡献者,纯 C 实现、MIT 协议。但真正动手编一遍、起 server 的人远少于 Star 数——下面六个症状是几乎每个想试 ds4 的人都会撞上的真实障碍。
本地 MacBook Pro 内存压根不够:14"/16" MacBook Pro 默认 16/24/36GB,标配根本进不了 ds4 的门,连 q2 量化的 81GB 权重都装不下。
「升内存」并不便宜:把一台 MacBook Pro 升到 64GB 仍不够;升到 96GB / 128GB 需要顶配 M3/M4/M5 Max,差价直接以 ¥1 万–¥2 万计。
Mac Studio 不是「想买就能买」:128GB Mac Studio 起步 ¥3 万+;512GB M3 Ultra 顶配做 V4 Pro 的尝试动辄 ¥10 万+,对独立开发者并不友好。
Windows / Linux 工作站方案绕远:消费级 GPU 单卡 24/32GB VRAM 撑不起 ds4 的内存账;DGX Spark 类设备成本与门槛比 Mac 更高。
团队共用一台高配 Mac 很麻烦:常驻一个 ds4-server 就吃满内存,多人轮流用得排队、还容易互相污染会话状态。
买了之后跑半年又换模型:ds4 自评 alpha 质量,DeepSeek V4 Flash 也是 preview——为「试新模型」买一台 ¥10 万的 Mac,资产折旧风险高。
这六条凑在一起的结论很清楚:软件已经准备好,硬件还没追上。ds4 把「在 Mac 上本地跑 DeepSeek V4 Flash」从「不可能」变成了「可能」,但「能跑」和「人人能跑」之间,隔着一台 Mac Studio 的发票。
想清楚 ds4 的边界,比想清楚它能做什么更重要。antirez 在 README 里写得非常直白:ds4 不是通用 GGUF runner、不是别的运行时的包装、也不是框架。它只做一件事——把 DeepSeek V4 Flash 在 Metal/CUDA 上跑得又快又准——然后把这一条做到极致。下面这张表把它和你已经熟悉的本地推理方案放在一起,能看清各自的取舍。
| 方案 | 目标模型范围 | 最适合的场景 | 关键限制 |
|---|---|---|---|
| ds4 (DwarfStar 4) | 仅 DeepSeek V4 Flash(专属 GGUF) | 把 V4 Flash 跑到本机能给出的最高速度,配合编码 Agent 持续使用 | 不通用、alpha 质量、96~128GB 内存起步 |
| llama.cpp | 几乎所有主流 GGUF | 每周换模型试,关注通用性与跨平台 | 对 V4 Flash 的专属优化与持久化 KV 不如 ds4 |
| Ollama | 主流 GGUF + 一键拉取 | 团队共用本地模型,封装好 API | 性能与可控性夹在中间,长上下文场景受限 |
| vLLM / SGLang | 大多数 HuggingFace 权重 | 云端多卡部署、共享团队 endpoint | 本地 Mac 不是首要目标,跑不动单机大模型 |
| 云端 API(如 DeepSeek 官方) | 全精度 V4 Flash / Pro | 无需关心硬件、要最高质量 | 数据要发出去、按量计费、对长会话不友好 |
ds4 真正的工程差异有三件:第一是专属图执行器——围绕 V4 Flash 的张量布局、tokenizer、MoE 路由逐项写死,跑得比通用 runner 更快;第二是2-bit 非对称量化——把激进的低位精度压在「路由 MoE 专家」这类容忍误差的层(如 IQ2_XXS / Q2_K),关键层仍保留更高精度,于是 81GB 的 q2 权重能塞进 128GB 内存还能稳定跑工具调用;第三是磁盘 KV 缓存——按 token IDs 的 SHA1 索引,会话切换乃至 server 重启都保留,意味着一次昂贵的 25k token 首次 prefill 只付一次。
ds4 把「本地跑 V4 Flash」从一句口号变成一条可工程化的路径:少做一切别的事,把这一条做到 Apple Silicon 与 CUDA 上能跑的极限。
如果你看过 ds4 的 backends 文档会注意到一个细节:Metal 是默认且首要的后端,CUDA 紧随其后(且特别关注 DGX Spark / GB10),ROCm 只在独立分支里跟进,CPU 路径仅用作正确性校验。这个排序不是抽签得来的,它和 Apple Silicon 的统一内存架构(UMA, Unified Memory Architecture)直接相关。
在 Mac 上,CPU 与 GPU 共享同一块物理内存。这意味着 81GB 的 q2 GGUF 加载进系统时不需要在「主内存 → 显存」之间做一次完整拷贝,张量直接被 GPU 读取;激活、KV 状态、tokenizer 临时缓冲都在同一块地址空间里,Metal kernel 可以直接动手。对于 ds4 这种每 token 都要触碰大量稀疏专家权重的 MoE 推理,少了拷贝意味着少了不可避免的延迟下限。
反观传统离散 GPU 方案:32GB 消费级显卡当然装不下 81GB GGUF;切到 80GB H100 又意味着你需要一整台数据中心机器与配套散热——更不必说在「Mac 装在桌上」的产品形态里复制一份。这正是为什么 antirez 把 Metal 放在第一位、把 CUDA 的优化主要投在 DGX Spark / GB10 这类「统一内存形态的 NVIDIA 平台」上:他在追求的不是另一种推理框架,而是把当前消费级硬件里唯一具备「大内存可被 GPU 直接吃」的产品形态用满。
# 在一台 Apple Silicon Mac(96/128GB UMA)上从零编译并启动 ds4
git clone https://github.com/antirez/ds4.git
cd ds4
make # 默认 Metal 后端
# 下载 DeepSeek V4 Flash 的 q2-imatrix GGUF
./download_model.sh q2-imatrix # 体积 ~81GB,存入 ./gguf/,默认指向 ./ds4flash.gguf
# 起 server:100k 上下文 + 8GB 磁盘 KV 缓存
./ds4-server --ctx 100000 \
--kv-disk-dir /tmp/ds4-kv \
--kv-disk-space-mb 8192
# 默认监听 http://127.0.0.1:8000/v1/chat/completions(OpenAI 兼容)
运行起来后,把 Claude Code / Cursor / opencode 这类编码 Agent 的 OpenAI base URL 改成 http://127.0.0.1:8000/v1,就拿到了一条完全离线、不出本机的 V4 Flash 推理通路,权限边界天然落在本机。
在做硬件采购或租赁决策前,把 ds4 真实的内存账重新摆一次比看任何 benchmark 都重要。Flash q2 量化后的 GGUF 大约 81GB 落在磁盘;加载到内存里再加上激活、tokenizer、Metal kernel 缓冲,96GB UMA 是社区报告的可行下限,有人甚至把上下文窗口推到 250k;128GB 才是 antirez 在 README 里反复推荐的舒适配置。如果你想把上下文推到接近 1M token(DeepSeek V4 系列的天花板),仅 indexer 一项就要再吃约 22GB,整体 KV 额外占用 ~26GB——这是 128GB 内的硬挤压,100~300k 的上下文窗口在 128GB 上是更稳的选择。
| 形态 | 统一内存 | 能否跑 ds4 (V4 Flash q2) | 能拉多大上下文 |
|---|---|---|---|
| MacBook Pro 标配(16~36GB) | 16 / 24 / 36GB | 否,连权重都装不下 | — |
| MacBook Pro 中配(48~64GB) | 48 / 64GB | 否,权重就把内存吃满 | — |
| MacBook Pro M3/M4/M5 Max 96GB | 96GB | 勉强可行,需杀掉其他重内存进程 | 社区报告可到 ~250k |
| Mac Studio / MacBook Pro 128GB | 128GB | 舒适,留出 Agent / IDE 余量 | 100~300k 较稳 |
| Mac Studio M3 Ultra 256GB+ | 256GB+ | 很舒服,可同时跑长会话与持久 KV | 可冲击接近 1M token |
| Mac Studio M3 Ultra 512GB(V4 Pro 尝试) | 512GB | 暂不支持,ds4 当前只面向 Flash | — |
提示:磁盘 KV 缓存让首次 prefill 一次付清——把 --kv-disk-dir 放到 Mac 自带的高速 SSD 上,会话切换、server 重启甚至跨天复用都能省下成千上万 token 的 prefill 成本,这是 ds4 与传统推理服务最本质的体验差。
注意:antirez 在 README 中明确警告,当前 macOS 版本在 CPU 路径上的虚拟内存实现会引发内核崩溃,必须用 Metal 后端,不要用 make cpu 构建在 macOS 上跑推理;这也是 Apple Silicon + Metal 在 ds4 路线图里没有 fallback 的现实原因之一。
下面这组数据来自 ds4 README、DeepSeek-V4-Flash 模型卡与社区实测,一起回答一个问题:「我现在的 Mac 到底缺多少」。
把上述数字翻译成决策:自购 Mac Studio 顶配把 ¥6~10 万资产长期压在「alpha 引擎 + preview 模型」上;走云端 API 能拿全精度,但数据要发出去、长会话被 prefill 吞掉计费,本机 Agent 与权限边界也不在你手里。对既要 ds4 + V4 Flash 的「真本地推理」、又不愿把预算押在易贬值高配 Mac 上的开发者,NodeMini 的 Mac Mini 云端租赁通常是更优解:SSH 接入即用、跑完即停、数据全程在你专属实例,规格与计费见租赁价格说明,签约细节可参考SLA 与签约要点。
下面这套顺序,是「不买顶配 Mac、也要立刻体验 ds4 + V4 Flash」的最小路径。每一步都对应前文里被讨论过的一个限制,按顺序走完,整套流程不超过两小时即可拿到一条 OpenAI 兼容的本地推理 endpoint。
选规格:先按「128GB 起步」反推:2-bit 量化 + ~100k 上下文需要 128GB 才舒适,跑接近 1M 上下文则按 256GB+ 选;不要图便宜挑 96GB,否则 IDE / Agent / 浏览器一起开就崩。
开通一台 NodeMini 高内存 Mac 节点:在算力订购页面按目标内存、地区与时长选规格;秒级拨备,开通后即给一对 SSH 凭据,本地用 ssh user@host 接入。
在节点上拉源、装依赖、编译:git clone https://github.com/antirez/ds4.git && cd ds4 && make,Apple Silicon 上默认就走 Metal;macOS 不要尝试 make cpu,README 已明确警告内核崩溃风险。
下载 q2-imatrix GGUF 并设置磁盘 KV 缓存:用项目自带的 download_model.sh 拉 q2 / q2-imatrix / q4 之一;把 --kv-disk-dir 指向节点本地 SSD 的固定目录,把 --kv-disk-space-mb 给到 8~32GB,让磁盘 KV 真正生效。
把 ds4-server 接到你的编码 Agent:启动 ./ds4-server --ctx 200000 --kv-disk-dir ... --kv-disk-space-mb 16384 后,把 Claude Code / Cursor / opencode 的 OpenAI base URL 指向节点的 http://127.0.0.1:8000/v1(建议走 SSH 端口转发,不要把端口对外暴露);OpenAI / Anthropic 工具协议 ds4 原生兼容。
固化访问拓扑:SSH 公私钥 + Tailscale 等私有隧道把节点收进零信任内网;不再用就「停机不计费」,要长期跑就配 launchd 让 ds4-server 开机自启,搭配持久 KV 缓存做到「换天接着用」。
走完这六步再看自购 Mac Studio,几个局限就清楚了:折旧锁在「alpha 引擎 + preview 模型」上、本机长期跑 ds4 与日常工作抢内存、团队共享又退化成排队。对希望把 ds4 + V4 Flash 当作日常生产力工具、同时把折旧风险按需摊薄的开发者,把高内存 Mac 推到云端独占节点、用 SSH 接入做主线,NodeMini 的 Mac Mini 云端租赁通常是更优解:与 三年 TCO 决策、24/7 自动化 等场景一一对应,SSH 细节见帮助中心。
目前不能。ds4 是 DeepSeek V4 Flash 专属推理引擎,Flash 总参数 284B、激活 13B;V4 Pro 是 1.6T 总参数、49B 激活的 MoE,量化后体积远超主流 Mac 的统一内存。Pro 短期内只能依赖云端 vLLM / SGLang 类方案。
作者把 96GB 列为底线,社区有人在 96GB Mac 上跑通了 2-bit 量化甚至 250k 上下文;但要稳跑、留出 Agent 与 IDE 的余量,128GB 才舒适。要把上下文推到接近 1M token,还要再为 indexer 预留约 26GB,128GB 就吃紧了——稳健做法是按 256GB+ 规格选节点,可参考 租赁价格说明。
租用 NodeMini 的高内存 Mac 节点是目前最直接的路径:SSH 接入后 git clone、make、下载 GGUF、./ds4-server 启动即可,整个过程不超过两小时;接入方式与节点选择细节见 帮助中心,长会话与 AI Agent 常驻的最佳实践可参考 24/7 云端 Mac 自动化业务流。