计算加速是推理系统优化的终极目标,并行计算是实现该目标的核心手段,而分布式集群则是支撑并行计算落地的底层基础设施。

本文概括性的介绍 SGLang 支持的多种分布式集群。

一、六种分布式集群

SGLang 有多种分布式集群计算加速手段,可以分为三种类型:

(1)基础并行

张量并行(TP,Tensor Parallelism),主要在矩阵计算阶段做拆分,将张量拆分到多个 GPU 卡上并行计算。

流水线并行(PP,Pipeline-Parallelism),对模型层次做拆分,将层分布到不同的 GPU 卡上计算,单个请求串行在多个卡上执行,而多个请求可以同时在多个卡上执行不同的阶段。

数据并行(DP,Data Parallelism),对一批输入请求做拆分,将请求分布到不同的 GPU 卡上并行计算。

(2)局部计算并行

注意力数据并行(DP Attention),主要用于 MLA 模型结构,将一批请求拆分为多个小批次,每一小批请求由部分 GPU 执行注意力计算,FFN 的计算和 TP 一致。

专家并行(EP Expert Parallelism),主要用于 MoE 模型结构,将专家的计算分布到部分 GPU 上,而不是全部 GPU。

注:这两种模式主要是为 DeepSeek V2/V3 模型结构定制的。

(3)计算时序分离并行

PD 分离,基于请求推理时序,将一个请求的 prefill 阶段和 decode 阶段拆分到不同的 GPU 上执行。

二、SGLang 的核心模块

在了解 SGLang 分布式集群之前,我们先来了解 SGLang 包含的核心模块。

SGLang 使用 python 实现,python 的 GIL(Global Interpreter Lock)设计使得一个 python 进程最多只能使用一核 CPU。

因此基于 python 的复杂计算系统通常会使用多进程来使用多核 CPU,SGLang 也是如此。

SGLang 的多进程设计也是系统的顶层架构设计,顶层架构如下:

图片

系统的核心逻辑实现在 Scheduler 进程,也是我们介绍的分布式集群的载体。

三、TP 模式

TP 模式主要将模型中的权重张量按行/列拆分到多个 GPU 卡,每个 GPU 卡处理部分计算任务。

SGLang 实现的 TP,支持多机多卡,结合计算阶段的特点做任务拆分,譬如:embedding 按词表分段拆分,attention 计算的权重矩阵按 HEAD 拆分,attention 的结果投影按行拆分。

TP 模式进程视角:

图片

上图展示 tp_size=16 的进程结构,有 16 个 scheduler 进程作为 TP rank 0~15,其中 TP rank 0 负责获取请求,然后将请求转发给其他 TP rank。

TP 是基础并行模式,其他的并行模式如:PP、DP、DP Attention 都可以在局部 GPU 组里使用 TP。

四、PP 模式

PP 模式将模型中的多个层拆分到不同的 GPU 上,使得集群可以承载更大的模型。

PP 模式进程视角:

图片

每个 PP rank 负责部分模型层的计算。PP rank 层间包括两部分通信:

  • 请求和控制信息,在不同 PP rank 的 TP rank 0 之间传递。

  • hidden state,这部分是 PP 层间所有 TP rank 的点对点传输,每个 TP rank 只传输自己负责的部分分片数据。

上图中的 hidden state 只传输部分分片,而不是完整的 hidden state,这尽量的减少 PP rank 层间的通信量,后续层内再通过 all_gather 收集完整的 hidden state。

这个设计将 hidden state 传输拆分为两步,第一步是 PP rank 之间,第二步是 PP rank 内的 TP rank 之间,相比在所有的 TP rank 上一次性将 hidden state 传输到位。

这个设计可以减少 PP rank 之间的通信量,当 PP rank 处于不同的网络节点下时,可以大幅度降低跨节点通信量,整体通信耗时更短。

PP 模式的服务配置为 --pp-size,当它和 --tp-size 协作时,总 GPU 数为:pp_size * tp_size。

pp_size 表示模型层拆分为 pp_size 个阶段,tp_size 表示每一个阶段内并行计算组的大小。

