模型层 开放阅读

序列并行

Sequence Parallelism

概念 ID
sequence-parallelism
更新时间
2026-05-29
来源数量
待补

序列并行(Sequence Parallelism)

3 秒看懂

序列并行(SP) 是将 Transformer 的序列维度(token 位置)切分到多张卡上并行计算的技术,与张量并行(TP)、流水线并行(PP)、数据并行(DP)互补,核心目标是降低长序列训练的激活显存占用并支持更长上下文窗口。主流实现包括 NVIDIA Megatron-SP(与 TP 耦合)、Ring Attention(环形通信)和 DeepSpeed Ulysses(AllToAll 通信)三条路线。

3 分钟产业解释

为什么需要序列并行?

大模型训练的显存瓶颈主要来自三块:参数、优化器状态、激活值(Activations)。当序列长度从 2K 推向 128K 甚至更长时,激活值的显存占用随序列长度线性增长,成为首要瓶颈。

以标准 Transformer 为例,每一层需要存储的激活包括:LayerNorm 输入、注意力分数矩阵、Dropout 掩码等,这些激活在前向时需要保留供反向使用(或用重计算换时间)。序列越长,这批激活越大。

序列并行的思路:既然序列维度很长,那就把它切成 N 份,每张卡只处理 S/N 个 token 的部分工作,从而将激活显存降低约 N 倍(在切分覆盖的操作范围内)。

在并行体系中的位置

现代大规模训练通常采用 4D 并行

维度切分对象典型技术
数据并行(DP)batch 维度ZeRO、DDP
张量并行(TP)单层内的隐藏维度Megatron TP
流水线并行(PP)层间切分GPipe、PipeDream
序列并行(SP)序列(token)维度Megatron-SP / Ring Attention / Ulysses

SP 与前三种正交,可以组合使用。实际训练中(如 GPT-3 175B 级别)通常 TP 在节点内(依赖 NVLink 高带宽),SP 与 TP 耦合或跨节点使用。

15 分钟专家深入

核心问题:TP “缝隙”中的冗余计算

Megatron-LM 的张量并行将注意力层和 MLP 层的隐藏维度切分到 N 张卡上,但层间的 LayerNorm、残差连接、Dropout 等操作不在 TP 切分范围内。在原始实现中,这些操作每张卡都持有完整的 [S, d] 张量(S 为序列长度,d 为隐藏维度),所有卡做完全相同的冗余计算。

当 S 很大时,这块冗余激活是显存大户。

Megatron-SP 的关键设计

Megatron-LM v2 的方案(NVIDIA,Korthikanti 等人,2022 年):

核心思路:在非 TP 区域(LayerNorm、残差、Dropout),沿序列维度切分,每张卡只持有 [S/N, d];进入 TP 区域(注意力、MLP)时再沿隐藏维度切分,每张卡持有 [S, d/N]

通信机制的巧妙之处:原始 Megatron TP 在 TP 区域出口需要一次 AllReduce(合并各卡的隐藏维度部分结果)。Megatron-SP 将这个 AllReduce 拆解为:

  • ReduceScatter:合并隐藏维度分量(reduce)的同时,沿序列维度分发(scatter),输出 [S/N, d]
  • ****在下一个 TP 区域入口用 AllGather 沿序列维度收集聚合,恢复 [S, d] 后再做 TP 切分

关键结论:总通信量与纯 TP 完全相同(AllReduce = ReduceScatter + AllGather,通信量都是 2×S×d),但显著降低了非 TP 区域的激活显存。这是一个”免费午餐”——不增加通信成本即可减少显存。

Ring Attention 的不同思路

Ring Attention(Liu 等人,2023 年,UC Berkeley)采用完全不同的方法:

设备 0: 持有 Q0 K0 V0    ←── 环形传递 KV 块 ──→
设备 1: 持有 Q1 K1 V1    ←── 环形传递 KV 块 ──→
设备 2: 持有 Q2 K2 V2    ←── 环形传递 KV 块 ──→
设备 3: 持有 Q3 K3 V3    ←── 环形传递 KV 块 ──→

每个设备持有自己那一段序列的 Q、K、V。注意力计算需要每个 Q 段与所有 K、V 段做点积。Ring Attention 的做法是:

  1. 每个设备先用本地 KV 块计算注意力(分块方式,类似 FlashAttention 的在线 softmax)
  2. 同时将当前 KV 块沿环形拓扑传给下一台设备
  3. 接收上一台设备传来的 KV 块,继续计算
  4. 重复 N-1 轮,直到每个设备都看到了所有 KV 块

