antirez / ds4
antirez/ds4
DeepSeek 4 Flash 和 PRO 的本地推理引擎,支持 Metal、CUDA 和 ROCm。
项目概览
项目概述
DwarfStar(仓库名 ds4)是一个小型的本地推理引擎,专为 DeepSeek V4 Flash 优化,同时支持 GLM 5.2 以及在高内存机器上运行 DeepSeek V4 PRO。它自包含且刻意窄化,并非通用的 GGUF 运行器。模型加载、提示渲染、工具调用、KV 状态、HTTP 服务器和编码代理均一起构建和测试。项目由 Salvatore Sanfilippo(antirez)开发,使用 C 语言编写,采用 MIT 许可证。项目依赖 llama.cpp 和 GGML 的生态,但并未链接 GGML,而是参考其内核、量化格式和工程经验。
核心功能
- 多后端支持:Metal(macOS)、CUDA(NVIDIA,包括多 GPU 和 DGX Spark)、ROCm(AMD Strix Halo)。
- 模型支持:DeepSeek V4 Flash、DeepSeek V4 PRO、GLM 5.2,支持多种量化(Q2、Q4、MXFP4 等)。
- SSD 流式加载:当模型大于内存时,可通过 SSD 流式加载路由专家,降低内存需求。
- 分布式推理:支持流水线并行(跨机器拆分层)和张量并行(RDMA 或 TCP,跨两台 Mac 或 CUDA 多 GPU)。
- 原生编码代理:内置
ds4-agent,与推理引擎深度集成,支持会话保存/恢复。 - 兼容 API 服务器:
ds4-server提供 OpenAI、Anthropic 兼容端点,支持工具调用、流式输出、思考模式。 - KV 磁盘缓存:支持将 KV 状态持久化到磁盘,加速会话恢复。
- 性能基准:
ds4-bench测量不同上下文长度下的预填充和生成速度。 - 能力评估:
ds4-eval内置 92 道题目的回归测试集。 - 方向性引导:支持通过激活方向向量调整模型行为。
适用与不适用场景
适用场景:
- 在高端个人电脑(如 128GB MacBook、DGX Spark、Strix Halo)上本地运行强大的开源模型。
- 将旧 CUDA 显卡(Ada Lovelace 架构)服务器转变为多用户 LLM 服务器。
- 通过流水线并行组合多台机器以运行超大模型(如完整 PRO Q4)。
- 需要低延迟、本地优先的编码代理或 API 服务。
不适用场景:
- 作为通用 GGUF 运行器:仅支持特定模型和量化布局,任意 GGUF 文件无法运行。
- 需要跨平台广泛支持:目前主要面向 macOS 和 Linux,Windows 未提及。
- 需要稳定生产级:项目处于 beta 阶段,变化快速,可能存在不稳定。
- 需要加密或认证的分布式通信:分布式协议无加密,仅限可信网络。
技术架构与依赖
- 语言:C
- 依赖:
- 构建工具:make
- 后端:Metal(macOS)、CUDA(NVIDIA)、ROCm(AMD)
- 模型格式:GGUF(特定布局)
- 参考实现:llama.cpp 和 GGML(未链接,但参考其代码)
- 架构:
- 核心引擎
ds4.c,包含模型加载、推理图、KV 缓存管理。 - 支持多种并行模式:流水线并行、张量并行(RDMA/TCP)、CUDA 张量并行。
- 内置 HTTP 服务器、编码代理、基准测试和评估工具。
- 核心引擎
安装与快速开始
-
克隆仓库:
git clone https://github.com/antirez/ds4.git cd ds4 -
下载模型:
./download_model.sh ds4f-q2 # 96/128 GB RAM 机器 -
构建:
make # macOS Metal make cuda-spark # Linux CUDA, DGX Spark / GB10 make cuda-generic # Linux CUDA, 其他本地 CUDA GPU make strix-halo # Linux ROCm, AMD Strix Halo make cpu # CPU-only 诊断构建 -
运行:
./ds4 -p "Explain Redis streams in one paragraph."
典型使用方法
-
交互式聊天:
./ds4 ds4> Hello -
启动服务器:
./ds4-server --ctx 100000 --kv-disk-dir /tmp/ds4-kv --kv-disk-space-mb 8192 -
使用编码代理:
./ds4-agent --cuda --cuda-tensor-parallel --gpu-vram auto --gpu-devices 0,2,4,6,1,3,5,7 --model "$MODEL" --ctx 100000 -
基准测试:
./ds4-bench -m ds4flash.gguf --prompt-file speed-bench/promessi_sposi.txt --ctx-start 2048 --ctx-max 65536 --step-incr 2048 --gen-tokens 128 -
能力评估:
./ds4-eval -m ds4flash.gguf --trace /tmp/ds4-eval.txt
配置与部署要点
- 模型下载:使用
download_model.sh脚本,支持断点续传,可通过--token或HF_TOKEN认证。 - 内存管理:对于大模型,可使用
--ssd-streaming和--ssd-streaming-cache-experts调整缓存。 - 分布式部署:需要配置
--role coordinator/worker、--layers、--listen等参数,确保网络低延迟。 - 服务器配置:
--batched-session N预分配 KV 会话,--kv-disk-dir启用磁盘缓存。 - 功耗控制:
--power N可限制 GPU 使用率,降低发热和噪音。 - 安全注意:分布式协议无加密,仅限可信网络;服务器默认仅监听本地,需显式
--host 0.0.0.0才对外。
限制、风险与许可证
- 限制:
- 仅支持特定模型和量化,非通用 GGUF 运行器。
- 分布式生成速度较慢,主要适用于预填充加速和容量扩展。
- 张量并行仅支持偶数 GPU,且当前仅支持 DeepSeek V4 Flash。
- GLM 5.2 不支持某些功能(如方向性引导、
--power低于 100)。
- 风险:
- 项目处于 beta 阶段,可能不稳定。
- 分布式协议无加密,存在安全风险。
- 使用 AI 辅助开发,代码可能包含未预期行为。
- 许可证:MIT 许可证,但包含 GGML 作者的版权声明。
官方链接
- GitHub 仓库:https://github.com/antirez/ds4
- 模型下载:https://huggingface.co/antirez/deepseek-v4-gguf
- 参考项目:https://github.com/ggml-org/llama.cpp
信息来源和分析时间
- 信息来源:GitHub 仓库 README 和 CONTRIBUTING.md(截至分析时)。
- 分析时间:2025年(具体日期未提供)。