Redis 之父 antirez 出手!DwarfStar 如何用 2000 行 C 代码让 DeepSeek 4 在你的 MacBook 上飞奔

Redis 之父 antirez 出手!DwarfStar 如何用 2000 行 C 代码让 DeepSeek 4 在你的 MacBook 上飞奔

Ren Echo Lv4

当 Redis 之父 Salvatore Sanfilippo(网名 antirez)在 GitHub 上悄然提交第一个 commit 时,没人预料到这个名叫 DwarfStar(ds4)的项目会在短短两个月内狂揽 15000+ Stars。它不是又一个 GGUF 通用加载器,而是一个专为 DeepSeek V4 Flash/PRO 打造的极简推理引擎——用纯 C 写成,原生支持 Metal、CUDA、ROCm 三大 GPU 后端,甚至能在 64GB 的 MacBook 上通过 SSD 流式加载跑起 284B 参数的巨模型。

DwarfStar 项目 Logo — antirez/ds4

第一章:为什么我们需要又一个推理引擎?

2026 年的本地 LLM 推理赛道已经相当拥挤:llama.cpp、vLLM、MLX、Exo……每一个都是成熟项目。antirez 为什么还要从零开始?

答案藏在 DwarfStar README 的一句话里:

“This project takes a deliberately narrow bet: one model at a time, official-vector validation, long-context tests, and enough agent integration to know if it really works.”

这是一个极度聚焦的工程哲学:

维度 llama.cpp DwarfStar (ds4)
定位 通用 GGUF 推理框架 DeepSeek V4 专属引擎
模型支持 数百种 仅 Flash + PRO
量化策略 通用方案 非对称 2bit(仅量化路由专家)
KV 缓存 常规方案 压缩稀疏注意力 + 磁盘持久化
Agent 集成 内置原生编码 Agent

这种”一个模型打穿”的策略,让 DwarfStar 在 DeepSeek V4 上的推理效率远超通用方案。

第二章:核心架构硬核拆解

2.1 DeepSeek V4 的压缩稀疏注意力(CSA)

要理解 DwarfStar 为什么快,首先要理解 DeepSeek V4 的注意力机制。V4 使用了一种称为 Compressed Sparse Attention (CSA) + Heavily Compressed Attention (HCA) 的混合设计:

1
2
3
4
5
6
7
8
9
┌─────────────────────────────────────────────┐
│ Layer 0-1: 仅原始 128-token 滑动窗口 │
│ Layer 2+: 偶数层 ratio-4 压缩注意力 │
│ 奇数层 ratio-128 重度压缩注意力 │
├─────────────────────────────────────────────┤
│ 原始窗口: 最近 128 tokens 的高精度 KV │
│ ratio-4: 每 4 个 token 压缩为 1 行 + 索引器 │
│ ratio-128: 每 128 个 token 压缩为 1 行 │
└─────────────────────────────────────────────┘

这意味着什么?1M token 的上下文窗口,不需要为每个 token 在每一层都维护完整的 KV 缓存。DwarfStar 精确实现了这套机制,关键常量包括:

  • 43 层 Transformer
  • 128 token 原始滑动窗口
  • 64 个索引头,每头 128 维
  • Top-512 压缩行选择

DeepSeek V4 架构示意

2.2 非对称 2bit 量化:不是玩笑

DwarfStar 的 2bit 量化不是简单的全模型暴力压缩。它采用了一种精心设计的非对称策略:

  • 路由 MoE 专家(占模型体积的大头):up/gate 用 IQ2_XXS,down 用 Q2_K
  • 共享专家、投影层、路由层:保持原始精度不变

这种策略的结果是:模型体积从 ~200GB 压缩到 ~81GB(Flash),同时质量损失极小——antirez 声称 2bit 量化后模型在编码 Agent 和工具调用场景下表现依然可靠。

2.3 SSD 流式加载:把磁盘变成”慢内存”

这是 DwarfStar 最具颠覆性的设计之一。传统观点认为:模型必须完全装进内存才能运行。DwarfStar 打破了这个限制:

1
2
3
4
5
6
7
8
┌─────────────────────────────────────────┐
│ SSD 流式加载架构 │
├─────────────────────────────────────────┤
│ 常驻内存: 非路由权重 + KV缓存 + 图暂存 │
│ 按需加载: 路由 MoE 专家(缓存管理) │
│ 来源: GGUF 文件直接读取 │
│ 策略: 推理当前层时预加载下一层 │
└─────────────────────────────────────────┘

在 64GB MacBook 上运行 81GB 的 Flash 模型:

1
./ds4 -m ./ds4flash.gguf --ssd-streaming --ssd-streaming-cache-experts 32GB --ctx 32768 --nothink

现代 Mac SSD 的读取速度让缓存未命中变得可以忍受。这不是”能不能跑”的问题,而是一个速度连续谱:内存越多越快,但少了也不会崩。

第三章:三大 GPU 后端性能实测

DwarfStar 是目前唯一一个同时原生支持 Metal、CUDA、ROCm 三大后端的 DeepSeek 推理引擎。

性能基准(Metal,单次运行)