核心优势:通信与计算重叠——计算当前块的注意力时,同步发送/接收下一个 KV 块。只要单次通信时间 ≤ 单块计算时间(在大部分合理配置下成立),通信被完全隐藏。

上下文长度扩展性:Ring Attention 理论上可将支持的上下文长度线性扩展为设备数 × 单设备上下文长度。

DeepSpeed Ulysses 的折中路线

DeepSpeed Ulysses(Jacobs 等人,2023 年,Microsoft)采用 AllToAll 通信实现序列切分到注意力头切分的转置:

        AllToAll                    注意力计算           AllToAll
序列并行布局 ──────→ 头并行布局 ──────→ 注意力输出 ──────→ 序列并行布局
[S/N, H, d_h]      [S, H/N, d_h]                     [S/N, H, d_h]

每层注意力需要两次 AllToAll:先从序列切分布局转为头切分布局(每个设备看到完整序列但只处理部分头),计算注意力后再转回来。

与 Ring Attention 的取舍

  • Ring Attention 通信量小但轮次多(N-1 轮),适合带宽受限场景
  • Ulysses 通信轮次少(2 次 AllToAll)但单次通信量大,适合高带宽互连

技术原理(深入机制)

一、Megatron-SP 在 Transformer Block 中的工作流

以一个标准 Pre-Norm Transformer Block 为例,TP 度 = 4:

┌─────────────────────────────────────────────────────────┐
│                    非 TP 区域(SP 域)                    │
│  每张卡持有: [S/4, d]                                     │
│                                                           │
│  ┌─────────┐   ┌─────────┐                              │
│  │ LayerNorm│→ │ Dropout  │  序列维度各卡独立处理          │
│  └─────────┘   └─────────┘                              │
└──────────────────────┬──────────────────────────────────┘
                       │ AllGather(序列维度聚合)
                       ▼
┌─────────────────────────────────────────────────────────┐
│                    TP 区域                                │
│  每张卡持有: [S, d/4]                                     │
│                                                           │
│  ┌──────────┐  ┌───────────┐  ┌──────────┐             │
│  │QKV Linear│→ │Self-Attn  │→ │Out Linear│             │
│  │(列切分)   │  │(头切分)    │  │(行切分)   │             │
│  └──────────┘  └───────────┘  └──────────┘             │
└──────────────────────┬──────────────────────────────────┘
                       │ ReduceScatter(隐藏维度归约 + 序列维度分散)
                       ▼
┌─────────────────────────────────────────────────────────┐
│                    非 TP 区域(SP 域)                    │
│  每张卡持有: [S/4, d]                                     │
│                                                           │
│  ┌───────────┐   ┌─────────┐                            │
│  │ 残差加法    │→ │ LayerNorm│  ...继续下一段               │
│  └───────────┘   └─────────┘                            │
└─────────────────────────────────────────────────────────┘

通信操作详解:

AllReduce 分解为 ReduceScatter + AllGather:

ReduceScatter 示例 (N=4):
  设备0: [S, d/4] ──┐
  设备1: [S, d/4] ──┼─→ reduce → [S, d] → scatter S → 每设备得 [S/4, d]
  设备2: [S, d/4] ──┤                                    设备i 获得第 i 段
  设备3: [S, d/4] ──┘

AllGather 示例 (N=4):
  设备0: [S/4, d] ──┐
  设备1: [S/4, d] ──┼─→ gather → 每设备得 [S, d]
  设备2: [S/4, d] ──┤
  设备3: [S/4, d] ──┘

通信量分析:

操作每设备通信量
原始 AllReduce2×(S×d/N)
SP ReduceScatter(S×d/N)
SP AllGather(S×d/N)
总计2×(S×d/N),与原始相同

二、Ring Attention 的块级在线 Softmax

Ring Attention 需要在分块条件下正确计算 softmax,核心依赖在线 softmax 技术(与 FlashAttention 同源):

对于 Q_j 与第 i 个 KV 块的注意力计算:

m_j^(i) = max(m_j^(i-1), rowmax(S_ji))        # 运行最大值
P_ji = exp(S_ji - m_j^(i))                      # 局部 softmax 分子(指数化)
l_j^(i) = exp(m_j^(i-1) - m_j^(i)) · l_j^(i-1) + rowsum(P_ji)  # 运行分母
O_j^(i) = diag(exp(m_j^(i-1) - m_j^(i)))^(-1) · O_j^(i-1) + P_ji · V_i
          再对 O_j^(i) 做归一化

