欣淇
发布于 2026-05-14 / 0 阅读
0
0

⚡ ds4 (DwarfStar 4):8.3k Stars,antirez 出的 DeepSeek V4 Flash 原生推理引擎,一个 C 文件搞定本地运行

⚡ ds4 (DwarfStar 4):8.3k Stars,antirez 出的 DeepSeek V4 Flash 原生推理引擎,一个 C 文件搞定本地运行

项目地址:github.com/antirez/ds4 | ⭐ 8,345 | 🛠 C | Owner: antirez | 📜 MIT | 🆕 2026-05-06

老实说,要在本地跑 DeepSeek V4 Flash 这个 284B 的 MoE 模型,之前的路子无非两个:要么等 llama.cpp 跟进支持,要么用官方那套依赖一大堆的推理栈。但 Redis 的作者 antirez 不这么想——他直接拿 C 写了一个从头到尾只伺候 DS V4 Flash 这一个模型的推理引擎,完全不依赖 GGUF loader 或通用运行时。

这玩意儿叫 ds4(DwarfStar 4),上周刚开源,不到一周就 8.3k stars。不是 GGUF 套壳,不是 llama.cpp 分支,就是一个纯自包含的 .c 推理引擎。最骚的是它用 2-bit 量化就能在 96GB RAM 的 MacBook 上跑 V4 Flash,还带着 100k~300k token 的上下文窗口。

为什么 antirez 要自己写引擎?

好问题。市面上已经有 llama.cpp、MLC、TensorRT-LLM 一堆方案。antirez 的理由其实很简单:DeepSeek V4 Flash 值得一个专属引擎

  • 它比同规模稠密模型更快(MoE 结构,激活参数少)
  • 思考模式下,thinking token 量跟问题复杂度成正比,不像某些模型随便就吐 10k thinking tokens
  • 100 万 token 上下文窗口
  • KV cache 压缩率极高,可以存到磁盘上跨会话复用
  • 2-bit 量化下质量不崩,因为只量化了 routed MoE experts,shared experts 和 routing 保持原精度
  • 一行命令跑起来

    # 下载模型(2-bit 量化,适合 96/128GB Mac)
    ./download_model.sh q2-imatrix
    
    # 编译(macOS Metal)
    make
    
    # 交互式对话
    ./ds4
    
    # 一行命令推理
    ./ds4 -p "Explain how Redis replication works in one paragraph."
    

    编译时自动检测 Metal(macOS)或 CUDA(Linux)。CPU 模式也有,但 antirez 说了——make cpu 主要用来做正确性验证,macOS 上跑 CPU 路径会让内核 crash,别试。

    跑个 API Server,当本地 ChatGPT 用

    ds4 自带一个 OpenAI/Anthropic 兼容的 HTTP 服务器:

    # 启动服务,100k 上下文,KV cache 存磁盘
    ./ds4-server --ctx 100000 --kv-disk-dir /tmp/ds4-kv --kv-disk-space-mb 8192
    

    然后用 curl 调就完事了:

    curl http://127.0.0.1:8000/v1/chat/completions \
      -H 'Content-Type: application/json' \
      -d '{
        "model": "deepseek-v4-flash",
        "messages": [{"role": "user", "content": "List three Redis design principles."}],
        "stream": true
      }'
    

    也支持 Anthropic 的 /v1/messages 端点,Claude Code 类的 agent 可以直接连。

    接入 Coding Agent

    OpenCode 配置示例:

    {
      "provider": {
        "ds4": {
          "name": "ds4.c (local)",
          "npm": "@ai-sdk/openai-compatible",
          "options": {
            "baseURL": "http://127.0.0.1:8000/v1",
            "apiKey": "***"
          },
          "models": {
            "deepseek-v4-flash": {
              "name": "DeepSeek V4 Flash (ds4.c local)",
              "limit": {
                "context": 100000,
                "output": 384000
              }
            }
          }
        }
      }
    }
    

    PiClaude Code 也可以直接连,ds4-server 的 API 兼容层处理了 DSML tool call 格式的转换——这其实是最麻烦的部分,因为 DeepSeek 的 tool call 用 DSML 文本格式,而 agent 客户端期望标准 JSON。ds4 做了 exact replay,确保 tool call 的字节前缀跟 KV cache 完全匹配。

    速度参考

    | 机器 | 量化 | Prefill | 生成 |

    |------|------|---------|------|

    | M3 Max 128GB | q2 | 58.52 t/s | 26.68 t/s |

    | M3 Ultra 512GB | q2 | 84.43 t/s | 36.86 t/s |

    | M3 Ultra 512GB | q4 | 78.95 t/s | 35.50 t/s |

    | DGX Spark 128GB | q2 | 343.81 t/s | 13.75 t/s |

    Prefill 速度快到离谱——M3 Ultra 上 q2 prefill 跑到 468 t/s(长上下文)。生成速度 26-37 t/s,日常编码完全够用。

    几点观察

  • KV cache 磁盘化是 ds4 设计里最特别的思路——antirez 认为现代 Mac 的 SSD 够快,KV cache 不应该只在 RAM 里,跨会话可以复用。服务重启后之前的 cache 还能命中。
  • Directional steering — 支持单向量激活方向干预模型行为,比 fine-tuning 快得多,可以调语气、调详细程度,甚至用来做安全对齐。
  • 项目全程由 GPT 5.5 辅助开发,antirez 非常坦诚地说了这点。这不是偷懒——一个写过 Redis 的人用 AI 辅助写 C 推理引擎,说明这工具确实成熟到能做正经基础设施了。
  • 总结

  • ds4 是 antirez 写的纯 C 原生推理引擎,只服务 DeepSeek V4 Flash 一个模型
  • 2-bit 量化 + KV cache 磁盘化,96GB MacBook 就能跑 300k 上下文
  • 自带 OpenAI/Anthropic 兼容 API,直接接入 OpenCode、Pi 等 coding agent
  • 刚开源一周,alpha 质量,但能用。follow antirez 的节奏,这项目很快会稳定下来

  • 评论