1. 路径选择:离线安装 DeepInfer vs 官方 API
DeepInfer 是推理引擎。deepseek-recipe 是协议 / API 层(提示词、分词)——不执行模型推理。智能体工作流请去 dshbase.com(DeepSeek Harness),本页不展开。
| 路径 | 何时选择 | 你需要 | 跳过 DeepInfer 安装? |
|---|---|---|---|
| DeepInfer 离线 | 自建 DeepSeek-V4.1-Flash,使用 DeepSeek 开源引擎 | SM100 或昇腾 950 + 下文构建环境 | 否 — 按本页执行 |
| 官方 DeepSeek API | 托管 Chat Completions,不自管 GPU | API Key + 客户端(可选 recipe) | 是 — 跳过自建 |
| 仅 deepseek-recipe | 只要协议转换 / 提示词,不落本地权重 | Python/Rust;另有后端或 API | 是 — 见 /zh/recipe/ |
| vLLM / SGLang 等 | 加速器不匹配或已有多模型栈 | 对应项目环境 | 通常是 — 见 对比 vLLM |
2. 硬件前置
硬门槛。开源 README 仅列出 NVIDIA SM100 GPU 与 华为昇腾 950 NPU。其他卡型此处不作兼容承诺。
| 加速器 | 工具链(README) | DEEPINFER_ACCELERATOR | 状态 |
|---|---|---|---|
| NVIDIA SM100 | CUDA 13 | nvidia |
支持 |
| 华为昇腾 950 | CANN 9.2 | ascend |
支持 |
| 其他 NVIDIA / 昇腾型号 | — | — | README 未列出 |
上游 Prefill/Decode 图:Prefill 4× SM100,Decode 64× SM100(各自在一个 scale-up 域内)——用于容量参考,不是第二个产品。复现见 examples/sweep/run_sweep.sh。
3. 软件依赖清单
版本来自官方 Getting started:
- Linux
- GCC ≥ 13.0
- Python 3.12 — 构建前使用干净虚拟环境
- CUDA 13 — 仅 NVIDIA SM100
- CANN 9.2 — 仅昇腾 950
- 克隆 deepseek-ai/DeepInfer
- 磁盘与 HF 访问:权重
deepseek-ai/DeepSeek-V4.1-Flash-1017(或本地目录)
许可证:DeepInfer 为 Apache-2.0。算子名(FlashMLA、DeepGEMM、DeepEP 等)见 FAQ 与上游 README,无需塞进每一步安装文案。
4. 分平台步骤
4A. NVIDIA SM100(CUDA 13)
- 确认 SM100 与 CUDA 13
- 创建并激活空的 Python 3.12 环境
- 克隆官方仓库
- 导出加速器变量并构建
- 跑离线冒烟示例
git clone https://github.com/deepseek-ai/DeepInfer.git
cd DeepInfer
# 先准备空的 Python 3.12 环境(venv/conda 自选)
export DEEPINFER_ACCELERATOR=nvidia
# 运行 DeepInfer 的 shell 里请保持导出
./build.sh
# 可选:使用本地权重,跳过首次 HF 缓存下载
export DEEPINFER_HF_MODEL_DIR=/path/to/DeepSeek-V4.1-Flash-1017
python examples/offline_inference.py
4B. 华为昇腾 950(CANN 9.2)
- 确认昇腾 950 与 CANN 9.2
- 空的 Python 3.12 环境
- 克隆官方仓库
- 导出
ascend并构建 - 同样用离线示例冒烟
git clone https://github.com/deepseek-ai/DeepInfer.git
cd DeepInfer
export DEEPINFER_ACCELERATOR=ascend
./build.sh
python examples/offline_inference.py
若昇腾侧除 DEEPINFER_ACCELERATOR=ascend 外还有额外开关,以线上 官方 README 为准——此处不杜撰参数。
5. 协议层:何时接入 deepseek-recipe
冒烟阶段可跳过
离线 examples/offline_inference.py 不依赖 deepseek-recipe。先让引擎跑通。
需要 API 形态时再加
要做 Chat Completions / Responses 转换或 V4.1 提示词渲染?单独安装 recipe,再接到你的后端。
python3 -m pip install deepseek-recipe
# 示例见 /zh/recipe/ — recipe 不会下载 DeepInfer 权重
6. 排错表
| 现象 | 核对 | 处理 |
|---|---|---|
| CUDA 构建失败 | SM100 上 CUDA 为 13;DEEPINFER_ACCELERATOR=nvidia |
对齐工具链版本;重读 README 前置条件 |
| 昇腾构建失败 | CANN 为 9.2;环境变量 ascend |
修好 CANN;运行 shell 保持导出 |
| Python / GCC 不对 | Python 3.12;GCC ≥ 13 | 重建空 venv;升级编译器 |
| 权限 / 驱动错误 | 用户是否有 GPU/NPU 设备权限 | 修正设备组 / 驱动栈(平台相关) |
| 冒烟 OOM | 卡数与模型;其他占用进程 | 释放设备;对照官方示例与 issue——此处不编造显存数字 |
| 期望开箱多租户在线 API | 开源范围 | KV cache、Prefill/Decode 分离服务、DP 负载均衡未包含 — 用托管 API 或自备服务胶水 |
7. 离线并行示例与 sweep
来自 examples/README.md — 是构建步骤的补充;不要跳过硬件门槛。
并行参数
python examples/offline_inference.py --ep 8
python examples/offline_inference.py --ep 2 --dp 8
python examples/offline_inference.py --ep 2 --cp 8
Benchmark 与 sweep 要点
python examples/benchmark.py— 默认含 decode_num_requests=64、context_length=32768bash examples/sweep/run_sweep.sh decode ce-128k 131072 3 0.75bash examples/sweep/run_sweep.sh prefill pe-128k 131072- 空 Python 3.12 环境 +
DEEPINFER_ACCELERATOR后执行./build.sh
仅社区 Docker 示例。没有官方 DeepInfer Docker 镜像。博客里的 Dockerfile 属于社区示例——不是官方产物。
8. 安装 FAQ
「安装 DeepSeek DeepInfer」能得到什么?
在支持硬件上离线跑 DeepSeek-V4.1-Flash 的开源引擎路径——不是完整生产服务壳。
何时改用 vLLM?
没有 SM100/昇腾 950、需要更广模型面、或已统一 vLLM/SGLang 时。见 DeepInfer 对比 vLLM。
FlashMLA / DeepGEMM 怎么装?
它们是 README 列出的优化算子,随引擎构建进入,不是独立安装包。见 FAQ。
Prefill 要单独装吗?
不要。Prefill 与 Decode 是同一 DeepInfer 引擎的两个阶段。