---
url: /deepinfer/introduction.md
description: >-
  DeepInfer 是 DeepSeek 于 2026 年 10 月 20 日全面开源的生产级大模型推理框架，Apache 2.0
  协议，支持分布式推理、DSpark 推测解码、SWA Bounded Replay、结构化输出，同时跑在 NVIDIA SM100 与华为昇腾 950
  上，是首个开放原生推理框架的头部大模型企业。
---

# 认识 DeepInfer

先说个让人心里不太平衡的对比。

同一天，一家美国闭源模型厂商在涨价、抬门槛；DeepSeek 在 2026 年 10 月 20 日宣布，把自己**内部真正在线上跑的推理框架**整个开源了。

这不是又一个模型权重。模型权重现在各家都在发，发权重是"把菜谱给你"。推理框架不一样——它是**那口锅、那套灶、那个后厨动线**。彭博社在报道里直言，这种能让模型在省算力的同时跑得更高效的技术，通常是 AI 企业**严格保密**的东西。

DeepSeek 把保密清单上最靠前的那一项，划掉了。

> 一句话：模型决定 AI 有多聪明，推理框架决定这份聪明**卖多少钱**。DeepSeek 把定价权的一部分，交了出去。

## 什么是 DeepInfer

DeepInfer 是 DeepSeek 线上大规模服务实际使用的高性能推理框架，Apache 2.0 协议开源，仓库在 [github.com/deepseek-ai/DeepInfer](https://github.com/deepseek-ai/DeepInfer)。

它最初主要基于 **vLLM** 构建，同时借鉴了 **SGLang** 与 **TensorRT-LLM**——官方在致谢里写得很坦荡。但几年下来，它已经被改造成一套只服务 DeepSeek 自家模型的、深度定制的生产系统。

这次开源的是\*\*离线推理（offline inference）\*\*部分，包含大规模 serving 所需的核心能力。目前支持的模型只有一个：**DeepSeek-V4.1-Flash**（默认 checkpoint 为 `deepseek-ai/DeepSeek-V4.1-Flash-1017`）。

同步开源的还有 **deepseek-recipe**——一个生产级的 Token 编解码组件，负责在主流 LLM API 协议和模型 token 序列之间做高效、准确的转换，处理逻辑**与 DeepSeek 官方 API 完全对齐**。这条很关键：第三方部署从此能拿到和官方一模一样的 API 行为，不用再靠猜。

几个时间坐标，方便你判断它有多新：

* **2026-10-16** 仓库创建
* **2026-10-20** 首个 initial commit 落地，同日官宣全面开源，Star 很快冲到 2 万级
* **2026-10-21** 仍在持续合入（DeepEP 依赖升级等）

## DeepInfer 的特点

* **高性能算子全家桶**：FlashMLA、DeepGEMM、DeepEP、TileKernels、DeepSelect，以及自研的 **TileLang kernels**
* **并行策略拉满**：Attention DP / balanced CP，MoE 侧 EP + **EPLB**（专家并行负载均衡）
* **DSpark + 置信度调度验证**：用草稿 token 加速解码，并按置信度估计来安排验证时机。开 `DEEPINFER_ENABLE_MTP_VARLEN=1`，`DEEPINFER_USE_NEXTN_DECODE` 控制最大草稿长度（默认 5）
* **SWA Bounded Replay**：只重放一个**有界后缀**，砍掉解码侧大量重复的 prefill 计算。V4.1 默认配置是 `DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact` + `DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140`
* **异步调度**：CPU 的批处理调度与设备执行重叠，官方称为"零开销 batch scheduler"，**默认开启**
* **批不变推理（Batch-invariant inference）**：不管这一批怎么凑，模型结果保持一致。开 `DEEPINFER_BATCH_INVARIANT=1`（仅 NVIDIA）
* **确定性采样**：相同的输入 token 与采样参数，产出逐字相同的结果。配 `DEEPINFER_BATCH_INVARIANT=1` + `DEEPINFER_ENABLE_MTP_VARLEN=0`，并在 `SamplingParams` 里传固定的 `seq_seed`
* **结构化输出**：把生成约束在正则、JSON Schema 或 EBNF 文法内。给 `SamplingParams` 传 `so_args={"schema_type": ..., "schema": ...}`
* **双平台原生支持**：**NVIDIA SM100 GPU** 与 **华为昇腾 950 NPU**——不是"移植过去能跑"，是同一套代码两条硬件路径
* Apache 2.0 协议，商用无顾虑

### 这次没开源的，也得说清楚

DeepSeek 在 README 里列了一份"完整推理服务还需要、但本次不包含"的清单，态度相当实在：

* **KV cache 系统**
* **VE / Prefill-Decode 分离**（大部分引擎功能其实已经实现）
* **跨数据并行副本的负载均衡**（prefill 与 decode 两侧）

换句话说，你拿到的是一台拆开了的发动机，**不是一辆能直接上路的车**。想复刻 DeepSeek 官方那种线上服务，KV 缓存和 PD 分离还得自己补。

## 谁真的需要它，以及那组吓人的数字

先讲 DeepSeek 自己。官方披露：基于 DeepInfer，**单一集群的服务吞吐是 155 万亿 Tokens/天**。配合今年 6 月启动的峰谷定价，**单卡每小时收入 38 美元**（按谷价约合人民币 253.8 元）。

按这个口径粗算，一张卡 24 小时满负荷跑，日收入约 6090 元人民币，一个月就是 18 万出头。这组数字被媒体反复咀嚼，因为它第一次把"推理优化值多少钱"换算成了**每小时、每一张卡**的现金流。

再看谁能用上。技术博主宝玉说得直白：**这玩意儿个人电脑跑不动**——它要跑在 NVIDIA Blackwell 一代的数据中心卡（SM100）或华为昇腾 950 上，官方测性能用了 4 到 64 张这样的卡，而且模型只支持 V4.1-Flash 一个。

所以真正的受益者是两类人：

* **云厂商和模型托管商**：以前自己部署 DeepSeek，成本结构是黑盒；现在可以直接用原生框架，性能与成本逼近官方，Load 调度合理时甚至可能更低
* **要做私有化部署的企业**：拿到官方同款调度与算子优化，本地推理成本有明确的下降空间

至于昇腾这条线，据报道 DeepSeek 计划在内蒙古的新数据中心部署至少 16 万张昇腾 950DT 芯片——这条我按下不表，属于"据报道"，你当参考就好，别当承诺。

> 我的个人看法：DeepSeek 这次开源的真正杀伤力不在代码，在于**它把行业基准线抬到了明面上**。以前每家云厂商都说自己"优化过 DeepSeek"，谁也验证不了；现在有了官方原生的对照组，谁在裸泳，跑个 benchmark 就知道了。

## DeepInfer 初体验

先泼一盆冷水：如果你手上是台游戏本或者一张 4090，这一节你跑不起来，看看就好。**它是给数据中心卡写的**。

环境要求（官方 README）：

* Linux
* GCC ≥ 13.0
* Python 3.12
* CUDA 13（NVIDIA 平台）/ CANN 9.2（昇腾平台）

1. 拉代码并编译

```bash
git clone --recursive https://github.com/deepseek-ai/DeepInfer.git
cd DeepInfer

# 昇腾平台改成 export DEEPINFER_ACCELERATOR=ascend
# 这个变量在运行 DeepInfer 的环境里也要一直保持导出
export DEEPINFER_ACCELERATOR=nvidia

./build.sh
```

2. 跑一遍离线推理

```bash
python examples/offline_inference.py
```

默认 checkpoint `deepseek-ai/DeepSeek-V4.1-Flash-1017` 会在首次运行时下载到 Hugging Face 缓存目录。想用本地副本，设 `DEEPINFER_HF_MODEL_DIR=/path/to/DeepSeek-V4.1-Flash-1017` 就行。

3. 打开那几个"隐藏开关"

```bash
export DEEPINFER_ENABLE_MTP_VARLEN=1            # 开 DSpark 推测解码
export DEEPINFER_USE_NEXTN_DECODE=5             # 最大草稿长度，默认 5
export DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact
export DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140  # 保留后缀要覆盖 SWA 窗口 + 最大回溯长度
export DEEPINFER_BATCH_INVARIANT=1              # 批不变推理，仅 NVIDIA
```

> 注意 `DEEPINFER_YOCO_PREFILL_KEEP_TOKENS` 那条注释：保留的后缀**必须**覆盖 SWA 窗口再加上最大回溯长度，不是随便填个数字。这类参数写错了不报错，只是静默变慢或者结果不对——真正难调的地方往往在这里。

4. 结构化输出（API 与 vLLM 高度相似，实际签名请以 `examples/` 下脚本为准）

```python
from deepinfer import LLM, SamplingParams

llm = LLM(model="deepseek-ai/DeepSeek-V4.1-Flash-1017")

sp = SamplingParams(
    max_tokens=512,
    so_args={
        "schema_type": "json_schema",
        "schema": '{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}',
    },
)

print(llm.generate(["给我推荐一本入门书，用 JSON 返回。"], sp)[0].text)
```

> 上手建议：别急着调参。**先把 `examples/` 里的 `run_sweep.sh` 跑一遍**，对照官方给的 prefill / decode Pareto 曲线，确认你的硬件落在曲线的哪个位置，再去动那几个环境变量。没有基线就调参，是最常见的自欺欺人。

## 进阶

我特别喜欢 DeepSeek 这次在公告里写的那句："大模型的能力边界由模型本身划定，但如何以合理成本提供超大规模的模型服务，还取决于一个长期未被公众了解的中间层——即推理框架。"

这两年所有人都在盯着模型榜单，却很少有人问：让这个模型回答你一句话，要烧掉多少电。DeepInfer 开源的意义，是把这道被藏起来的成本题搬到了台面上——155 万亿 Token/天不只是个炫技数字，它是一份公开的答卷，逼着整个行业把"每卡每小时能挣多少"算清楚。

更多开源技术干货和学习资料，关注公众号「遇码」，领取专属福利。
