数据并行特性介绍
数据并行将推理请求划分为多个批次,并将每个批次分配给不同的设备进行并行处理,每张计算卡都并行处理不同批次的数据,然后将结果合并。
限制与约束
- 仅Atlas 800I A2 推理服务器支持此特性。
- 仅DeepSeek V2模型的Attention模块支持数据并行。
- 数据并行不支持同张量并行在同一模块上叠加使用。
- 数据并行不支持和PD分离、并行解码、SplitFuse以及Prefix Cache特性同时开启。
开启数据并行特性,需要配置的补充参数如表1所示。
表1 数据并行特性补充参数:ModelDeployConfig中的ModelConfig参数 配置项
取值类型
取值范围
配置说明
tp
int32_t
整网张量并行数。
选填,默认值为设置的worldSize参数值。
dp
int32_t
Attention模块中的数据并行数。
选填,默认值:-1,表示不执行数据并行。
moe_tp
int32_t
稀疏模型MoE模块中的张量并行数。
选填,默认值为设置的worldSize值。
若同时配置"tp"参数和"moe_tp"参数,则"moe_tp"参数优先级高于"tp"参数。
moe_ep
int32_t
稀疏模型MoE模块中的专家并行数。
选填,默认值:-1,默认不执行专家并行。
不配置以上补充参数时,推理过程中默认使用tp和moe_tp并行方式。
- 设置优化显存分配的环境变量
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True export ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE=3
- 配置服务化参数。该特性需配合MindIE Service使用,按照表1在服务化的config.json文件中添加相应参数,config.json文件路径的详细说明请参考《MindIE安装指南》中的“配置MindIE > 配置MindIE Server > 单机推理”章节中的软件包文件清单。配置服务化参数示例如下:
vi ${MIES_INSTALL_PATH}/conf/config.json "ModelConfig" : [ { "modelInstanceType" : "Standard", "modelName" : "deepseekv2", "modelWeightPath" : "/home/data/DeepSeek-V2-Chat-W8A8-BF16/", "worldSize" : 8, "cpuMemSize" : 5, "npuMemSize" : 1, "backendType" : "atb", "trustRemoteCode" : false, "dp": 8, "tp": 1, "moe_tp": 8 } ]
以上参数设置表明使用8卡进行推理,Attention模块使用数据并行,MoE模型使用张量并行。
- 启动服务。具体请参考《MindIE Service开发指南》中的“快速开始 > 启动服务”章节。
- 发送推理请求。具体请参考《MindIE Service开发指南》中的“MindIE Service组件 > MindIE MS > 调度器(Coordinator) > RESTful接口API > 用户侧接口 > OpenAI推理接口”章节。
父主题: 特性介绍