Tools

antirez 出手了:ds4 用非对称 2bit 量化把 DeepSeek V4 塞进你的 Mac

5 min read ·

10 月 2 日,Hacker News 上出现了一个自带光环的 Show HN:Redis 之父 Salvatore Sanfilippo(antirez)的新项目 ds4——一个用 C 写的本地推理引擎,目标是把 DeepSeek V4.1 Flash、GLM 5.x、Qwen3.8 这几个前沿开源 MoE 模型塞进高内存的个人机器。帖子当天拿下 125 分,评论区最大的争论点是:都 2026 年了,为什么还要手写一个不做通用 GGUF 的推理引擎?

看完官方文档和基准数据,答案其实很清晰:这不是又一个 llama.cpp,而是一次「窄口径换极致」的赌注。

设计哲学:刻意做窄

ds4 官网开宗明义:它不是一个通用 GGUF 运行器,只跟随一小撮模型族,每个支持的布局都经过端到端验证、对照官方模型输出校验。支持的硬件也很明确:

  • Apple Silicon Mac(64GB 起步,Metal 后端)
  • NVIDIA DGX Spark 或通用 CUDA Linux 机器
  • AMD Strix Halo 平台(ROCm 后端)

这种窄口径让 antirez 可以针对每个目标模型做非对称 2bit 量化:把压缩压力集中在可路由的专家参数上(MoE 里占参数量大头的部分),而注意力等关键共享路径保持更高精度。这是 DeepSeek V4 Flash 这种几百亿参数的大 MoE 能在 128GB 机器上常驻的核心。

三个有意思的工程决策:

1. KV 缓存是磁盘公民。 长前缀缓存到 SSD,按 prompt 哈希恢复。重启会话不必重新预填整个上下文——对 Agent 工作流来说这是杀手级特性。

2. 一个引擎三个接口。 ./ds4 是聊天命令行,./ds4-server 起本地 API 服务,./ds4-agent 跑持久化编码会话,三者共享同一份模型状态和缓存。

3. API 双协议。 ds4-server 同时暴露 OpenAI 风格和 Anthropic 风格端点,意味着 Claude Code、Codex CLI、OpenCode、Pi 这些主流编码 Agent 改个 base URL 就能接上本机模型。

实测数据怎么说

官方基准表里最有代表性的一行是 M5 Max 128GB:

机器上下文预填充生成
M5 Max 128GB2,048 token790 token 每秒39.4 token 每秒
M5 Max 128GB65,536 token398 token 每秒27.6 token 每秒
DGX Spark 128GB2,048 token825 token 每秒18.1 token 每秒

32K 上下文下 M5 Max 的综合参考值是生成 34.4 token 每秒、预填充 557 token 每秒。翻译成体感:长上下文下 27 到 34 token 每秒的生成速度已经越过「舒服阅读」的门槛,接近云端 API 的常见流式速度;预填充 400 到 800 的水平意味着塞一个大仓库上下文只需十几秒。

硬件适配矩阵还透露了一个激进的玩法:内存不够时可以从 SSD 流式加载权重——512GB 的 Mac Studio 跑 V4.1 的 Q4 版本,普通机器用 Q2 版本从 SSD 流式跑,速度换容量。甚至支持两台机器张量并行(2 倍 512GB)。

快速上手

git clone https://github.com/antirez/ds4
cd ds4 && ./download_model.sh ds4f-q2
make            # macOS Metal 后端
make cuda-spark # Linux DGX Spark
./ds4                    # 命令行聊天
./ds4-server --ctx 100000  # 起 API 服务

整个过程没有 Python、没有依赖地狱,这是 antirez 式 C 工程的典型风格——他在博客里多次表达过对「AI 时代重拾底层编程」的偏好,ds4 是这份宣言最完整的落地。

部署实践与注意事项

真正把它放进日常工作流之前,有几件事值得提前想清楚。

硬件预算是第一道门槛。 官方硬件矩阵把 32GB 机器明确划在支持范围之外,64GB 是入门线,128GB 才是「舒展区」——可以同时装下 GLM 5.3 Q2 与 Qwen3.8 Q4,或者用 SSD 流式方式跑更大的 V4.1 Q2。换句话说,这是一台面向 Mac Studio、DGX Spark、Strix Halo 桌面平台的工具,不是给轻薄本准备的玩具。买硬件前先去官网的 fit check 页面对着自己的内存档位看一遍,文档给出的都是保守可行的起始路径。

