写点什么

云上 AI 推理平台全掌握(6):大规模 EP 专家并行

  • 2025-10-10
    浙江
  • 本文字数:3622 字

    阅读完需:约 12 分钟

背景:MoE 模型的机遇和挑战

近年来,混合专家模型(Mixture of Experts,MoE) 在大型语言模型领域展现出巨大潜力。MoE 架构是一种高效扩展模型规模的新技术,利用了“分而治之”的思想,设计了一系列不同的子网络(称为“专家”),通过门控网络来动态决定当前的输入应该交由哪几个专家来处理。

DeepSeek-v3 的 MoE 结构 引用自 DeepSeek-V3 Technical Report (https://arxiv.org/html/2412.19437v1)


MoE 最关键的特性在于“稀疏激活”。以 Kimi K2 模型为例,模型参数量高达 1.04T,包含了 384 个专家网络,而每次推理仅激活 8+1 个专家。这意味着模型的总参数量巨大,但激活参数仅有 32.6B。

DeepSeek-V3 和 Kimi K2 的架构比较 引用自 Kimi K2

https://arxiv.org/pdf/2507.20534


“稀疏激活”的特性使得 MoE 模型能够在参数规模达到万亿级别的同时,大幅降低计算和训练成本。不过,MoE 模型对推理系统提出了前所未有的新挑战。传统的 Tensor Parallelism(张量并行)或 Pipeline Parallelism(流水线并行)方案在部署 MoE 模型时面临显著瓶颈,存在资源利用率低、通信开销大、成本高昂等问题。

专家并行 EP:MoE 模型的最佳拍档

专家并行(Expert Parallelism, EP)是一种专门为 MoE 架构设计的分布式推理策略。传统方案是将所有专家都复制到每张 GPU 上,导致显存成为最大瓶颈。


而专家并行将不同的专家分布式部署到跨机多卡上。当请求到来时,路由门控网络动态决策该请求应该由哪几个专家处理,系统则仅将请求动态路由到对应的专家设备上,并将结果汇总返回。


这种设计带来了三大核心优势:


  • 极致显存优化:彻底打破了单卡显存对模型规模的限制,使得千亿、万亿参数的 MoE 模型在有限显存的 GPU 集群上部署成为可能。

  • 超高性能表现:每个专家都独立运行在自己的设备上,可独立利用单卡显存带宽,实现了真正的计算并行化,大幅提升了吞吐量。

  • 显著成本降低:无需为每个设备加载全部模型参数,极大地提高了硬件资源利用率,从而降低了总体拥有成本(TCO)。

阿里云 PAI-EAS:开箱即用的企业级 EP 解决方案

阿里云人工智能平台 PAI 的模型在线服务(EAS) 提供了生产级 EP 的部署支持,将 PD 分离、大规模 EP、计算-通信协同优化、MTP 等技术融为一体,形成多维度联合优化的新范式。

PAI EP 服务架构


我们的核心能力有:


EP 定制化部署和管理


  • 客户部署 MoE 模型的首要挑战是如何科学地配置服务。PAI-EAS 为主流的 MoE 模型提供了 EP 部署模版,内置了镜像、可选资源、运行命令等,将复杂的分布式部署过程简化为一键点击。客户无需关注复杂的底层实现,即可轻松享受 EP 技术带来的红利。

  • PD 分离中包含 Prefill、Decode 和 LLM 智能路由等多个子服务,PAI-EAS 实现了聚合服务管理,支持对每个子服务进行独立的生命周期管理,包括查看日志和监控、自动扩缩容等。

  • 平台提供了 LLM 服务自动压测功能,客户可以根据实际业务的流量形态(如输入输出长度等),来模拟压测性能表现,从而更加高效地调整 Prefill 和 Decode 的配比关系。


智能资源调度与编排

  • 平台提供了优化版 EPLB,既解决了“稀疏激活”带来的负载不均衡问题,同时显著降低了专家迁移重排时的额外开销,实现 TPOT 指标无卡顿。

  • LLM 智能路由实现了大规模集群的智能调度,支持高效的 PD 分离调度,保证后端实例处理的算力和显存尽可能均匀,提升集群资源使用水位。


企业级稳定性保障

  • PAI-EAS 提供了深度的服务监控体系,包括完善的 GPU 监控指标,网络与 IO 性能监控和健康状态监控(实时监控掉卡、Xid 错误、驱动挂起等)。

  • PAI-EAS 的算力健康检查功能,会对参与推理的资源进行全面检测,自动隔离故障节点,并触发后台自动化运维流程,有效减少服务推理初期遇到问题的可能性,提升推理部署成功率。

  • PAI-EAS 有强大的自愈与容错机制,当进程崩溃导致实例不可用时,系统会自动检测并重启恢复。当发生硬件故障时,系统自动完成故障节点更换,EAS 服务层自动重启实例,实现跨层联动的高可用保障。


灵活的生命周期管理


  • PAI 提供了灵活的扩缩容策略,Prefill 和 Decode 服务可独立进行实例数调整和资源配置变更。用户可根据流量特征动态调整 PD 配比,实现极致的成本优化与性能平衡。

  • EP 一体化服务(含智能路由、Prefill、Decode),支持整体服务的灰度发布和流量调配,保障大型更新平稳上线。

动手实践:部署和使用 DeepSeek-R1 EP 服务

部署 EP 服务

  1. 打开 PAI 控制台(https://pai.console.aliyun.com/),点击左侧菜单栏「模型在线服务(EAS)」。点击「部署服务」,选择「LLM 大语言模型部署」。


  1. 以 DeepSeek 为例,选择「DeepSeek-R1-0528-PAI-optimized」。该模型是 PAI 优化版模型,能够支持更高的吞吐和更低的时延。


  1. 推理引擎选择 vLLM,部署模版选择「EP+PD 分离-PAI 优化版」


  1. 接下来需要为 Prefill 和 Decode 配置部署资源,可以使用「公共资源」或者「资源配额」。公共资源的可用规格有「ml.gu8tea.8.48xlarge」或「ml.gu8tef.8.46xlarge」。



  1. 用户可以根据实际情况调整部署参数,以达到更佳的服务性能。如果无需调整,可以跳过这一步。

  2. 通过设置 Prefill 和 Decode 的实例数,可以调整 PD 分离的实际配比。部署模版中实例数的默认设置为 1。

  3. 用户可以在环境变量中调整 Prefill 和 Decode 的<font style="color:rgb(51, 51, 51);">EP_SIZE</font><font style="color:rgb(51, 51, 51);">DP_SIZE</font><font style="color:rgb(51, 51, 51);">TP_SIZE</font>。部署模版中的默认值为:Prefill 的<font style="color:rgb(51, 51, 51);">TP_SIZE</font>为 8,Decode 的<font style="color:rgb(51, 51, 51);">EP_SIZE</font><font style="color:rgb(51, 51, 51);">DP_SIZE</font>为 8。


说明:为了保护「DeepSeek-R1-0528-PAI-optimized」的模型权重,平台未透出推理引擎的运行命令,用户可以通过环境变量修改重要参数。


  1. 点击「部署」,等待约 20 分钟,EP 服务即可成功运行。

管理 EP 服务

  1. 在服务列表页,点击服务名称进入详情页,可以对服务进行精细化管理。查看维度既包含整体服务(即聚合服务),也包含 Prefill、Decode 和 LLM 智能路由等子服务。


  1. 用户可以查看服务的监控和日志,以及配置自动伸缩策略。


  1. 用户可以「在线调试」页面快速测试服务是否正常运行。以下提供了一个示例:url 后拼接/v1/chat/completions,请求体为:

{  "model": "",  "messages": [    {      "role": "user",      "content": "Hello!"    }  ],  "max_tokens": 1024}
复制代码


点击「发送请求」,可以看到响应结果为 200,模型成功输出回答,表示服务正常运行。

推理 EP 服务

  1. 在服务列表页或者服务详情页点击「查看调用信息」,右侧会显示调用地址和 token。根据实际情况,用户可以选择公网调用或者 VPC 调用。



  1. 将调用地址和 token 填入到请求中。这里提供了 curl 和 python 两种示例代码:


curl:

curl -X POST <EAS_ENDPOINT>/v1/chat/completions \    -H "Content-Type: application/json" \    -H "Authorization: <EAS_TOKEN>" \    -d '{        "model": "<model_name>",        "messages": [        {"role": "system", "content": "You are a helpful and harmless assistant."},        {            "role": "user",            "content": [                {                    "type": "text",                    "text": "hello"                }            ]        }        ]    }'
复制代码


python:

import jsonimport requests
# <EAS_ENDPOINT>需替换为部署服务的访问地址,<EAS_TOKEN>需替换为部署服务的Token。EAS_ENDPOINT = "<EAS_ENDPOINT>"EAS_TOKEN = "<EAS_TOKEN>"
url = f"{EAS_ENDPOINT}/v1/chat/completions"headers = { "Content-Type": "application/json", "Authorization": EAS_TOKEN,}
# <model_name>请替换为模型列表接口<EAS_ENDPOINT>/v1/models获取的模型名称。model = "<model_name>"stream = Truemessages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "hello"},]
req = { "messages": messages, "stream": stream, "temperature": 0.0, "top_p": 0.5, "top_k": 10, "max_tokens": 300, "model": model,}response = requests.post( url, json=req, headers=headers, stream=stream,)
if stream: for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False): msg = chunk.decode("utf-8") if msg.startswith("data"): info = msg[6:] if info == "[DONE]": break else: resp = json.loads(info) print(resp["choices"][0]["delta"]["content"], end="", flush=True)else: resp = json.loads(response.text) print(resp["choices"][0]["message"]["content"])
复制代码


  1. 确认服务响应符合预期后,即可部署代码,将服务无缝接入到核心业务流程中。


立即体验 DeepSeek-R1 EP 部署

登录PAI控制台,开启您的千亿模型高效部署之旅。

用户头像

还未添加个人签名 2020-10-15 加入

分享阿里云计算平台的大数据和AI方向的技术创新和趋势、实战案例、经验总结。

评论

发布
暂无评论
云上AI推理平台全掌握(6):大规模EP专家并行_阿里云大数据AI技术_InfoQ写作社区