一台128GB的MacBook Pro,本地跑一个284B参数的大模型,生成速度稳定在25 t/s以上。这个数字放在两年前属于天方夜谭,现在被一个C语言写成的推理引擎实现了。项目叫ds4(DwarfStar,矮星),作者是Redis之父Salvatore Sanfilippo,GitHub ID antirez。
这个项目最近重新翻红。10月3日,ds4登上Hacker News首页,260分、68条讨论。截至10月,仓库Star数已经突破1.3万,Fork超过1100,MIT协议完全开源。开发者圈子里流传着一句话:想把DeepSeek V4 Flash装进自己的电脑,ds4是当前最好的选择。
为什么一个推理引擎能火成这样
先看背景。DeepSeek V4 Flash是一个284B参数的MoE模型,全精度权重超过500GB,任何一台个人电脑都装不下。通用推理引擎llama.cpp能加载它,但速度和质量都不理想。云端的Claude和GPT很好用,问题是隐私、成本和网络延迟都攥在别人手里。
antirez给出的方案很激进:不做通用引擎,只做一个模型。ds4是一个完全自包含的专用推理引擎,专门为DeepSeek V4 Flash(以及V4 PRO)打造,用C、Objective-C和CUDA C++写成,不依赖任何现有运行时。一次只服务一个模型族,把所有优化做到极致。
antirez自己是怎么用AI开发的?他公开讲过:借助GPT 5.5,一周之内完成了ds4的核心开发,平均每天工作14小时。他平时的工作强度只有每天4到6小时,上一次这么拼还是Redis刚发布的头几个月。
设计一:非对称2-bit量化,只牺牲能牺牲的
284B模型进个人电脑,量化是唯一出路。传统2-bit量化对质量伤害很大,ds4的策略是”区别对待”。
具体分法是这样的:MoE模型里被路由激活的专家(Routed Experts)占全部参数的70%到80%,每个token只激活其中少数几个,这部分压到IQ2_XXS或Q2_K的2-bit;共享专家(Shared Experts)对所有token都执行,保留4-bit或更高精度;注意力层、投影层、路由网络属于”骨架”,完全不量化。
配合imatrix(重要性矩阵)校准——在校准集上测量每层权重对输出logits的敏感度,越重要的权重分到越多比特。结果是非对称2-bit版本在编程Agent场景下质量几乎不退化,内存占用从500GB+压到96GB到128GB之间。
一个直观对比:2-bit的routed experts负责”量要大”,4-bit以上的shared experts负责”质要稳”。量化预算花在刀刃上,这是ds4能跑起来的第一块基石。
设计二:把KV Cache放到SSD上
传统观念认为KV缓存必须待在显存或内存里,磁盘太慢。antirez直接推翻了这个假设。
DeepSeek V4的KV缓存压缩率极高,加上MacBook的SSD读取速度达到7-10GB/s,磁盘完全够格当”一等公民”。ds4把KV Cache持久化到SSD,配合live KV reuse和磁盘KV检查点,让长时间的本地Agent会话变得实际可行。
工程实现也讲究。ds4.h里定义了干净的API边界:ds4_engine是不可变的模型对象(线程安全),ds4_session是可变的推理时间线。核心函数ds4_session_sync接收完整prompt,引擎自动diff出需要重跑的部分——checkpoint是prompt前缀就只跑后缀,否则从零重建。上层应用不用关心上下文增量更新的任何细节。
这套session抽象带来的直接好处:上下文复用、会话回放、中断恢复。本地Agent连干几小时不丢状态,靠的就是它。
设计三:两台Mac串起来跑,长文本提速1.85倍
ds4内置分布式推理,用–layers N:M参数把模型按层切分到多台机器。实测数据:两台M5 Max 128GB通过雷雳5串联,跑Q4量化版Flash模型,63,819 tokens的长prompt,单机353.62 t/s的prefill速度被拉到654.79 t/s,加速比1.85倍。
生成阶段的取舍很诚实:自回归生成的每一步都要跨机器通信,生成速度反而比单机慢约20%。所以分布式的定位很清晰——跑单机装不下的大模型,加速长prompt的预填充。
速度本身也值得看。官方README的实测表格:M5 Max 128GB跑q2量化,11,707 tokens的长prompt,prefill达到463.44 t/s,生成25.90 t/s;M3 Ultra 512GB跑PRO版本32K上下文,生成9.56 t/s;DGX Spark GB10 128GB跑7,047 tokens,prefill 343.81 t/s。一台笔记本电脑吞吐这个量级,本地推理的实用性边界被往前推了一大截。
专用引擎和通用引擎,两条路线开始分叉
llama.cpp和Ollama走的是广度路线:一个引擎支持所有模型,社区价值巨大。ds4押的是反向赌注:只优化一个模型,性能和质量能推到多高。答案是显著更高——ds4用DeepSeek官方实现输出的logits向量做正确性回归,对单个模型的理解深度,通用引擎很难企及。
antirez在博客里写得更直白:”这是我玩本地推理以来,第一次用本地模型干正经事,那些活儿我以前只会交给Claude和GPT。”他把体验分两档:小模型是A,线上旗舰是B,ds4的体验明显更接近B。他还预告了后续方向:质量基准、内置编程Agent、分布式推理、更多移植,甚至按领域分版本——ds4-coding、ds4-legal、ds4-medical,按需加载。
这句话更值得记下:”AI太关键了,不能只是一种被提供的服务。”这句话可以看作本地AI运动的价值宣言。
开发者怎么选
给一个务实的结论:
- 硬件达标(Apple Silicon 128GB+,或DGX Spark这类128GB设备):ds4目前是跑DeepSeek V4 Flash的最优解,零依赖C构建,README就有60KB,上手成本低。
- 硬件不达标:Ollama、llama.cpp仍然是通用首选,小模型方案(比如12B级别的编程模型)更现实。
- 企业私有化部署:ds4的磁盘KV检查点和OpenAI/Anthropic兼容API值得认真评估,配合数据不出域的合规要求,本地推理的成本账比云端API好算。
AMD ROCm支持在社区分支维护,antirez本人没有硬件可测。CPU路径只做正确性验证,macOS上跑CPU路径会触发内核bug导致系统崩溃,别在生产环境试。
本地大模型这个故事讲了三年,直到最近才真正跨过”能用”的门槛。ds4用一周的开发时间证明了一件事:把一个模型做到极致,比支持所有模型更能改变普通开发者的选择。96GB内存、一个专用引擎、一个愿意每天干14小时的作者,三个条件凑齐,云端AI的护城河开始松动。
参考链接:
- GitHub仓库:https://github.com/antirez/ds4
- antirez博客:https://antirez.com/news/165
- HuggingFace权重:https://huggingface.co/antirez/deepseek-v4-gguf
苏公网安备32010502011527号
发表回复