质量校验的思路值得学习。 ds4 对每个支持的量化布局都「对照官方模型输出做端到端校验」,这个做法比笼统地报一个困惑度数字更诚实——它验证的是「这个布局在这个机器上输出是否与官方行为一致」。但也要清醒:独立第三方评测目前还很少,2bit 量化在长链路 Agent 任务上的累积误差没有公开数据,关键业务上先跑几组对照再切流量的老规矩仍然适用。

视觉输入已经就位。 引擎栈里包含 vision 支持,多模态任务可以在本机完成,这对需要截图理解的编码 Agent 场景(比如看报错截图、读设计稿)是实打实的能力补充。

Tensor parallelism 与 session batching 都在特性列表里,意味着它不只服务单用户场景:小团队可以把一台大内存机器变成共享推理节点,多个会话批量调度,摊薄硬件成本。

数据主权视角:为什么这个方向重要

把视角拉高一点,ds4 出现的时机很有意思。云端 API 的价格战已经把「用模型」的成本打到很低,但三类需求仍然在把用户往本地推:

数据不出域是第一类。医疗、法律、金融行业的团队对「代码和文档上传到第三方 API」有硬性合规约束,本地引擎是唯一解。

长期成本结构是第二类。重度 Agent 用户每天消耗的 token 量级早已超出订阅覆盖范围,一台一次性投入的 128GB 机器跑 Q2 模型,边际成本接近电费。

可复现性是第三类。做评测、做微调实验的团队需要固定模型版本和确定性的服务环境,云端 API 的静默更新对实验是灾难。

antirez 在过去一年的博客里反复阐述过一个观点:AI 时代恰恰是底层系统编程复兴的时代——当所有人都往上层堆抽象时,把推理引擎这种「新式数据库」写好的人会掌握稀缺能力。ds4 是这份论点目前最完整的作品展示。

和竞品怎么选

本地推理赛道目前的格局:llama.cpp 是通用王者,GGUF 生态无可替代;MLX 系工具是苹果芯片上的顺手选择;Janus 这类新秀专攻 Vulkan 跨厂显卡;而 ds4 的生态位是「高内存机器上前沿大 MoE 的专用引擎」。

选它的条件很具体:你有 64GB 以上内存的机器、想跑 DeepSeek V4.1 / GLM 5.x / Qwen3.8 三族之一、且在意 Agent 场景下的缓存续跑和 API 接入。三个条件缺一个,llama.cpp 仍是更稳妥的答案。

💡 值得关注的信号:当模型能力趋同、云端 API 定价战白热化时,antirez 用一个精悍的纯 C 代码库证明了一件事——「把前沿模型真正搬到自己机器上」的工程门槛正在快速下降。对在意数据主权和长期成本的团队,这个方向值得持续跟踪。

Frequently asked questions

ds4 和 Ollama、llama.cpp 是竞争关系吗?
不是同一条赛道。llama.cpp 追求通用 GGUF 兼容,什么模型都能跑;ds4 刻意做窄,只支持 DeepSeek V4/V4.1、GLM 5.x、Qwen3.8 几个模型族,每个布局都对着官方输出做端到端校验。代价是灵活性,收益是针对这几个大 MoE 的量化策略和内存布局可以做到极致。
普通笔记本能跑吗?
基本不行。官方硬件矩阵的起点是 64GB 内存的 Apple Silicon 或同级设备,DeepSeek V4 Flash 的 Q2 量化是基线配置;128GB 才能舒展地跑 GLM 5.3 Q2 和 Qwen Q4。32GB 机器建议直接看它文档里的排除说明。这是一台面向高内存工作站与 Mac Studio 级别的工具。
KV 缓存存 SSD 有什么实际价值?
对 Agent 场景价值极大:长系统提示词和长历史不用每次重启都重新预填充,引擎按 prompt 哈希把前缀缓存到 SSD,恢复会话时直接加载。对每天反复开合编码 Agent 的开发者,这能省掉每次几分钟的等待,也是它与通用推理引擎差异最大的单点设计。
怎么把它接进现有的编码 Agent?
ds4-server 同时说 OpenAI 和 Anthropic 两种风格的 API,官方文档给了 Codex CLI、Claude Code、OpenCode 和 Pi 的接入配置,改一下 base URL 指向本机即可。三个入口分别是 ./ds4 命令行聊天、./ds4-server 本地 API 服务、./ds4-agent 持久化编码会话。
2bit 量化的质量损失可以接受吗?
ds4 的思路是非对称量化:把压缩压力放在可路由的专家参数上,关键共享路径保持更高精度,这也是它能塞进消费级内存的核心。官方以「对照官方模型输出校验每个布局」作为质量兜底,但独立评测还很少,建议在关键任务上先跑几组对照再决定是否依赖。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.