近日,Redis 创始人 Antirez 在 GitHub 上开源了一个名为 ds4 的高效推理项目。该项目仅用数千行纯 C 代码,便成功在配备 128GB 内存的 M3 Max MacBook Pro 上,完整运行了上下文长度高达 100 万 token 的「DeepSeek V4 Flash MoE 大模型」,并能稳定支持 coding agent 等多轮循环任务。
关键在于,ds4 并非简单的模型量化工具。它通过「非对称优化」与「硬件特性深度绑定」的组合策略,巧妙地打破了「长上下文推理必须依赖海量 GPU 显存」的传统瓶颈,为大模型在消费级硬件上的部署提供了新思路。
具体而言,ds4> 并非像 llama.cpp 或 vLLM 那样的通用推理引擎,而是专为 DeepSeek V4 Flash 模型量身定制的。其核心技术可归纳为以下三点:
非对称 2-bit 量化技术
其核心策略是对模型中占比超过 90% 的参数——即 MoE 架构中的 routed experts 部分——进行激进的 2-bit 量化(up/gate 使用 IQ2_XXS,down 使用 Q2_K)。而模型的关键路径(如路由门控、共享专家层、投影层等)则全部保留原始精度(BF16)。
这是因为 MoE 模型的专家参数虽然庞大,但激活稀疏。对这部分进行量化,对最终输出质量的影响远小于量化那些参与密集计算的核心模块。Antirez 的实测验证表明:
与传统全域 2-bit 量化会导致模型质量骤降不同,这种「压缩主体,保留精华」的非对称方案,成功将模型内存占用压缩至 128GB 以内,同时将困惑度(perplexity)增长和质量损失控制在可接受范围内。
因此,这是一种基于模型结构感知的精准量化,而非粗暴的通用低比特压缩。
KV Cache 兼容 SSD 存储
ds4 创新性地将 KV Cache 设计为「内存活跃状态」与「磁盘持久化前缀缓存」相结合的模式。它允许将庞大的 KV Cache 移至 SSD 存储,使用 SHA1 哈希的 token 前缀作为键,将压缩后的 KV 行直接进行读写落地(避免使用 mmap,以减轻 macOS 虚拟内存压力)。
当前会话仍会在内存中保留一个活跃的 KV 检查点,但不同会话之间、系统重启后、长前缀复用都可以依赖磁盘上的 KV cache 快速恢复,从而避免了每次都需要从第一个 token 开始重新进行预填充(prefill)。
得益于 Apple Silicon 的统一内存架构与超高速 NVMe SSD,其带宽和延迟的组合表现远超普通 PC 场景。虽然 100 万 tokens 长上下文产生的 KV Cache 体量巨大(可达数十到上百 GB),但 SSD 的高吞吐能力足以让文本生成速度仅轻微下降。
这堪称一种范式转变。业界通常认为 KV Cache 必须完全驻留内存,否则延迟会不可接受。但 Antirez 利用磁盘作为“扩展内存”的测试效果证明,在特定硬件、配合压缩和优化 I/O 的条件下,这一方案是完全可行的。
纯 Metal 原生高性能实现
整个推理引擎仅有几千行 C 代码和 Metal shader,没有任何通用框架的开销(不依赖 GGML/llama.cpp 等库):
- Metal worker 采用单线程序列化推理,避免竞态条件,保证稳定性。
- 仅支持官方发布的 DeepSeek V4 Flash GGUF 格式(q2 / q4 两种量化版本),张量布局和元数据均为定制。
- 额外支持实验性的 MTP(推测解码),但目前提升有限。
根据项目提供的性能基准测试,在 M3 Max 128GB 上运行 q2 量化版本的实测数据如下:
- 短提示词:预填充速度 58.52 tokens/秒,生成速度 26.68 tokens/秒
- 超过 1.1 万 token 的长提示词:预填充速度 250+ tokens/秒,生成速度 21.47 tokens/秒
约 27 tokens/秒 的生成速度听起来并不极致,但对于 agent 循环(思考 - 调用工具 - 继续生成)场景来说已经足够。毕竟智能体任务并非实时对话,在多轮迭代的复杂任务下,这个性能是可以接受的。
尽管存在一些限制,但核心突破在于「仅需 128GB 内存的 M3 Max」就能运行百万上下文大模型!配合其开箱即用的 OpenAI/Anthropic 兼容 API 服务器(ds4-server),可以直接对接 OpenClaw、Claude Code 等工具链,实现用云端高端模型进行规划与审查,本地模型执行具体任务的混合应用模式。
当然,27 t/s 的速度确实更适合 agent 类任务,而非高并发或实时对话场景。对于 128GB 机型,实际推荐的实用上下文长度在 10万–30万 token 之间(100万是理论极限,需为系统和其他应用预留内存)。此外,目前它仅支持 macOS(Metal),暂不支持 Windows 和 Linux,但据称 CUDA 版本正在开发中。无论如何,这确实为本地大模型部署指出了一个极具潜力的新方向。
目前已有许多开发者实测成功运行了该项目,在 128GB M3 Max 上下载 q2 版本即可直接体验。不过测试中也发现,在 q2 量化下,工具调用(tool calling)偶尔会出现幻觉结束 token 或解析器状态异常的情况。
另有社区测试显示,在默认 DS4 设置下,实测生成速度可达 14–15 t/s。在完成 6.2 万 token 上下文预填充后的实际编码对话中,内存使用量稳定在 85GB 左右。对于一个完整的 10 万 token 上下文窗口,磁盘缓存约为 8GB。目前的主要限制在于,每次触发 KV Cache 压缩时,需要等待大约「每 1 万 token 上下文 1 分钟」的压缩时间才能继续操作。
根据社区反馈,甚至在 96GB 内存的机器上经过调优也能运行。因此,整体性能看起来还有进一步的优化空间。针对 Metal 4 / M5 的预填充优化、Linux 版本构建支持、代码错误修复等工作也仍在项目路线图中持续推进。
