DeepInfer 开源了引擎,把血管留在了家里:一份用「没开源什么」写成的价值地图
DeepSeek 开源生产推理框架 DeepInfer,但 README 第一段就承认这是离线引擎:KV cache 系统、Prefill/Decode 分离、跨副本负载均衡三件套留在了内部。本篇逐项拆解开放边界两边的清单——SWA bounded replay、DSpark、EPLB 的真实收益,出身 vLLM 的技术栈,以及 96% 缓存命中率背后的 agent 经济学。
10 月 20 日,DeepSeek 把驱动自家生产服务的推理框架 DeepInfer 放上了 GitHub,Apache 2.0,连编译脚本和评测工具一起。同一天,它还放出了配套的 deepseek-recipe——一个和官方 API 处理逻辑逐字节对齐的 Token 编解码组件。
大多数报道停在了「又开源了」这一层。但这次发布最有信息量的部分,恰恰是 README 里那句不起眼的免责声明。在「完整推理服务还需要」的标题下,它列了三样没有开源的东西:KV cache 系统、Prefill/Decode 分离、跨副本负载均衡——并注明这些「与内部基础设施紧密耦合」。
把开源的和留守的摆在一起看,这不是一次慷慨程度的度量,是一份价值地图:DeepSeek 用缺席告诉了你,推理栈里真正卡脖子的钱在哪一层。
一、开放边界两边的清单
先看给了什么。DeepInfer 支持的模型只有一个:DeepSeek-V4.1-Flash(552B 参数,发布时本专栏拆解过它的定位)。硬件两个:NVIDIA SM100(Blackwell)和华为昇腾 950。引擎能力包括优化的算子栈(FlashMLA、DeepGEMM、DeepEP、TileKernels、DeepSelect,加自定义 TileLang 内核)、Attention DP 与 MoE EP+EPLB 并行、投机解码、SWA bounded replay、异步调度、批不变推理、确定性采样、结构化输出。
再看留了什么。三件套的缺席不是疏忽。KV cache 系统决定「状态放在哪、活多久」;PD 分离决定「算力和带宽怎么分池」;跨副本负载均衡决定「流量怎么喂给这两套池子」。这三件事共同构成了调度层——引擎算得再快,钱是从调度层的利用率里省出来的。
这个分层和本专栏在 harness 那篇 里的老论点是同构的:模型(引擎)的能力是商品,围绕状态和调度做的壳才是壁垒。DeepSeek 这次等于亲手画出了那条线——引擎开源换生态,调度层自持保利润。
二、引擎里的真功夫,和它们的真实收益边界
开源的部分不是赠品,有几个设计确实值得单独记。
最漂亮的是 SWA bounded replay。 V4.1-Flash 用滑动窗口注意力,窗口内的短命 KV 驻留在节点本地内存,线上 TTL 约 180 秒,命中率超过 98%。一旦缓存失效,传统做法是重放全部历史重建状态——上下文越长越贵。DeepInfer 的做法是只重放末尾 128 个 token(默认保留 140,覆盖 SWA 窗口加最大回溯长度),用近似注意力窗口替代精确重建,重算成本从此与上下文长度无关。官方口径:应用到解码器层后,每次 Prefill 的总计算量近乎减半。
这是一笔典型的工程账:用可控的微小精度损耗,换确定性的计算量削减。精度损失客观存在,对准确率敏感的业务应该先在自己的流量上评估再启用——但「重算成本常数化」这个性质,对 agent 这种反复重发长历史的负载,价值会随上下文长度指数放大。
DSpark 则要泼半盆冷水。 它是置信度调度的投机解码:草稿模型每步出 5 个 token,一个置信度头预测每个草稿的被接受概率,调度器只验证最有价值的前缀。实测验证 token 从 5.0 降到 3.2–4.4(省约 30%),接受长度几乎不动(3.29 对 3.20),高负载下吞吐提升 4–7%,官方口径约 6%。但要注明边界:低负载时它比固定验证还慢 1.5%——这是在万亿级持续调用里持续削减无效验证算力的边际压榨,不是跨越式加速。顺带说一句,「接受长度 3.29/5」这个数字本身也值得记:投机解码的天花板比营销话术暗示的低得多。
EPLB 把 MoE 的负载不均衡压到了 1.03–1.09。 Decode 侧跑 EP64–EP128 的超节点 Wide-EP,Prefill 侧只开 EP2–EP8。一个有意思的细节是:整份文档没有出现张量并行(TP)——社区分析把它追溯到 V3 时代 H800 互联受限形成的路径依赖,这是解读而非实证,但「没有 TP 也能到这个吞吐」本身就是一份隐性的架构声明。
昇腾 950 后端值得单独一句。 同一套引擎、两个硬件后端(CUDA 13 / CANN 9.2),昇腾侧针对 CUBE、VECTOR、UB 重新组织了数据流。对「推理框架国产化」这个议题,这比任何口号都硬——它证明引擎抽象层可以真的把硬件差异吸收掉。
还有一个容易被漏掉的事实:DeepInfer 最初主要基于 vLLM 搭建,吸收了 SGLang 和 TensorRT-LLM 的设计。驱动万亿 token 级服务的生产栈,是从社区框架长出来的。另外内部版 FlashMLA 比开源版快 5–10%,DeepSeek 自己承认端到端差距在 5% 以内——开源版和自用版的距离,比大多数人想象的近。
三、真正的利润在缓存里
现在说留守三件套里最值钱的那件。
据社区对知乎技术报告的转述(注意:这些数字不在仓库里,属第三方转述),DeepSeek 的生产集群单集群日吞吐 155 万亿 token,输入缓存命中率 96%,闲时每卡每小时收入约 38 美元。这些数字无法独立核实,但 96% 这个命中率即使打个对折,也足以改变对推理生意的理解。
那套缓存系统的形态是:持久化块 KV 放在独立的 3FS 存储集群,约 100 PiB SSD,agent 流量保留 3 天、聊天流量保留 7 天。任何一台 Prefill 机器都能命中任意前缀——缓存和算力彻底解耦,路由不用照顾亲和性,存储和计算各自独立扩缩。
为什么这件事大?因为 agent 的流量形态就是反复重发越来越长的历史:指令、仓库内容、工具输出、上一轮回复。96% 的命中率意味着,那 155 万亿 token 绝不能读成「每天新计算 155 万亿 token」——大部分输入是被记住的,不是被算的。推理服务的利润率,与其说来自算得快,不如说来自记得久。这也是给 共享管道那篇 讲的账本补上另一半:管道层看 TPM 和错误率,但账本里最大的进项,其实是缓存命中。
这正好和两周前 OpenAI 单独宣布的 12 小时 prompt 缓存形成一组对照:OpenAI 按小时卖记忆,DeepSeek 按天存记忆。两家把同一个洞察做成了不同的产品形态——agent 时代,上下文缓存已经从工程优化变成了定价要素。
这也解释了为什么 KV cache 系统不开源。引擎开源了,别人拿去能跑 V4.1-Flash,但没有那 100 PiB 的记忆,就没有那 96% 的命中率——而命中率才是利润。开源引擎是交朋友,留守缓存是保生意,这条边界划得极其清醒。
四、谁该用,谁不该
最后给实操结论,按 DeepInfer 自己承认的限制来:
适合的:手里有 SM100 或昇腾 950 规模集群、要长期伺候 V4.1-Flash 这一个模型、需要确定性采样或结构化输出的团队。单模型垂直优化换来的协同设计空间(算子吃透固定 head 形状、调度理解 MoE 路由时序)是 vLLM 给不了的。
不适合的:一是小部署——官方给出的最小高效生产单元是 64 卡 Prefill 池加 64 卡 Decode 池,128 张卡起步,这套东西的设计前提就是超大规模;二是多模型业务——vLLM 支持 200 多种架构,DeepInfer 只支持 1 种,通用性是后者的全部存在理由;三是想要开箱即用在线服务的——这份发布只有离线推理示例,KV cache、PD 分离、负载均衡都要自己补,自建成本大概率高于留在 vLLM/SGLang 上。
要追问的:全文没提量化——552B 权重的显存规划只能自己估;没有和 vLLM/SGLang 的对照基准,只有自家的 Pareto 曲线,换框架前的真实收益要用 run_sweep.sh 在自己的硬件上跑出来。
回看这个月,DeepSeek 完成了模型(V4.1-Flash)、算子库、TileLang 编译器、推理引擎、API 编解码组件的五层开放,每一层都比上一层更靠近生产。这个节奏本身就是一个宣言:开源的终点不是「把家底掏空」,而是精心选择在哪一层和社区会师。 DeepInfer 选择在引擎层会师,把调度层留成了护城河——下次有人宣布「全面开源」,先去看 README 里「不包含」那一节,那里的信息量通常更大。
信息源说明:官方一手信息包括 DeepInfer GitHub 仓库(README、部署 Q&A、examples)、deepseek-recipe 仓库、DeepSeek 官方公告与知乎技术报告;SWA TTL 与命中率、EPLB 负载均衡度、DSpark 收益边界等细节数字来自官方文档与部署问答。媒体报道包括 IT 之家、鞭牛士、站长之家对开源事件的报道。第三方分析包括社区对知乎技术报告的转述与解读(155 万亿 token/日、每卡每小时 38 美元、单集群营收等数字均为社区转述,未出现在官方仓库,未经独立核实,请按传闻成色对待);昇腾适配分析与 HN 讨论属第三方观察。文中「开源边界即价值地图」的判断为本专栏观点。