机器 量化 提示 Prefill 生成速度
MacBook Pro M3 Max 128GB q2 短文本 58.52 t/s 26.68 t/s
MacBook Pro M3 Max 128GB q2 11709 tokens 250.11 t/s 21.47 t/s
MacBook Pro M5 Max 128GB q2 短文本 87.25 t/s 34.27 t/s
MacBook Pro M5 Max 128GB q2 11707 tokens 463.44 t/s 25.90 t/s
Mac Studio M3 Ultra 512GB q2 短文本 84.43 t/s 36.86 t/s
Mac Studio M3 Ultra 512GB PRO q2 32768 tokens 138.82 t/s 9.56 t/s
DGX Spark GB10 128GB q2 7047 tokens 343.81 t/s 13.75 t/s

关键发现:M5 Max 的生成速度比 M3 Max 提升了约 **28%**,而 M3 Ultra 凭借 512GB 统一内存可以流畅运行 PRO 模型。

分布式推理:双机协作

DwarfStar 还支持分布式推理——将 Transformer 层拆分到多台机器上运行:

提示长度 单机参考 双 MacBook (Thunderbolt 5) 加速比
9421 tokens 421.70 t/s 582.22 t/s 1.38x
28684 tokens 405.30 t/s 674.16 t/s 1.66x
63819 tokens 353.62 t/s 654.79 t/s 1.85x

PRO 模型在 M3 Ultra 上的性能

第四章:全流程跑通指南

4.1 环境准备

1
2
3
4
5
6
7
8
9
10
11
# macOS (Metal)
git clone https://github.com/antirez/ds4.git
cd ds4
make

# Linux + NVIDIA GPU
make cuda-spark # DGX Spark / GB10
make cuda-generic # 其他 CUDA GPU

# Linux + AMD GPU (Strix Halo)
make strix-halo

4.2 下载模型

1
2
3
4
5
6
7
8
# 96/128GB 内存机器(推荐)
./download_model.sh q2-imatrix

# 256GB+ 内存机器
./download_model.sh q4-imatrix

# 512GB 内存机器(PRO 模型)
./download_model.sh pro-q2-imatrix

4.3 启动推理

1
2
3
4
5
6
7
8
# 交互式聊天
./ds4

# 一次性提问
./ds4 -p "用 Python 实现一个 LRU 缓存"

# 启动 OpenAI 兼容 API 服务器
./ds4-server --ctx 100000 --kv-disk-dir /tmp/ds4-kv --kv-disk-space-mb 8192

4.4 集成编码 Agent

DwarfStar 的 server 兼容 OpenAI、Anthropic 和 Responses API,可以直接对接主流编码 Agent:

Codex CLI:

1
2
3
4
[model_providers.ds4]
name = "DS4"
base_url = "http://127.0.0.1:8000/v1"
wire_api = "responses"

Claude Code:

1
2
export ANTHROPIC_BASE_URL="http://127.0.0.1:8000"
export ANTHROPIC_MODEL="deepseek-v4-flash"

opencode / Pi 等工具同样支持,只需配置 OpenAI 兼容端点即可。

4.5 内置编码 Agent

DwarfStar 还自带一个原生编码 Agent ds4-agent,与其他方案不同的是:推理直接在 Agent 内部控制,没有 socket/API 边界,会话状态就是磁盘上的 KV 缓存。

1
./ds4-agent --chdir /path/to/ds4

支持 /save/list/switch 等会话管理命令,完整 KV 会话可以无 prefill 恢复。

第五章:那些让人眼前一亮的细节

功耗控制

1
2
./ds4 --power 50    # 限制 GPU 使用率到 50%,降低发热和噪音
./ds4-agent --power 70

通过在推理层间插入微小 sleep 来控制 GPU 占用率,不影响输出质量。

方向性引导(Steering)

无需微调,通过单向量激活方向调整模型行为——让它更简洁、更详细,或者限制特定领域的回答。这对安全研究和企业场景特别有用。

磁盘 KV 缓存

Server 模式支持将 KV 缓存持久化到磁盘,重启后可以恢复会话,避免重复 prefill 长上下文。工具调用的精确 DSML 重放也保存在缓存中,确保 Agent 会话的字节级一致性。

第六章:项目现状与展望

DwarfStar 目前仍处于 Beta 阶段(Agent 部分为 Alpha),但已经展现出几个明确的趋势:

  1. “一个模型打穿”的哲学:当更好的开源模型出现时,DwarfStar 可能会切换目标模型,但策略不变
  2. AI 辅助开发:项目坦诚地声明”由 GPT 5.5 强力辅助开发”,这本身就是 2026 年软件开发的缩影
  3. KV 缓存是磁盘公民:压缩 KV 缓存 + 快速 SSD 的组合,正在重新定义”模型必须装进内存”的旧观念
  4. 分布式推理平民化:两台 MacBook 通过 Thunderbolt 5 就能运行 PRO 级别模型

📺 相关视频


项目地址github.com/antirez/ds4

一句话总结:DwarfStar 证明了一件事——当你足够聚焦,2000 行 C 代码就能撬动一个 284B 参数的模型在笔记本上流畅运行。这不是工程的胜利,而是设计哲学的胜利。

  • 标题: Redis 之父 antirez 出手!DwarfStar 如何用 2000 行 C 代码让 DeepSeek 4 在你的 MacBook 上飞奔
  • 作者: Ren Echo
  • 创建于 : 2026-06-26 09:30:00
  • 更新于 : 2026-06-27 10:06:11
  • 链接: https://renecho-blog.pages.dev/2026/06/26/2026-06-26-antirez-ds4-dwarfstar-inference/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论