每一个阶段的 tp_worker 都需要和下一个阶段的 tp_worker 通信,所以这里也会建立 tp_size 个通信组。

五、DP 模式

DP 模式将 GPU 拆分为多个小组,同时将一批请求拆分为多个小批次,每个 GPU 小组处理一个小批次。特别注意:只支持单机部署。

DP 模式进程视角:

图片

DP 模式下,不同 GPU 组是隔离的,不同小批次的请求处理也是隔离的,只有计算之外的入口进程和 detokenizer 进程是共享使用的。

我们也可以通过部署多套集群来实现和 DP 模式一样的效果,再考虑到 DP 模式的路由机制较为简单,未考虑容灾处理,因此 DP 模式实用价值较小。

DP 模式的一些特点:

(1)仅支持单机部署

server_args.py 代码中有断言:multi-node data parallel is not supported unless dp attention!

assert not (            self.dp_size > 1 and self.nnodes != 1 and not self.enable_dp_attention        ), "multi-node data parallel is not supported unless dp attention!"

data_parallel 进程在做 RoundRobin 分发时,将收到的请求发到某个 dp rank 下的 tp rank 0 zmq,因为是单机部署,采用的是 ipc 通信,不占用网络端口。

(2)sglang_router 比 DP 更好

如前面说的,DP 模式的实用价值较小,是数据并行的 demo 实现,而 SGLang 也提供了更好的工业化实现:sglang_router。

它在数据并行的基础能力上进一步支持了多机部署和其他周边功能:容错、动态扩缩容、多种路由策略等。

参考文档:

https://github.com/sgl-project/sglang/blob/main/docs/advanced_features/router.md

(3)和 dp_attention 的差异

DP 和 DP Attention 是两种并行策略,但它们有两点联系:

  • 它们都使用 --dp-size 参数配置。但这个配置在两种并行策略下有不同的含义(这是不好的设计),DP 集群的 TP 节点数为: dp_size * tp_size,而 DP Attention 的 TP 节点数为 tp_size。

  • 它们复用了少量的外围代码,譬如:使用相同的 data-parallel 进程以及相同的请求分发逻辑。

六、DP Attention 模式

DP Attention 模式在注意力计算阶段将 GPU 拆分为多个组,同时将一批请求也拆分为多个小批次,每一组 GPU 处理一小批请求,在其他计算阶段 GPU 还是作为整体以 TP 的方式做计算。

这种模式主要用于 DeepSeek V2/V3 模型,适用于它们的 MLA 结构,可以降低集群整体的 KV Cache 显存占用以及减少潜在表示在多 TP 间的重复计算。

DP Attention 模式进程视角:

图片

DP Attention 模式一些特点:

  • 请求的 RoundRobin 分发,所有 dp rank 下面的 attn_tp_rank 0 节点都会从 dp rank 0 的 data_parallel 进程获取请求,每个通信链路使用一个 zmq,因此 node 0 会占用 dp size 个端口。

  • FFN 层的协作计算,所有的 tp 都使用相同的 nccl_port,它们会协作完成计算。

  • 整个集群的 TP 节点数为:tp_size,这和 DP 模式不同。

每一个节点都会启动 DataParallelController 进程,但只有 0 号节点会进入事件循环负责接收 tokenizer 的请求,其他节点的 DataParallelController 在启动 Scheduler 进程之后就进入等待 Scheduler 进程退出的 join 中。

七、EP 模式

EP 模式专用于 MoE 结构的模型。EP 模式和 DP Attention 模式很像:将 GPU 卡分为多个 EP rank,每个 EP rank 负责一部分专家的计算(DP Attention 是每个 DP rank 负责一部分请求的计算)。

相比 TP 模式,EP 模式可以让专家数量变得可线性扩展,体现在两方面:

  • TP 模式要求每一个 GPU 卡都有全部专家的权重分片,随着专家数量的增加,GPU 卡也需要增加,但在专家数量很多而激活很稀疏的场景下,全部 GPU 卡都需要参与计算和通信,性能较差,并且无法为热点专家分配更多的 GPU 卡。

  • TP 模式的专家数会遇到单机的显存瓶颈,而无法继续增加专家。

