科技资讯

DeepSeek 开源 DeepInfer:把跑 V4.1-Flash 的生产推理框架整包放了出来

开源的是中间层,不是权重

DeepSeek 10 月 20 日把内部推理框架 DeepInfer 全面开源,License 为 Apache 2.0,同时放出配套的 deepseek-recipe。后者负责 prompt 渲染、token 编解码与流式解析,作用是把社区部署的输出对齐到 DeepSeek 官方 API 的行为,License 用 MIT。

这件事的分量在于开源对象换了。过去两年 MaaS 厂商的通行做法是放权重、不放服务栈:模型谁都能下载,但要跑到官方那个吞吐和延迟,得自己重写算子、调度与并行策略。DeepSeek 是头部模型公司里第一个把自己的生产推理框架整包放出来的。用他们自己的话说,大模型的能力边界由模型本身划定,但如何以合理成本提供超大规模服务,取决于一个长期不被公众了解的中间层。

里面有什么

DeepInfer 基于 vLLM 改造,README 承认主要基座来自 vLLM,并参考了 SGLang 与 TensorRT-LLM。集成的自研组件包括 FlashMLA、DeepGEMM、DeepEP、TileKernels、DeepSelect 以及一批 TileLang 自定义算子,覆盖注意力、矩阵乘、专家通信与 token 路由。

调度层面给了几样实用东西。DSpark 推测解码,一次提议多个 token 再用置信度安排验证,草稿长度由环境变量控制,默认 5 个。SWA 有界重放,滑动窗口注意力只回放覆盖当前窗口与必要回退所需的后缀,减少 prefill 计算。异步批调度,把 CPU 侧批规划与加速器执行重叠。结构化输出,通过 SamplingParams 的 so_args 用正则、JSON Schema 或 EBNF 文法约束生成。

还有一项对工程验收很有用的能力:batch-invariant 推理与确定性采样。同样的输入 token、采样参数与随机种子,无论批的组成怎么变,输出一致。目前这项只在英伟达硬件上可用。有了它,团队可以在不同批组成下对比部署、复现故障、测试改动,而不用怀疑结果是被批大小影响的。

硬件与边界

支持列表写得很克制:英伟达 SM100 与华为昇腾 950,两个平台各有独立依赖文件。仓库给出的 benchmark 配置是 4 张 SM100 做 prefill、64 张做 decode,全部落在一个 scale-up 域内。生产配置里注意力走数据并行、MoE 层走专家并行,两者数量对齐;prefill 用刚好装得下的最小 EP 与 DP 组合,decode 用 64 到 128 卡的大组。

更需要注意的是它没给什么。这次发布是离线推理版本,KV Cache 系统、prefill 与 decode 的分离部署、数据并行副本间的负载均衡,这三层都要运营方自己搭。API 传输层的鉴权、配额、重试、可观测性与准入控制同样不在范围内。仓库里有设备级缓存操作、块管理与测试,引擎侧该有的功能大部分实现好了,但完整服务仍要自己拼。

权重开源解决的是能不能用,框架开源解决的是用得起。前者降低准入,后者直接压低单位 token 的算力成本与电费。

首发只支持 DeepSeek-V4.1-Flash 一个模型,默认 checkpoint 是 V4.1-Flash-1017。DeepSeek 说后续新模型的推理代码与优化会持续在这个框架里更新。对自建团队来说,这笔账的算法变了:以前是自己写一套算子去追官方性能,现在起点直接是官方的执行路径,省下的是几个月的调优时间,剩下的是服务层工程。

另一个值得注意的细节是硬件列表把华为昇腾 950 与英伟达 SM100 并列写进生产栈。在多平台部署这件事上,这是比任何发布会表态都更实的信号。