DeepSeek 将用于运行自家模型、生成答案的软件开源。希望将模型用于服务的开发者可以下载并测试核心运行功能,将其与服务基础设施区分开来,判断引入范围。
1. 支持的模型与硬件
DeepInfer 是驱动 DeepSeek 大规模运营服务的推理框架。此次公开的内容提供通过示例脚本运行模型的离线推理功能。
支持的模型为 DeepSeek-V4.1-Flash,许可证为 Apache 2.0。
支持的硬件为 NVIDIA SM100 GPU 和 Huawei Ascend 950 NPU。评估引入时,宜从这一模型与设备组合入手。
2. 处理效率与结果可复现性
异步调度让 CPU 准备下一批请求的过程与加速器执行当前任务的过程重叠进行,默认开启。
还包含解码加速功能,先生成候选答案片段,再根据置信度确定验证时机。
框架还提供无论请求如何分批都能保持模型结果一致的功能,以及在相同输入与采样设置下产生相同输出的确定性采样。两者均仅支持 NVIDIA,确定性采样还需要单独设置功能并固定种子。种子是用于复现随机选择的基准值。
结构化输出是让生成结果符合指定语法的功能。可以使用正则表达式、JSON Schema 或 EBNF 语法限制输出格式。
3. 构建与模型准备
在 Linux 上从源码构建,编译器需要 GCC 13.0 或更高版本。
构建前需创建并激活一个空的 Python 3.12 环境。以下是仓库提供的构建命令。
# Use `ascend` instead for the Ascend platform
# Keep it exported in the environment where you run DeepInfer
export DEEPINFER_ACCELERATOR=nvidia
./build.sh还需要各加速器对应的开发环境。NVIDIA 需要 CUDA 13,另一种受支持的加速器需要 CANN 9.2。
离线推理示例在首次运行时,会将默认模型文件下载到 Hugging Face 缓存。如果已有下载好的模型副本,可通过环境变量指定路径使用。
4. 随吞吐量增加而增长的延迟
预填充是生成答案前读取并处理输入的阶段。DeepSeek 公开的图表针对未缓存的输入,同时展示吞吐量与这一阶段的延迟。
测试在单个纵向扩展域内使用 4 张 SM100 GPU 运行受支持的模型,该域即一组紧密连接的设备。并行配置为 EP4DP4,分担计算的专家模块配置为 384+32,上下文长度为 131,072,解码器重放范围为 140 个词元。
图中,每个数据并行单元的批次为 4,096 个词元时,延迟约为 70 毫秒,每张 GPU 每秒处理约 6 万个词元。在 65,536 个词元处,延迟约为 730 毫秒,吞吐量约为 9 万个词元。吞吐量提高的同时,单次输入处理阶段的耗时也会变长,因此难以仅凭吞吐量选择运行配置。
生成输出的解码图表使用 64 张 GPU 测得,因此不能与上述结果直接比较。仓库还提供了复现基准测试的运行脚本说明。
5. 运行基础与服务基础设施的边界
能够通过公开代码审查执行流程与优化功能是一项优势。但其中缺少复用先前计算的 KV 缓存系统、分离输入处理与输出生成等环节的配置,以及将请求分配给多个模型副本的负载均衡,因此需要另行搭建运营基础设施。仓库说明称,分离所需的引擎功能大多已实现,因此应区分已提供的运行功能与需要额外承担的搭建工作。
应根据公开的推理功能与各项服务的运行需求及搭建条件的契合程度,判断引入 DeepInfer 的价值。