注:DeepEP 是 DeepSeek 团队开源的,对 EP 的一种优化实现。

EP 模式计算过程示意图:

图片

(1)MoE 模型,EP 和 TP 的对比

TP 模式:

  • 每一个 TP rank 都会有所有专家的权重分片。

  • 推理时,每一个 TP rank 都需要获得全部 token 的 hidden state,然后做计算。

  • 计算完成之后再 all reduce 让每个 TP rank 都有完整的输出 hidden state。

EP 模式:

  • 每个 EP 组下的 TP rank 只有部分专家的权重分片,一个专家的权重分片只分布在一个 EP 组里。

  • 推理时,每一个 TP rank 只获得部分 token 的 hidden state 做专家计算,这部分 token 通过 All to All Dispatch 获得,在专家计算完成之后,再通过 All to All Combine 将结果传给原 TP rank。

通信量对比:

  • TP 模式在注意力计算完成之后需要 all-reduce,在 FFN 完成之后需要 all-redcuce;两次 all-reduce。

  • EP 模式在注意力计算完成之后,FFN 层每个 TP rank 只需要部分 token hidden state,因此注意力层的结果变到 FFN 层的输入是采用 scatter(reduce_scatter 或者 dp_scatter);

FFN 计算时需要两次 all-to-all 通信,一次是 hidden state 传到做计算的 TP rank 上,一次是计算完之后结果传回原 TP rank;

最后再有一次 all gather 让每一个 TP rank 上都有完整的 hidden state,以便下一层做注意力计算。

(2)为 FFN 准备数据的 scatter

EP 虽然是 FFN 层的并发策略,但因为 FFN 层的输入来自注意力层的输出,注意力层不同的并行策略会导致给到 FFN 层的输入有不同的格式。

这导致 FFN 层的输入数据准备会采用不同的处理函数,可能是 reduce-scatter,也可能是单纯的 dp-scatter。

八、PD 分离模式

除了上面基于计算并行的分布式,我们还可以将其推理过程拆分为两个阶段:prefill 和 decode,这两个阶段可以分别设计分布式集群。

图片

其中 prefill、decode 实例可以是前面提到的几种分布式集群,但 prefill、decode 实例在部分模型结构下还不支持异构部署,主要是因异构会导致 KV Cache 需要更复杂的实现,部分模型还未支持。

九、展望未来

我们从更高的层面来看待这些并行模式,可以发现各种并行模式是从大模型推理的不同视角去设计并行的:

  • 时序视角,不同阶段做并行——PD 分离

  • 批量请求视角,请求做并行——DP

  • 模型层次视角,模型层次做并行——PP

  • 矩阵计算视角,矩阵计算做并行——TP

我们可以更系统的列出来,如下:

图片

从上到下看逐步深入底层,从左往右看逐步下钻,上图中的部分并行模式 SGLang 还未实现,但业内已有提出这些想法,如果继续下钻,也可能会想到更多的分布式和并行设计。

上图中文章未涉及的是 overlap,它本质上是不同硬件的并行,来让瓶颈硬件持续工作,这在分布式集群下很常见:减少网络通信阻塞的 GPU 计算时长。

当无数的并行模式被提出来时,哪种模式适合我们的业务场景,而我们又应该怎么去开发实现?

这是非常费力的工作,从工业化效率考虑,也许未来会有一种“任务流架构”,把每个请求内的多个矩阵计算作为一个个的任务。

这些任务在满足数据依赖的前提下,通过任务流架构自由的选择执行的 GPU、执行的顺序、是否融合。

同时任务流架构可以自动的根据业务场景给出最佳的组合,来满足业务的 SLA。

可能是 TTFT 优先,也可能是 TPOT 优先,又或者是两者都有阈值,系统能自动的调配资源,使得满足耗时 SLA 的情况下达到最大吞吐,最少成本。

十、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

在这里插入图片描述

01.大模型风口已至:月薪30K+的AI岗正在批量诞生

在这里插入图片描述

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K(数据来源:BOSS直聘报告)

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

02.如何学习大模型 AI ?

🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