DeepInfer:DeepSeek 高性能推理框架编译安装与离线推理指南
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/deepseek-ai/DeepInfer |
| 官网 | https://www.deepseek.com |
| HuggingFace 模型 | https://huggingface.co/deepseek-ai/DeepSeek-V4.1-Flash-1017 |
| 开源协议 | Apache-2.0 |
| 主要语言 | Python(约 89.1%) |
| Star 数 | 约 23k |
DeepInfer 是驱动 DeepSeek 大规模生产服务的高性能推理框架。本次开源提供离线推理能力,包含大规模服务所需的核心特性。
支持模型:DeepSeek-V4.1-Flash。
支持特性:
- 优化的 kernel、模型与采样器运行时;
- 并行:Attention DP / 平衡 CP、MoE EP + EPLB;
- DSpark 与置信度调度的验证;
- SWA 有界回放;
- 异步调度(零开销批调度器);
- 批不变推理;确定性采样;结构化输出。

二、官方图片
上图为 DeepInfer 仓库在 GitHub 上的社交预览图。
三、环境要求
- 操作系统:Linux;
- GCC >= 13.0;
- Python 3.12;
- NVIDIA:CUDA 13(仅 NVIDIA);或华为昇腾:CANN 9.2(仅 Ascend);
- 硬件:NVIDIA SM100 GPU,或华为 Ascend 950 NPU;
- 完整推理服务还需 KV cache 系统、Prefill/Decode 分离、负载均衡(本版本未包含)。
四、编译安装步骤
1. 创建干净的 Python 3.12 环境
python3.12 -m venv ~/deepinfer-env
source ~/deepinfer-env/bin/activate
2. 从源码编译
# NVIDIA 平台用 nvidia;Ascend 平台用 ascend,并保持导出
export DEEPINFER_ACCELERATOR=nvidia
./build.sh
3. 离线推理
首次运行会自动把默认 checkpoint deepseek-ai/DeepSeek-V4.1-Flash-1017 下载到 HuggingFace 缓存;也可设置环境变量从本地加载:
export DEEPINFER_HF_MODEL_DIR=/path/to/DeepSeek-V4.1-Flash-1017
python examples/offline_inference.py
更多示例见 examples/README.md。
五、使用方法
- 离线推理脚本:
examples/offline_inference.py跑通基础对话; - DSpark / MTP 验证:设置
DEEPINFER_ENABLE_MTP_VARLEN=1,用DEEPINFER_USE_NEXTN_DECODE控制最大 draft 长度(默认 5); - SWA 有界回放:设置
DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact与DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140; - 批不变推理:
DEEPINFER_BATCH_INVARIANT=1(仅 NVIDIA); - 结构化输出:给 SamplingParams 传
so_args={"schema_type": ..., "schema": ...},约束为 regex/JSON schema/EBNF 语法; - 底层 kernel 基于 FlashMLA、DeepGEMM、DeepEP、TileKernels、DeepSelect 及 TileLang 自定义 kernel。
六、常见问题 FAQ
-
支持哪些 GPU/NPU? NVIDIA SM100 GPU,或华为 Ascend 950 NPU。
-
需要什么编译工具链? GCC >= 13、Python 3.12、CUDA 13(NVIDIA)或 CANN 9.2(Ascend)。
-
怎么从源码编译? 先建空的 Python 3.12 环境,
export DEEPINFER_ACCELERATOR=nvidia,再./build.sh。 -
默认模型在哪? 首次运行自动下载 DeepSeek-V4.1-Flash-1017 到 HF 缓存;可用
DEEPINFER_HF_MODEL_DIR指定本地目录。 -
这个版本能直接搭生产服务吗? 开源版提供离线推理;完整服务还需自行接入 KV cache 系统、Prefill/Decode 分离与负载均衡。
-
结构化输出怎么用? 给 SamplingParams 传
so_args指定 JSON schema 等,示例见 examples/_structured_output.py。