其中 S_ji = Q_j · K_i^T / sqrt(d_k)

这保证了即使 KV 被分成 N 块逐一处理,最终结果与全量注意力数学等价(在浮点精度范围内)。

三、Ulysses 的 AllToAll 转置

AllToAll 通信示意 (N=4 设备, 4 个注意力头):

序列并行布局:
  设备0: tokens[0:S/4],  heads[0:4]     ← 每设备全头、部分序列
  设备1: tokens[S/4:S/2],heads[0:4]
  设备2: tokens[S/2:3S/4],heads[0:4]
  设备3: tokens[3S/4:S],  heads[0:4]

  ↓ AllToAll 转置

头并行布局:
  设备0: tokens[0:S],   heads[0:1]      ← 每设备全序列、部分头
  设备1: tokens[0:S],   heads[1:2]
  设备2: tokens[0:S],   heads[2:3]
  设备3: tokens[0:S],   heads[3:4]

每个设备在头并行布局下独立计算注意力(对完整序列),然后通过反向 AllToAll 回到序列并行布局。


技术演进史

时间事件意义
2019-2020Megatron-LM v1(Shoeybi 等人,NVIDIA)提出大规模 TP + PP,非 TP 区域全量冗余
~2021DeepSpeed 序列并行早期探索Microsoft 在 DeepSpeed 框架中尝试序列维度切分
2022Megatron-LM v2(Korthikanti 等人,NVIDIA)将 SP 与 TP 耦合,通信量零增加实现激活显存节省;配套选择性激活重计算
2023Ring Attention(Liu 等人,UC Berkeley)环形通信 + 在线 softmax,线性扩展上下文长度
2023DeepSpeed Ulysses(Jacobs 等人,Microsoft)AllToAll 路线,系统级优化长序列训练
2024+多种 SP 方法组合与工程化SP 与 FlashAttention、Context Parallelism 等融合,走向生产级

注:以上时间为论文公开/发布的大致时间,非精确日期。


技术路线对比

维度Megatron-SP(耦合 TP)Ring AttentionDeepSpeed Ulysses
切分方式非 TP 区域切序列,TP 区域切隐藏维度全区域切序列全区域切序列,注意力内通过 AllToAll 转为头并行
通信模式ReduceScatter + AllGatherRing 环形传递 KV 块AllToAll(每层两次)
额外通信量零(替换 AllReduce,量相同)有,但可与计算重叠有,AllToAll 通信量与序列长度×隐藏维度成正比
上下文扩展能力受限于 TP 度(通常 ≤ 节点内 GPU 数)理论上线性扩展(设备数 × 单设备上下文)取决于设备数和 AllToAll 效率
通信-计算重叠不需要(无额外通信)是,核心优势部分可重叠
对互连带宽要求无额外要求(已含在 TP 通信中)中等(带宽 ≥ 计算/通信比阈值即隐藏)较高(AllToAll 为 all-to-all 通信模式)
实现复杂度低(Megatron-LM 已集成)中高(需块级 softmax、掩码处理)中(DeepSpeed 已集成)
与 TP 的关系必须耦合使用独立,可与任意并行组合独立,可与任意并行组合
适用场景节点内训练,已有 TP 部署超长上下文训练,跨节点高带宽互连环境,中长序列

⚠️ 以上对比为定性分析,实际性能取决于具体模型规模、序列长度、硬件拓扑和框架实现,无通用量化数据可引用。


上下游

上游依赖

环节具体关系
GPU 算力SP 本身不改变计算量(FLOPs 不变),但改变计算分布;需要足够的并行设备数
互连带宽Ring Attention 和 Ulysses 对互连带宽敏感;NVLink/NVSwitch 带宽越高,SP 效率越好
显存 HBMSP 的直接目的是降低激活显存,对 HBM 容量需求的降低幅度与 SP 度正相关
FlashAttentionRing Attention 的块级 softmax 与 FlashAttention 技术同源;FlashAttention 本身也降低了单卡内注意力显存
深度学习框架Megatron-LM、DeepSpeed、PyTorch FSDP 等框架提供 SP 实现;框架成熟度决定易用性

下游影响

环节具体影响
长上下文模型训练SP 使 128K+ 甚至更长上下文的全量训练成为可能(非靠位置编码外推)
推理长序列处理训练时的长上下文能力直接决定推理时可服务的最大上下文长度
模型架构选择SP 的可用性使研究者在设计架构时不必过度顾虑序列长度限制
训练吞吐SP 在降低显存的同时,可能允许更大 batch size,间接提升 MFU

关键指标

