antirez / ds4

antirez/ds4

open_in_new前往仓库

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 服务器、编码代理、基准测试和评估工具。

安装与快速开始

  1. 克隆仓库:

    git clone https://github.com/antirez/ds4.git
    cd ds4
    
  2. 下载模型:

    ./download_model.sh ds4f-q2   # 96/128 GB RAM 机器
    
  3. 构建:

    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 诊断构建
    
  4. 运行:

    ./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 仓库 README 和 CONTRIBUTING.md(截至分析时)。
  • 分析时间:2025年(具体日期未提供)。