目录

DeepSeek 的 DeepInfer 是面向 DeepSeek-V4.1-Flash 的开源推理框架。由于对硬件和配套服务有要求,使用前应确认环境和用途是否适合。

要点#

  • 支持的模型为 DeepSeek-V4.1-Flash,支持 NVIDIA SM100 GPU 和 Huawei Ascend 950 NPU。
  • 需要 Linux、GCC 13 及以上版本、Python 3.12,NVIDIA 环境使用 CUDA 13,Ascend 环境使用 CANN 9.2。
  • 具备推测解码、结构化输出,以及较少受批次组成影响的推理等功能。
  • 公开版本并未包含 KV 缓存、负载均衡等完整推理服务所需的全部功能。

DeepInfer 能做什么#

DeepInfer 基于支撑 DeepSeek 大规模生产推理服务的框架,是面向离线推理的公开版本。它整合提供了内核、模型执行、采样器和并行执行机制。

支持的功能包括 Attention 的 DP 和均衡型 CP,以及 MoE 的 EP 和 EPLB。还使用了 FlashMLA、DeepGEMM、DeepEP、TileKernels、DeepSelect 等优化内核。目前支持的模型为 DeepSeek-V4.1-Flash,如果打算运行其他模型,请先确认支持情况。

部署前需准备的环境#

运行环境为 Linux、GCC 13.0 及以上版本、Python 3.12。NVIDIA 环境需要 CUDA 13,Ascend 环境需要 CANN 9.2。构建前,请创建并激活一个干净的 Python 3.12 环境。

面向 NVIDIA 的构建需先通过环境变量指定加速器,再执行构建。

setup.sh
export DEEPINFER_ACCELERATOR=nvidia
./build.sh

Ascend 环境下,将 nvidia 替换为 ascend。DeepSeek-V4.1-Flash-1017 的检查点会在首次运行时下载到 Hugging Face 缓存中。使用本地模型时,请先通过 DEEPINFER_HF_MODEL_DIR 指定存储路径,再运行示例。

run.sh
export DEEPINFER_HF_MODEL_DIR=/path/to/DeepSeek-V4.1-Flash-1017
python examples/offline_inference.py

加速推理的设置#

DSpark 和 confidence-scheduled verification 利用草稿 token 加速解码。通过 DEEPINFER_ENABLE_MTP_VARLEN=1 启用,并通过 DEEPINFER_USE_NEXTN_DECODE 调整最大草稿长度,默认值为 5。异步调度默认启用,使 CPU 端的批处理与设备执行重叠进行。

如需降低解码器的 prefill 负载,可设置 SWA bounded replay。V4.1 的默认配置为 DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact 和 DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140。保留的末尾 token 数必须覆盖 SWA 窗口和最大回溯长度,因此务必根据用途确认。

可复现性与结构化输出#

如需在批次组成发生变化时保持模型结果一致,可在 NVIDIA 环境中启用 DEEPINFER_BATCH_INVARIANT=1。若要在输入 token 和采样设置相同的情况下获得相同输出,还需设置 DEEPINFER_ENABLE_MTP_VARLEN=0,并向 SamplingParams 传入固定的 seq_seed。这两项功能均仅支持 NVIDIA。

还支持让生成结果遵循 JSON Schema、正则表达式和 EBNF 语法的结构化输出。向 SamplingParams 传入 so_args,并指定 schema_type 和 schema。Schema 格式和示例代码可在仓库的 examples 中查看。

服务运维的范围#

基准测试使用 4 块 SM100 GPU 执行 prefill、64 块执行 decode,均部署在同一个 scale-up domain 内。其他配置未必能达到相同性能。如需复现,请参考 run_sweep.sh,评估方法可查看 eval/README.md。

仅靠公开版本无法搭建完整的推理服务。KV 缓存系统、prefill 与 decode 分离、各副本之间的负载均衡等都需要另行准备。更实际的做法是先通过离线推理验证运行情况和性能,再梳理服务化所需的配置。

下一步#

确认计划使用的 GPU 或 NPU 是否受支持,在干净的 Python 3.12 环境中完成构建,然后尝试执行 python examples/offline_inference.py。

来源: https://github.com/deepseek-ai/DeepInfer

目录