指标说明典型表现(定性)
SP 度(sp_size)序列被切分的份数Megatron-SP 通常 = TP 度;Ring/Ulysses 灵活可调
激活显存节省比例SP 覆盖的操作区域的激活显存降低Megatron-SP: 非 TP 区域激活降低约 sp_size 倍;Ring/Ulysses: 注意力相关激活降低约 sp_size 倍
通信额外开销相比无 SP 的纯 TP 方案Megatron-SP: ~零;Ring: 可隐藏;Ulysses: 有,取决于互连
等效最大上下文长度训练中实际支持的最大序列长度Ring Attention: 理论上 ≈ 单卡上下文 × sp_size;实际受显存和通信限制
计算效率(MFU)模型 FLOPs 利用率SP 本身不影响计算量,但可能通过减少重计算需求间接提升 MFU

具体数值因模型规模、硬件配置、框架版本差异很大,未找到统一的基准对比数据,不编造具体数字。


供需与市场数据

为什么 SP 现在重要

需求端:

  • 大模型上下文窗口竞赛:主流模型从 4K → 32K → 128K → 更长,训练时必须在序列维度上并行
  • 多模态长视频/文档理解:输入 token 数激增
  • Agent/长程推理场景:需要更长的工作记忆

供给端(硬件瓶颈):

  • 单卡 HBM 容量增长速度远落后于模型规模和序列长度增长速度
  • SP 是用通信换显存的策略,对互连带宽提出更高要求
  • 节点内 NVLink 带宽持续提升(NVLink 4→5),利好 SP 实际效率

市场关联

影响方向分析
高带宽互连需求SP 通信量增大 → NVLink/NVSwitch、InfiniBand 需求强化
GPU 单卡显存压力缓解SP 降低激活显存 → 部分场景可用更少卡训练同等模型
长上下文推理市场训练侧 SP 能力 → 推理侧可服务更长输入 → 支撑文档分析、代码理解等高价值场景

无独立的”序列并行”市场规模数据,它嵌入在大模型训练基础设施的投入中。


代表公司与技术映射

公司/机构角色具体贡献
NVIDIA核心推动者Megatron-LM 系列(Megatron-SP 与 TP 耦合方案);CUDA 通信原语支持
Microsoft框架提供者DeepSpeed Ulysses;DeepSpeed 框架中的 SP 支持
UC Berkeley算法创新者Ring Attention 论文提出
Google DeepMind大规模实践者内部长序列训练方案(具体实现未充分公开)
Meta框架与实践PyTorch DTensor / FSDP 中的序列切分支持;内部 LLaMA 长上下文训练
Anthropic / OpenAI需求方超长上下文产品功能依赖 SP 等长序列训练技术

注:各家内部的并行策略细节通常未充分公开,上述为基于公开论文、开源代码和行业报道的推断。


投资逻辑

核心推理链

大模型上下文长度持续增长(4K → 128K+)
  ↓
单卡显存无法容纳长序列的完整激活值
  ↓
序列并行成为训练必需品
  ↓
SP 增加通信需求 → 高带宽互连成为关键基础设施
  ↓
利好: NVLink/NVSwitch 生态(NVIDIA)、高速网络设备(InfiniBand/RoCE 供应商)

具体关注点

  1. NVIDIA 的生态锁定:Megatron-SP 与 TP 的耦合设计深度绑定 NVIDIA 的 NVLink 通信拓扑,强化了其在大规模训练中的不可替代性
  2. 互连带宽的长期增长:每代 GPU 的互连带宽提升都是 SP 效率提升的前提,关注 NVLink 代际升级节奏
  3. 开源框架竞争:Megatron-LM vs. DeepSpeed vs. PyTorch 原生方案之间的生态竞争,影响下游客户的硬件选择
  4. 超长上下文的落地验证:如果 128K+ 上下文在商业应用中被证明有显著价值,SP 相关技术的投入将加速

风险因素

  • 若模型架构本身演进到不依赖超长注意力(如线性注意力、状态空间模型等),SP 的重要性可能降低
  • 单卡 HBM 容量大幅提升(如 HBM4 代际跃升)可能部分缓解 SP 需求
  • 推理侧的长序列处理可能采用与训练不同的优化路径

常见误读纠偏

❌ 误读 1:“Megatron-SP 会增加通信量”

正解:Megatron-SP 用 ReduceScatter + AllGather 替换了原有的 AllReduce,总通信量完全相同。这是一个零额外通信成本的优化。需要注意的是,这是特指 Megatron-SP(耦合 TP 的方案),Ring Attention 和 Ulysses 确实引入了额外通信。

