昇思大模型:分布推理解决复杂任务
一、前言
随着大模型参数量持续增长,70B、200B 乃至 MoE 万亿级大模型对硬件 HBM 内存提出极高要求,单张 NPU 已经无法完整存放全部模型权重。同时复杂业务场景如长文档理解、多轮深度对话、Agent 工具调用、多模态联合推理,不仅需要超大模型能力,还对推理吞吐、响应时延、上下文窗口提出多重约束。
分布推理(分布式推理)通过张量并行、流水线并行、专家并行、数据并行等多维度并行策略,把大模型权重、计算任务拆分到多张昇腾 NPU 协同执行,突破单卡内存上限,让超大规模大模型可以落地;同时结合 Prefill‑Decode 调度、权重在线切分、通信优化,兼顾复杂任务的推理性能。本文基于昇思 MindSpore+MindFormers 套件,讲解分布推理技术原理、部署完整流程、并行策略选型、性能调优手段,以及复杂业务场景落地实践。
二、复杂推理任务痛点与分布推理价值
2.1 复杂任务面临的现实问题
-
权重内存超限:超大规模稠密大模型、MoE 混合专家模型权重远超单卡 HBM 容量,单卡直接 OOM,无法加载运行。
-
长上下文压力:文档摘要、代码解析、Agent 任务,上下文长度达到 32K‑128K,KV‑Cache 内存急剧膨胀。
-
业务诉求矛盾:既要大模型能力解决高难度问题,又要保障并发吞吐、控制首包时延 TTFT。
-
MoE 模型特殊挑战:专家权重数量庞大,路由逻辑带来 All‑To‑All 通信开销,推理调度复杂。
2.2 分布推理核心价值
-
内存横向扩展:权重分片分布在多块 NPU,突破单卡内存上限,实现百 B、MoE 超大模型推理。
-
算力横向扩展:多卡分担计算压力,降低单卡计算负载,缩短推理时延。
-
适配复杂任务:支持长上下文、多轮 Agent、多模态联合推理等复杂业务。
-
灵活组合并行策略:稠密模型、MoE 专家模型可以选择不同并行组合,平衡通信开销与内存收益。
2.3 四类核心并行推理策略
昇思 MindSpore 支持 TP/PP/EP/DP 任意组合的混合分布推理,Graph 图模式下自动完成算子切分、通信算子插入,用户只需要配置并行参数即可。
三、昇思分布推理整体架构
昇思 MindSpore 分布推理整套体系分为四层:
-
硬件底座层:昇腾 910B/910C,单机多卡、多机集群,HCCL 集合通信;
-
框架并行层:AutoParallel 半自动并行,自动权重分片、通信算子生成,支持张量、流水线、专家并行;
-
模型套件层 MindFormers:提供模型配置、权重在线 / 离线切分、msrun 多进程启动、生成推理接口;
-
业务服务层:对接推理服务,支持 OpenAI 接口、Agent 复杂任务、多模态推理。
分布推理标准执行流程
-
编写并行 yaml 配置,确定 TP/PP/EP/DP 并行度;
-
权重处理:离线预切分权重,或者开启 auto_trans_ckpt 在线权重切分;
-
msrun 拉起多进程,每个进程绑定对应 NPU 设备;
-
框架按照并行策略加载分片权重,自动插入集合通信算子;
-
输入请求分发,多 NPU 协同完成 Prefill 预填充与 Decode 生成;
-
收集推理结果,输出文本返回业务侧。
四、分布推理工程部署实践
4.1 环境依赖
-
硬件:Atlas 800 A2/A3 集群
-
MindSpore 版本:>=2.6,MindFormers 配套版本
-
CANN 版本:8.0.RC1 及以上,HCCL 通信库正常可用
source /usr/local/Ascend/ascend‑toolkit/latest/bin/set_env.sh
pip install mindspore mindformers
4.2 并行配置 yaml 示例(TP4 张量并行推理 Qwen2‑72B)
parallel_config:
data_parallel: 1
model_parallel: 4 # TP张量并行4卡
pipeline_stage: 1
expert_parallel: 1
model:
model_config:
max_seq_len: 32768 # 适配长文档复杂任务
use_past: True # 开启KV‑Cache增量推理
4.3 启动命令(在线权重自动切分)
不需要提前离线切分权重,开启auto_trans_ckpt,框架运行时自动对完整权重分片分发到各个 NPU 进程。
bash scripts/msrun_launcher.sh "python run_mindformer.py \
--config configs/qwen2/predict_qwen2_72b.yaml \
--run_mode predict \
--use_parallel True \
--auto_trans_ckpt True \
--load_checkpoint ./Qwen2‑72B‑Instruct \
--predict_data '请完成一份复杂的多步骤Agent任务规划' " 4
若使用离线切分权重,关闭auto_trans_ckpt,加载已经切分完成的分布式权重文件夹,启动速度更快,生产环境推荐。
4.4 MoE 专家模型混合并行配置示例
DeepSeek‑R1 这类 MoE 模型,开启 TP+EP 混合并行,分摊专家巨大权重内存压力:
parallel_config:
data_parallel: 2
model_parallel: 2
pipeline_stage: 1
expert_parallel: 4
4.5 多机分布推理
多机场景需要配置 HCCL 环境变量,保证节点之间 RoCE 网络连通,msrun 支持跨节点拉起进程,并行配置总卡数等于 TP×PP×EP×DP。
五、面向复杂任务分布推理调优手段
5.1 并行策略选型调优
-
单机超大稠密模型:优先选择张量并行 TP;TP 增大,单卡权重内存下降,但 AllReduce 通信开销上升,需要权衡时延。
-
多机超大规模稠密模型:TP+PP 流水线并行,流水线把模型分层切分,缩小通信域,降低跨机通信量;需要调整 micro‑batch 缓解流水线 bubble 气泡空闲时间。
-
MoE 专家大模型:必须开启专家并行 EP,把专家权重分散到多张卡,解决专家内存爆炸;EP 增大,All‑To‑All 通信开销上涨。
-
高并发业务:DP 数据并行,启动多套推理副本,提升整体 QPS,适合模型本身内存压力不大的场景。
核心原则:单机优先 TP;跨机大模型引入 PP;MoE 必用 EP;高并发叠加 DP。
5.2 内存优化,支撑长上下文复杂任务
-
分布推理权重分片降低权重内存,但是 KV‑Cache 不会被 TP 自动切分;长上下文场景,配合权重量化 W8A8,进一步释放 HBM 给 KV 缓存。
-
开启推理重计算,Prefill 长序列时牺牲少量算力降低激活内存占用。
-
MoE 模型开启专家权重缓存优化,减少专家加载内存峰值。
5.3 通信性能优化
-
昇腾优先使用 RoCE 高速网络,关闭低速 TCP 通信;
-
TP 并行尽量放在单机内部,减少跨机 AllReduce;流水线 PP 跨机时 stage 粒度尽量大,减少 stage 之间传输频次;
-
HCCL 调优,设置通信缓冲区环境变量,掩盖计算与通信时延。
5.4 Prefill‑Decode 分离(PD 分离)
针对 Agent、超长文档摘要等 Prefill 计算重、Decode 生成时间长的复杂任务,把预填充 Prefill 任务部署一组 NPU,解码 Decode 部署另一组 NPU,两类任务硬件资源解耦,避免长 Prefill 阻塞大量 Decode 请求,整体吞吐提升 40% 以上。
5.5 服务化适配复杂业务
分布推理底层推理能力封装成服务接口,上层承接复杂任务:
-
长文档:32K‑128K 上下文文档解析、摘要;
-
Agent:多轮工具调用、多步骤规划;
-
多模态:文本‑图像联合分布推理。
六、性能测试与落地结果
6.1 测试环境
硬件:Atlas800 A3 集群,CANN8.0.RC1,MindSpore2.7 测试模型:Qwen2‑72B‑Instruct 稠密大模型
关键结论:
-
通过分布推理 TP 张量并行,72B 大模型可以成功在多卡上加载,解决单卡 OOM 问题,支撑 32K 以上长文档复杂任务;
-
TP 增大带来权重内存显著下降,首 token 时延明显优化;叠加 PP 流水线可以进一步扩展更大上下文,会带来少量时延上涨;
-
MoE 模型开启 EP 专家并行,专家权重内存最高可以降低 75%,是万亿级 MoE 模型推理的必要手段。
6.3 观测关键指标
-
内存指标:各 NPU 权重占用、KV‑Cache 占用,确认分片生效;
-
时延指标:TTFT 首 token、TPOT 每个 token 生成耗时;
-
通信指标:HCCL 集合通信耗时,观察是否通信成为瓶颈;
-
业务指标:复杂任务通过率、QPS 并发吞吐。
七、踩坑点与常见问题
-
并行配置与实际启动卡数不匹配
model_parallel、pipeline_stage乘积必须等于 msrun 传入总卡数;配置不匹配直接报错。 -
权重切分不一致 离线切分权重的并行策略,必须和推理运行时 yaml 并行配置保持一致;不一致权重加载错乱,推理结果乱码。使用
auto_trans_ckpt在线切分可以规避该问题,但启动会消耗一定时间。 -
KV‑Cache 不会被 TP 自动切分 张量并行只切分模型权重,KV 缓存仍然每张卡完整保存;长上下文场景即使 TP 多卡,依然会发生 KV‑Cache OOM,需要配合量化、PD 分离、降低 max_seq_len 处理。
-
跨机分布推理通信瓶颈 TP 并行尽量限制单机;如果跨机做 TP,AllReduce 跨机通信会带来很大时延,优先改用 TP 单机 + PP 跨机的组合。
-
流水线并行 bubble 空闲开销 PP 流水线并行会产生气泡空闲时间,stage 切分越多气泡越大,需要调大推理 micro‑batch 缓解。
-
MoE 模型 EP 并行 All‑To‑All 通信压力 EP 并行度不要无限制放大,EP 过大会让 All‑To‑All 通信成为性能瓶颈,需要权衡内存收益与通信开销。
八、典型复杂业务落地场景
-
超长文档处理:70B + 大模型 + TP 分布推理,支撑 32K‑128K 上下文合同解析、论文总结。
-
Agent 智能体任务:多步骤工具调用、复杂逻辑推理,结合 PD 分离调度,解决大 Prefill 阻塞问题。
-
MoE 超大模型服务:DeepSeek、Qwen‑MoE,TP+EP 混合分布推理,实现万亿参数模型线上服务。
-
多模态大模型联合推理:文本编码器、视觉编码器分布部署多 NPU,完成图文理解、图文生成任务。
九、总结
昇思 MindSpore 分布推理依托张量并行 TP、流水线并行 PP、专家并行 EP、数据并行 DP 以及混合并行能力,解决超大模型单卡内存不足问题,让 70B、百 B 稠密模型、万亿 MoE 专家模型在昇腾集群可运行,支撑长文档、Agent 智能体、多模态等复杂推理任务。
业务落地时,稠密模型优先选用 TP 张量并行;超大规模多机场景引入 PP 流水线;MoE 模型必须开启 EP 专家并行;高并发叠加 DP 数据并行;同时要注意 KV‑Cache 内存、通信开销、权重切分一致性等约束,必要时引入 Prefill‑Decode (PD) 分离调度进一步提升复杂任务吞吐。配合 MindFormers 工具链,可选择离线权重切分或者在线自动权重切分,降低分布推理的部署成本。
更多推荐



所有评论(0)