本示例基于 MindIE 推理框架,选用 DeepSeek-V3.1-w8a8c8-QuaRot 模型进行多机 PD(Prefill/Decode)分离部署。整体采用 1P × 1D 架构,其中 Prefill 阶段部署 1 个实例,由 1 个 master + 1 个 worker 角色组成,每个角色占用 8 张 NPU 卡;Decode 阶段部署 1 个实例,由 1 个 master + 3 个 worker 角色组成,每个角色占用 8 张 NPU 卡。因此,本任务共使用 6 台机器、48 张 NPU 卡,通过 Prefill 与 Decode 解耦调度,有效降低首 Token 时延并提升整体吞吐性能。
前置条件
1. 确认智算套件已经安装并且全部运行中。
2. 进入智算套件,AI应用管理,队列管理,确保队列存在并且有足够的资源(NPU,CPU,内存)[参考创建队列的文档]。
操作步骤
创建应用
进入智算套件,AI应用列表,在线推理菜单,创建AI应用。
基本信息
应用类型:MindIE
开启PD分离选择 静态PD分离
配置信息
推理类型选择多机,推理框架,框架版本,推理模型,模型版本根据实际情况选择。简单的示例:
推理框架: ascend-mindie
框架版本:2.2.RC1-800I-A2-py311-openeuler24.03-lts
推理模型:DeepSeek-V3.1-w8a8c8-QuaRot
模型版本:v1
队列:选择存在且资源足够的的队列
Prefill
实例数:1。
PrefillMaster 资源菜单:CPU,内存,共享内存可以不填,NPU填:8。
PrefillWorker 副本数:1 资源菜单:CPU,内存,共享内存可以不填,NPU填:8。
Decode
实例数:1。
DecodeMaster 资源菜单:CPU,内存,共享内存可以不填,NPU填:8。
DecodeWorker 副本数:3 资源菜单:CPU,内存,共享内存可以不填,NPU填:8。
点击确认完成创建。
参数调整
因 MindIE 框架不支持通过启动参数修改配置,智算套件推理应用支持通过 环境变量 覆盖默认配置参数。
| 环境变量 | MindIE配置文件参数名 | 默认值 | 适用阶段 | 环境变量添加位置 | 说明 |
|---|---|---|---|---|---|
| MINDIE_MODEL_NAME | modelName | 推理 Inference 名称(例:inference-ia89ho) | Prefill / Decode | prefillmaster / decodemaster | 推理服务接口模型名称 |
| MINDIE_MODEL_WEIGHT_PATH | modelWeightPath | /data/models | Prefill / Decode | prefillmaster / decodemaster | 模型权重路径 |
| MINDIE_DP | dp | Prefill:master + worker 数量;Decode:master NPU 数量 ×(master = worker 数量) | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_TP | tp | Prefill:NPU 卡数量;Decode:1 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_CP | cp | 1 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_SP | sp | 1 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_PP | pp | 1 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MOE_EP | moe_ep | master NPU 数量 ×(master = worker 数量) | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MOE_TP | moe_tp | 1 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MAX_SEQ_LEN | maxSeqLen | 18000 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MAX_INPUT_TOKEN_LEN | maxInputTokenLen | 18000 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MAX_PREFILL_BATCH_SIZE | maxPrefillBatchSize | 50 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MAX_PREFILL_TOKENS | maxPrefillTokens | 18000 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MAX_BATCH_SIZE | maxBatchSize | 200 | Prefill / Decode | prefillmaster / decodemaster | |
| MINDIE_MAX_ITER_TIMES | maxIterTimes | 18000 | Prefill / Decode | prefillmaster / decodemaster |
例如修改
Prefill: modelName=test maxSeqLen=20000 maxInputTokenLen=20000 maxPrefillTokens=20000 maxIterTimes=20000,在prefillmaster中设置对应的环境变量
Decode: modelName=test maxSeqLen=20000 maxInputTokenLen=20000 maxPrefillTokens=20000 maxIterTimes=20000 dp=4 tp=8 在decodemaster中设置对应的环境变量