❌ 误读 2:“序列并行和数据并行是一回事”

正解:数据并行(DP)沿 batch 维度切分,每张卡处理不同的数据样本但相同的完整模型;序列并行(SP)沿序列维度切分,每张卡处理同一样本的不同 token 段。两者正交,可以同时使用。DP 不能降低单样本的激活显存,SP 可以。

❌ 误读 3:“Ring Attention 能实现无限长上下文”

正解:Ring Attention 将上下文长度线性扩展到设备数 × 单设备上下文,但”线性扩展”≠“无限”。实际受限于:(1) 可用设备总数;(2) 通信-计算重叠的前提条件(通信延迟 ≤ 计算时间);(3) 超长序列的数据获取和训练稳定性。

❌ 误读 4:“SP 减少了总计算量(FLOPs)”

正解:SP 不改变总 FLOPs——所有 token 对之间的注意力计算仍然需要完成,只是分布在不同设备上。SP 的核心收益是显存节省上下文长度扩展,不是计算加速。不过,显存节省可能间接允许更大 batch size,从而提升硬件利用率(MFU)。


学习路径

入门(建立直觉)

  1. 理解 Transformer 的前向/反向中,哪些张量随序列长度线性增长(激活值)
  2. 了解 Megatron-LM 的张量并行(TP)原理——知道”哪些操作被 TP 切分了,哪些没有”
  3. 读懂 AllReduce = ReduceScatter + AllGather 的分解

进阶(理解机制)

  1. 阅读 Megatron-LM v2 论文:Reducing Activation Recomputation in Large Transformer Models(Korthikanti 等人,2022)
  2. 阅读 Ring Attention 论文:Ring Attention with Blockwise Transformers for Near-Infinite Context(Liu 等人,2023)
  3. 阅读 DeepSpeed Ulysses 论文
  4. 对比三种方案的通信模式和适用场景

深入(工程实践)

  1. 阅读 Megatron-LM 开源代码中 sequence_parallel 相关实现
  2. 理解 FlashAttention 的在线 softmax 机制(Ring Attention 的基础)
  3. 在小规模集群上实际跑通不同 SP 方案,观察显存和吞吐变化
  4. 研究 SP 与 FlashAttention、Context Parallelism 的融合设计

推荐资源

  • NVIDIA Megatron-LM GitHub 仓库(有详细注释和文档)
  • Flash Attention 论文(Dao 等人)——理解在线 softmax
  • Lillian Weng 的博客关于并行训练的综述文章
  • 各论文的实验部分——对比不同并行策略的实际效果

一句话总结

序列并行通过沿 token 维度切分计算和存储,解决了长序列训练的激活显存瓶颈——Megatron-SP 与 TP 耦合实现零额外通信的显存节省,Ring Attention 和 Ulysses 则从不同角度实现了序列长度的弹性扩展,三者共同构成了当前大模型长上下文训练的并行基础设施。


延伸阅读与来源

核心论文

  1. Korthikanti, V., et al. (2022). Reducing Activation Recomputation in Large Transformer Models. — Megatron-SP 方案
  2. Liu, H., et al. (2023). Ring Attention with Blockwise Transformers for Near-Infinite Context. — Ring Attention
  3. Jacobs, S. A., et al. (2023). DeepSpeed Ulysses: System Optimizations for Enabling Training of Extreme Long Sequence Transformer Models. — Ulysses
  4. Shoeybi, M., et al. (2020). Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism. — Megatron-LM 基础

补充参考

  1. Dao, T., et al. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. — 在线 softmax 技术基础
  2. Rajbhandari, S., et al. (2020). ZeRO: Memory Optimizations Toward Training Trillion Parameter Models. — 大模型显存优化全景
  3. NVIDIA Megatron-LM GitHub: https://github.com/NVIDIA/Megatron-LM — 工程实现参考
  4. Microsoft DeepSpeed GitHub: https://github.com/microsoft/DeepSpeed — Ulysses 实现参考

来源声明

本文中涉及的具体论文归属基于上述论文的公开版本;硬件参数和厂商信息如无特殊标注则为公开已知信息;无量化基准对比数据来源的部分已标注为定性分析。文中未引用任何付费行业报告的独家数据。


准确性声明:本页技术内容基于公开论文和开源代码中的已知信息撰写。涉及具体数字(通信量公式、张量形状推导)时均有明确推导依据;涉及厂商内部实现细节时标注”未充分公开”。如您发现事实性错误,欢迎指正。

source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型