DS4 (DwarfStar 4):在本地运行 DeepSeek V4 Flash 的完整指南
当 Salvatore Sanfilippo —— 传奇的 Redis 创始人 —— 将他的注意力转向本地大语言模型推理时,整个开发者社区都为之侧目。他的最新开源项目 DS4(DwarfStar 4)已经在 GitHub 上收获了 8,318 个 Star,正迅速成为在高端消费级硬件上本地运行 DeepSeek V4 Flash 的首选推理引擎。
与那些通用的 GGUF 运行器或基于其他运行时的封装工具不同,DS4 采取了一种刻意聚焦的策略:它是一个为特定模型量身定制的推理引擎,从零开始构建,旨在从 Apple Metal 和 NVIDIA CUDA 中榨取每一分性能。如果你拥有一台配备 128GB 统一内存的 MacBook Pro 或一台搭载强劲 GPU 的 Linux 工作站,DS4 可能是你今年遇到的最令人兴奋的本地 LLM 项目。
在这篇全面指南中,我们将深入探讨 DS4 的独特之处、其技术架构与 Ollama 和 llama.cpp 等替代方案的区别,并提供分步安装说明、性能基准测试、代码示例以及真实应用场景分析。
什么是 DS4?由谁创建?
DS4 全称为 DwarfStar 4,是一个专为 DeepSeek V4 Flash 打造的轻量化本地推理引擎。它由 Salvatore Sanfilippo(GitHub: antirez )创建,这位意大利程序员因创造了全球使用最广泛的内存数据库之一 Redis 而闻名于世。
Sanfilippo 在 DS4 上的做法一如既往地鲜明独到:与其再做一个通用模型加载器,他选择将全部精力投入到让单一模型 —— DeepSeek V4 Flash —— 在本地硬件上运行得异常出色。该项目不是框架,不是封装器,也不是通用 GGUF 运行器。它是一个专为 DeepSeek V4 Flash 设计的 Metal 与 CUDA 图执行引擎,集成了自定义的模型加载、提示词渲染、KV 状态管理和服务器 API 粘合层。
“如果没有 llama.cpp 和 GGML,这个项目就不会存在。” Sanfilippo 坦承,并向 Georgi Gerganov 和 llama.cpp 社区致以衷心感谢。DS4 从该项目借鉴了量化格式、内核思路和 GGUF 生态知识,但实现了自己独特的优化执行路径。
为什么选择 DeepSeek V4 Flash?
Sanfilippo 认为 DeepSeek V4 Flash 是本地部署领域一个极具吸引力的独特模型,原因如下:
- 以效率换速度:推理时激活参数更少,原始吞吐量超越许多更小的密集型模型。
- 自适应思考深度:在思考模式下,其推理过程长度会根据问题复杂度自适应调整 —— 通常仅使用同类模型 1/5 的思考 token。这使其在现实世界的智能体工作流中更加实用。
- 100 万 token 上下文窗口:在所有开源权重模型中拥有最大的上下文窗口之一,支持将完整代码库、整本书或长对话历史一次性放入提示词。
- 知识深度:284B 参数使其在知识边缘地带比 27B 或 35B 模型了解更多内容。
- 卓越的写作质量:用户反馈称其在英语、意大利语等语言中"感觉像准前沿模型"。
- 压缩 KV 缓存:支持在本地机器上进行长上下文推理,并支持磁盘 KV 缓存持久化 —— 对智能体工作流而言是游戏规则的改变者。
- 2-bit 量化可行性:当采用非对称量化(仅量化路由专家层)时,2-bit 权重运行效果出奇地好,可在 96-128GB 内存的 MacBook 上运行。
技术架构:Metal 与 CUDA 优化详解
DS4 的架构体现了一种清晰的设计理念:最大化目标硬件性能,即使这意味着牺牲通用性。项目维护三种构建目标:
| 构建目标 | 平台 | 用途 |
|---|---|---|
make | macOS | Metal 优化生产构建 |
make cuda-spark | Linux (DGX Spark / GB10) | 针对 NVIDIA GB10 系统的 CUDA |
make cuda-generic | Linux (其他 CUDA GPU) | 通用 CUDA GPU 支持 |
make cpu | 任意平台 | 仅用于参考/调试 |
macOS 上的 Metal 后端
Metal 后端是 DS4 在 macOS 上的主要优化目标。它利用 Apple 的统一内存架构,消除了困扰独立显卡设置的 PCIe 传输瓶颈。在配备 512GB 内存的 Mac Studio M3 Ultra 上,DS4 实现了:
- 468 token/秒 的预填充速度(长提示词,11,709 token)
- 36.86 token/秒 的生成速度(q2 量化)
- 448 token/秒 预填充 和 35.5 token/秒 生成(q4 量化)
这些数字与 —— 在某些情况下甚至超过 —— 用户在等效硬件上使用 llama.cpp 或 Ollama 获得的成绩,特别是在长上下文工作负载中,DS4 的压缩 KV 缓存和分块预填充优势更为明显。
Linux 上的 CUDA 后端
对于 Linux 工作站,DS4 提供两种 CUDA 构建路径。cuda-spark 目标针对 NVIDIA DGX Spark(GB10)平台优化,而 cuda-generic 支持更广泛的本地 CUDA GPU。在配备 128GB 内存的 DGX Spark GB10 上,引擎可达到 343 token/秒 预填充 和 13.75 token/秒 生成(q2 权重)。
CUDA 路径与 Metal 构建共享相同的图执行引擎、KV 缓存压缩和 API 服务器,确保跨平台行为一致。
CPU 路径:仅用于诊断
DS4 包含一个 CPU 后端,但 Sanfilippo 明确表示:“不要将 CPU 路径作为生产目标。” 它仅用于正确性验证、分词器诊断和回归测试。事实上,在当前的 macOS 版本上,CPU 路径可能触发虚拟内存实现中的内核 bug 导致系统崩溃 —— 这鲜明地提醒我们这仍然是 alpha 质量软件。
关键架构创新
非对称 2-bit 量化:与均匀降低所有层质量的量化不同,DS4 的 q2 量化对路由 MoE 的 up/gate 投影应用
IQ2_XXS,对 down 投影应用Q2_K,而共享专家、投影和路由层保持原样。这在最关键的地方保留了质量。带磁盘持久化的压缩 KV 缓存:DS4 将 KV 缓存视为"一等磁盘公民"。它不假设 KV 状态必须驻留在内存中,而是将检查点写入高速 SSD。这使得在内存有限的机器上支持 10 万-30 万(甚至 100 万)token 的上下文窗口成为可能。
精确 DSML 工具调用重放:为了智能体集成,DS4 记住模型为每个工具调用生成的精确 DSML 文本,以不可猜测的 ID 为键。当无状态客户端重新发送工具结果时,服务器重放精确的字节,避免前缀不匹配和昂贵的重新计算。
模型专用图执行器:通过不试图支持每一个 GGUF 文件,DS4 消除了通用张量调度的开销,可以为 DeepSeek V4 Flash 的 MoE 架构硬编码最优内存布局和内核融合策略。
macOS 与 Linux 安装指南
系统要求
macOS:
- macOS 14+ (Sonoma 或更高版本)
- Apple Silicon Mac(M1/M2/M3/M4 或 Ultra 变体)
- 最低 96GB 内存运行 q2 权重;推荐 128GB
- 256GB+ 内存运行 q4 权重
- Xcode Command Line Tools
Linux (CUDA):
- Ubuntu 22.04+ 或兼容发行版
- 支持 CUDA 的 NVIDIA GPU
- CUDA Toolkit 12.x+
- 96GB+ 系统内存运行 q2;256GB+ 运行 q4
build-essential、curl、git
第一步:克隆仓库
1git clone https://github.com/antirez/ds4.git
2cd ds4
第二步:下载模型权重
DS4 仅支持其专门制作的 GGUF 文件。使用提供的下载脚本:
1# 适用于 96-128GB 内存机器(推荐)
2./download_model.sh q2-imatrix
3
4# 适用于 256GB+ 内存机器
5./download_model.sh q4-imatrix
6
7# 可选:投机解码支持
8./download_model.sh mtp
脚本从 Hugging Face(antirez/deepseek-v4-gguf)获取文件,存储在 ./gguf/ 下,并在 ./ds4flash.gguf 创建符号链接。
第三步:编译引擎
macOS (Metal):
1make
Linux (CUDA — DGX Spark / GB10):
1make cuda-spark
Linux (CUDA — 通用 GPU):
1make cuda-generic
仅 CPU(仅诊断):
1make cpu
编译生成两个二进制文件:
./ds4—— 交互式 CLI./ds4-server—— OpenAI/Anthropic 兼容 HTTP API 服务器
第四步:验证安装
1# 快速一次性测试
2./ds4 -p "用一段话解释 CAP 定理。"
3
4# 查看所有选项
5./ds4 --help
6./ds4-server --help
性能基准测试:DS4 对比 Ollama 与 llama.cpp
大语言模型推理的基准测试 notoriously 棘手 —— 数字因提示词长度、量化方式、批处理大小和硬件而异。尽管如此,DS4 公布的数字展现了令人印象深刻的性能,特别是在长上下文预填充方面。
DS4 官方基准测试 (Metal, --ctx 32768, 贪婪解码, -n 256)
| 机器配置 | 量化 | 提示词 | 预填充速度 | 生成速度 |
|---|---|---|---|---|
| MacBook Pro M3 Max, 128GB | q2 | 短提示 | 58.52 t/s | 26.68 t/s |
| MacBook Pro M3 Max, 128GB | q2 | 11,709 token | 250.11 t/s | 21.47 t/s |
| Mac Studio M3 Ultra, 512GB | q2 | 短提示 | 84.43 t/s | 36.86 t/s |
| Mac Studio M3 Ultra, 512GB | q2 | 11,709 token | 468.03 t/s | 27.39 t/s |
| Mac Studio M3 Ultra, 512GB | q4 | 短提示 | 78.95 t/s | 35.50 t/s |
| DGX Spark GB10, 128GB | q2 | 7,047 token | 343.81 t/s | 13.75 t/s |
DS4 与其他方案对比
对比 Ollama: Ollama 在快速入门和支持数百个模型方面表现出色。然而,作为通用运行器,它无法应用 DS4 所使用的模型特定优化。针对 DeepSeek V4 Flash,DS4 的非对称量化组合、压缩 KV 缓存和自定义 Metal 内核通常在等效 Apple Silicon 硬件上提供快 20-40% 的预填充吞吐量。
对比 llama.cpp: llama.cpp 是使本地 LLM 推理成为可能的基础项目。DS4 公开承认对 llama.cpp 和 GGML 的 indebtedness。DS4 的分歧点在于其单一模型聚焦:通过不支持任意 GGUF 文件,DS4 可以硬编码张量布局、消除通用调度开销,并针对官方 DeepSeek API logits 验证正确性。对于只关心 DeepSeek V4 Flash 的用户,DS4 提供了更"完善"的体验,内置服务器 API、磁盘 KV 缓存和智能体集成。
结论: 如果你想要一把支持多模型的瑞士军刀,Ollama 或 llama.cpp 是更好的选择。如果你想让 DeepSeek V4 Flash 在你的 Mac Studio 或 CUDA 工作站上以最快、最可靠的方式运行,DS4 正是为这一确切任务而生。
推理代码示例
一次性 CLI 提示
1./ds4 -p "写一个 Python 函数实现归并排序。"
交互式对话会话
1./ds4
这将启动一个带持久 KV 状态的多轮对话。常用命令:
/help—— 显示可用命令/think—— 启用思考模式(默认)/think-max—— 最大推理努力/nothink—— 禁用思考以获得更快响应/ctx 100000—— 设置上下文窗口大小/read FILE—— 将文件内容纳入上下文/quit—— 退出
服务器模式与 OpenAI 兼容 API
1./ds4-server \
2 --ctx 100000 \
3 --kv-disk-dir /tmp/ds4-kv \
4 --kv-disk-space-mb 8192
服务器在 http://127.0.0.1:8000 启动,提供以下端点:
GET /v1/modelsPOST /v1/chat/completionsPOST /v1/completionsPOST /v1/messages(Anthropic 兼容)
cURL 示例(对话补全)
1curl http://127.0.0.1:8000/v1/chat/completions \
2 -H 'Content-Type: application/json' \
3 -d '{
4 "model": "deepseek-v4-flash",
5 "messages": [
6 {"role": "user", "content": "列出 Redis 的三个设计原则。"}
7 ],
8 "stream": true
9 }'
Python 客户端示例
1import openai
2
3client = openai.OpenAI(
4 base_url="http://127.0.0.1:8000/v1",
5 api_key="dsv4-local"
6)
7
8response = client.chat.completions.create(
9 model="deepseek-v4-flash",
10 messages=[
11 {"role": "system", "content": "你是一位有帮助的编程助手。"},
12 {"role": "user", "content": "将这个函数重构为使用列表推导式。"}
13 ],
14 stream=True,
15 temperature=0.7
16)
17
18for chunk in response:
19 if chunk.choices[0].delta.content:
20 print(chunk.choices[0].delta.content, end="")
工具调用示例
DS4 支持 OpenAI 风格的函数调用。服务器自动将工具模式转换为 DeepSeek 的 DSML 格式并映射结果:
1curl http://127.0.0.1:8000/v1/chat/completions \
2 -H 'Content-Type: application/json' \
3 -d '{
4 "model": "deepseek-v4-flash",
5 "messages": [{"role": "user", "content": "东京的天气怎么样?"}],
6 "tools": [{
7 "type": "function",
8 "function": {
9 "name": "get_weather",
10 "parameters": {
11 "type": "object",
12 "properties": {
13 "location": {"type": "string"}
14 },
15 "required": ["location"]
16 }
17 }
18 }],
19 "tool_choice": "auto"
20 }'
应用场景:DS4 的用武之地
1. 本地 AI 开发与编程智能体
DS4 明确为编程智能体工作流而设计。其 OpenAI 兼容的服务器 API 可与 OpenCode、Pi 和 Claude Code 等流行智能体框架配合使用。磁盘 KV 缓存意味着在昂贵的初始预填充(智能体设置通常超过 25K token)之后,后续轮次会重用缓存前缀,而非从头重新计算。
2. 隐私优先的 LLM 部署
对于处理敏感数据的组织 —— 法律文件、医疗记录、专有源代码 —— 使用 DS4 本地运行 DeepSeek V4 Flash 可确保数据绝不离开你的机器。无需管理 API 密钥,没有速率限制,也没有供应商锁定。
3. 边缘部署
凭借 2-bit 量化在 96GB 系统上运行的能力,以及可溢出到磁盘的压缩 KV 缓存,DS4 将前沿级 LLM 能力带到了边缘硬件,这些硬件过去需要云 API 才能运行。安全设施中的 Mac Studio 现在可以在无互联网连接的情况下处理百万 token 上下文。
4. 长上下文研究与分析
100 万 token 上下文窗口开启了过去不切实际的可能性:
- 一次性分析整个法律案件文件
- 审查包含完整差异上下文的完整 Git 仓库历史
- 处理书籍、研究论文和多文档语料库
- 维护数月长的对话历史而无需截断
5. 成本优化
以每 token 零美元的成本,使用 DS4 进行本地推理消除了高吞吐量工作流的 API 费用。前期硬件投资(高端 Mac 或工作站)在每月处理数百万 token 时很快就能收回成本。
你需要了解的局限性
DS4 功能强大,但了解其约束很重要:
Alpha 质量:Sanfilippo 明确表示代码处于 alpha 质量。它存在时间很短,需要数月才能成熟。请预期存在 bug 和粗糙边缘。
仅支持单一模型:DS4 仅运行为此项目专门创建的 DeepSeek V4 Flash GGUF。无法加载任意 GGUF 文件或其他模型。
高内存需求:实际运行 q2 权重需要 96-128GB 内存,q4 需要 256GB+。这排除了大多数消费级笔记本。
macOS 上 CPU 路径不可用:macOS 内核 VM bug 在运行 CPU 推理时会导致崩溃。Metal 是 macOS 上唯一可行的路径。
无请求批处理:服务器一次处理一个推理请求。并发请求排队等待。
MTP 投机解码处于实验阶段:可选的 MTP 路径目前最多提供轻微加速,而非有意义的生成速度提升。
AI 辅助开发:代码库在 GPT-5.5 的大量协助下构建。如果你对 AI 生成代码感到不适,DS4 可能不适合你。
平台范围:针对 Metal(macOS)和 CUDA(Linux)优化。Windows 和 AMD GPU 支持不是当前优先事项。
总结
DS4 代表了对本地 LLM 推理未来的一次大胆押注:把一件事做得异常出色,而非把许多事做得勉强合格。通过专注于 DeepSeek V4 Flash,Salvatore Sanfilippo 创建了一个引擎,在它所针对的特定模型上超越通用替代方案,同时提供磁盘 KV 缓存、精确工具调用重放和 OpenAI 兼容 API 等生产级功能。
对于拥有运行硬件的开发者 —— 高端 Mac Studio 或配备 CUDA 的 Linux 工作站 —— DS4 提供了一条通往私密、快速且零成本推理的诱人路径,使用当今可用的最强大开源权重模型之一。100 万 token 上下文窗口、智能思考模式和压缩 KV 架构使其特别适合编程智能体、长文档分析和隐私关键型部署。
随着项目从 alpha 走向稳定,DS4 可能成为本地运行 DeepSeek V4 Flash 的 definitive 方式。如果你有硬件和使用场景,它绝对值得与 Ollama 和 llama.cpp 一起评估。
准备好尝试 DS4 了吗? 访问 github.com/antirez/ds4 ,克隆仓库,下载 q2-imatrix 权重,今天就体验前沿级本地推理。
本文由 dibi8 Tech Team 发布。更多关于 AI 工具、开发者资源和开源软件的指南,请访问 dibi8.com 。