@yukangchen_: 很高兴分享我们的新博客:利用并行化扩展视频训练 https://research.nvidia.com/labs/eai/blogs/scali…
摘要
这篇来自NVIDIA Research的博客讨论了序列并行化如何扩展长视频训练系统,既支持理解任务也支持生成任务,解决了在多GPU上适配超长视频序列的挑战。
查看缓存全文
缓存时间: 2026/06/08 19:27
很高兴分享我们的新博客:使用并行化扩展视频训练 https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism… 我们讨论了并行化如何帮助扩展长视频训练系统,既用于理解也用于生成。
使用并行化扩展视频训练
来源:https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/
长视频训练改变了分布式计算的基本单位。一个短视频样本可以放在一个 GPU 上。而一个长视频样本可能已经太大或结构太复杂,无法由单个 GPU 处理。上一篇文章指出,视频生成正成为一个基础设施问题。本文专注于一个具体的基础设施问题:当一个视频序列长到无法放入单个 GPU 时,我们如何在不改变模型所见内容或损失函数意义的前提下,对其进行训练?答案并非简单的“使用更多 GPU”。数据并行性将更多样本分配给更多工作节点。张量并行性分割矩阵维度。模型并行性(包括流水线式的层分割)则分割模型本身。对于长视频而言,瓶颈通常出现在单个样本内部:时间/上下文序列本身,无论其表示为视觉 token 还是潜在表示,以及定义训练目标的注意力掩码和目标 token。
长视频需要序列并行性
短视频适合单 GPU。更长的视频产生更多 token。极长视频产生过多 token 无法放入单 GPU,因此序列并行性将序列分割到多个 GPU 上。
- 短视频……少量 token,适合单 GPU
- 较长视频……更多 token,更高的内存和计算需求
- 极长视频……过多 token,无法放入单 GPU
- 序列并行性 (SP) ++……将序列分割到多个 GPU 上,平衡内存、计算和工作负载
目录
- 序列并行性实际并行化的是什么 (https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/#sec-1)
- SP 系统简述 (https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/#sec-2)
- 面向长视频理解的 SP (https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/#sec-3)
- 面向长视频生成的 SP (https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/#sec-4)
- 理解系统与生成系统的差异 (https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/#sec-5)
- 长视频训练系统的设计原则 (https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/#sec-6)
- 结语:时间维度是新的批次维度 (https://research.nvidia.com/labs/eai/blogs/scaling-video-training-with-parallelism/#closing-sp-scaling-training-for-long-videos)
1. 序列并行性实际并行化的是什么
SP 是针对单个样本内部的并行化轴。数据并行性分割样本;张量并行性和模型并行性分割模型计算。序列/上下文并行性分割时间或上下文维度本身。当单个视频包含数百或数千帧时,这一点就变得重要,但瓶颈并不总是 token 数量。
LongVILA 是一个 token 密集的例子:1400 帧变成约 274K 个 token,训练上下文可达 2M 个 token。LongLive-2.0 则不同:自回归教师强制将每个时间块表示为两个流:干净历史和噪声目标。如果通用 SP 分割拼接后的干净/噪声序列,某些 rank 可能会承担过多干净部分,而另一些则承载目标损失,并且 VAE 编码仍可能被复制。平衡的 SP 改变了工作单元:每个 rank 保留同一时间块的干净/噪声对,并仅对其本地块加上一小段左侧重叠(或称为 halo)进行 VAE 编码[1][2]。
短视频训练:多个样本 -> 分割批次
长视频训练:一个样本 -> 分割样本内部
其思维模型是:并行化轴:每个 GPU 拥有什么?
一个动画比较了数据并行性、张量并行性、模型/流水线并行性和序列并行性。卡片逐一出现。
并行化轴:每个 GPU 拥有什么? 常见的轴分割批次、参数、隐藏维度或层。SP 分割单个样本内部。
- 数据并行性:批次 A / 批次 B。分割批次。
- 张量并行性:H/2 / H/2。分割注意力头或隐藏维度。
- 模型并行性:流水线式层分割 L1 L2 L3。分割模型深度。
- 序列并行性:t0 t1 t2 t3。分割上下文/时间。
图 1. 生成的动画图解。数据并行性分割样本,张量并行性分割隐藏维度,模型/流水线并行性分割模型深度,序列/上下文并行性分割单个样本内部。
| 并行化类型 | 分割内容 | 解决的问题 | 单独用于长视频时的不足 |
|---|---|---|---|
| 数据并行性 / FSDP / ZeRO | 批次、参数、梯度、优化器状态 | 参数和优化器内存;跨样本吞吐量 | 单个视频样本可能仍然太大,无法放入一个 rank |
| 张量并行性 | 隐藏维度、注意力头、MLP 维度 | 层内的大型矩阵运算 | 序列激活可能仍然过大 |
| 模型/流水线并行性 | Transformer 层或其他模型分区 | 无法放入单个设备的深层模型 | 每个阶段或分区可能仍看到完整序列 |
| 序列/上下文并行性 | 序列、上下文或时间维度 | 长序列的激活和注意力无法放入单个设备 | 分片必须匹配 token 来源、训练目标、掩码和硬件 |
在本文中,SP 指广义的序列/上下文并行性:将一个样本的上下文、时间或 token 维度在多个 rank 之间进行划分。对于长视频,这种划分还必须考虑 token 的来源、模型训练的目标、掩码以及 GPU/节点布局[4][9]。
2. SP 系统简述
在探讨视频之前,先了解一下 LongVILA 和 LongLive-2.0 在 SP 图谱中的位置会很有帮助。
从系统角度看序列并行性。 Li 等人将序列并行性定义为一种通过将长序列分割成块并分布到多个设备上来突破输入序列长度限制的方法[3]。
Megatron 序列并行性与上下文并行性。 Megatron 风格的 SP 减少了激活内存,并能自然地与张量并行性交互。Megatron Core 后来的上下文并行性通过划分网络输入和激活的序列维度,泛化了这一思想[4][9]。
DeepSpeed-Ulysses。 Ulysses 沿序列维度划分输入数据,并在注意力计算中使用全到全通信,当注意力头的数量支持所需划分时,这种方法效率较高[5]。
Ring Attention。 Ring Attention 使用块状注意力和键值块的环形通信,让设备在计算本地注意力的同时流式传输 KV 块[6]。这使得上下文长度能够随设备数量自然扩展。
USP 和 LoongTrain。 USP 将 Ulysses 风格和 Ring 风格的方法统一到一个更广泛的序列并行设计空间中[7]。LoongTrain 则朝着相同的方向推进,针对长序列 LLM 训练提出了 2D-Attention 和头-上下文并行性[8]。
这张图谱提供了词汇,而非最终答案。 这些系统回答了如何分布长 Transformer 序列的问题。长视频增加了另一层复杂性:序列是由多模态流水线或结构化生成目标产生的。
为什么视频不仅仅是更长的文本
- 视频理解: token 通过视觉编码器产生。视频帧 -> 视觉编码器 -> 视觉 token -> LLM。需要平衡编码和 token 分片。
- 视频生成: 布局本身就是目标。干净历史 -> 噪声目标块。损失作用于噪声侧。视频 SP 必须尊重 token 来源和 token 含义。
3. 面向长视频理解的 SP
LongVILA 是一个用于长视频理解的长上下文 VLM 系统。在算法上,它通过上下文扩展和长视频监督微调扩展了 VILA 训练方案。在系统方面,其核心思想是多模态序列并行性,即 MM-SP[1]。其核心数据展示了这一领域的情况:LongVILA 将 VILA 从 8 个视频帧扩展到 2048 帧,并在 6000 帧的“大海捞针”评估中报告了 99.8% 的准确率,其中视频可能超过 1M 个 token[1]。
LongVILA 多模态序列并行性动画 — 显示 LongVILA MM-SP 的动画图解:基线 Ring SP、两阶段(图像然后 token)分片、以及拓扑感知通信。
LongVILA MM-SP:两阶段分片 — MM-SP 首先平衡图像/帧的工作,然后针对 LLM 重新分片视觉和文本 token。图像 token / 文本 token / P2P / 全到全 / 两阶段分片策略。
- 基线:Ring SP — token 被分割,但视觉编码器工作负载不平衡。GPU 0:350 token;GPU 1:350 token;P2P KV。
- MM-SP:按图像分片,然后按 token 分片
- GPU 0 输入 / GPU 1 输入 / 300 文本
- 阶段 1:按图像(100 100 100 100)
- 阶段 2:按 token(300 文本)
- GPU 0 最终分片:100 100 100 50
- GPU 1 最终分片:50 300 文本
- 拓扑感知通信
- Ring SP:到处 P2P(节点 0 GPU 等 / 节点 1 GPU 等 / P2P)
- MM-SP:2D-Attention — 每个节点内全到全,跨节点 P2P。(GPU 等 / intra-node A2A / inter-node P2P)
图 2. 基于 LongVILA 生成的动画图解。MM-SP 首先平衡图像/帧工作负载,然后平衡 token 工作负载;其 2D-Attention 通信使用节点内全到全和节点间 P2P。来源:LongVILA[1]。
为什么纯文本 SP 不够
Ring 风格或文本中心的 SP 可以分片 token 序列。但在 VLM 中,模型并非从干净的 token 序列开始。它从帧/图像和文本开始,然后使用视觉编码器产生视觉 token。如果系统仅在此之后才进行分片,视觉塔(vision tower)的工作负载可能仍然不平衡。因此,LongVILA 的 MM-SP 采用了两阶段分片策略:
- 阶段 1:按图像或帧分片。 帧被分布到各个 SP rank 上,以平衡视觉塔的工作负载。
- 阶段 2:按 token 分片。 在视觉嵌入和文本组装完成后,得到的序列在 rank 之间进行平衡,以供 LLM 使用。
这是一个微小但重要的视角转变。SP 的边界被移到了流水线的更早阶段。系统不会一直等到 LLM 看到长 token 序列才行动;它从视频变成视觉工作的那一刻起就开始平衡。
通信应与硬件拓扑匹配
LongVILA 还表明,SP 不仅仅是关于张量切片。它还关于选择与机器相匹配的通信模式。论文对比了依赖于点对点通信的 Ring 风格 SP,与 MM-SP 的 2D-Attention 设计:节点内全到全利用快速的 NVLink 带宽,而节点间 P2P 则处理较慢的跨节点路径[1]。
LongVILA 启示: 对于长视频理解,SP 必须成为多模态 SP。系统必须知道视觉 token 来自何处,而不仅仅是 Transformer token 去向何方。
面向强化学习的 SP。 LongVILA-R1 将相同的 SP 思想扩展到强化学习,其中一个长视频在多次展开(rollout)以及策略/参考模型预填充中被重用。其多模态强化学习序列并行性(MR-SP)首先在展开期间将视频帧编码分割到多个 GPU 上。然后它收集并缓存视频嵌入,以便重复的展开可以重用它们。最后,它对策略模型和参考模型都使用的长视频前缀应用 SP。系统现在不仅要分割 token,还要分割展开时的编码和缓存的视频嵌入。论文报告在 512 帧的 RL 训练上实现了高达 2.1 倍加速,并在单个 8xA100 节点上扩展到 1024 帧而不出现内存不足[10]。
4. 面向长视频生成的 SP
LongLive-2.0 解决了另一个问题:长视频生成基础设施。完整的系统包括 NVFP4 训练和推理、KV 缓存压缩、并行反量化以及异步 VAE 解码。对于本文而言,关键的训练端思想是平衡的 SP[2]。
与 LongVILA 的差异很重要。在理解任务中,瓶颈在于帧/图像如何变成视觉 token,进而形成长的 VLM 序列。在 LongLive-2.0 中,瓶颈来自于自回归教师强制:逻辑序列包含干净历史和噪声目标两个流。Ulysses 风格的 SP 会改变 token 为注意力而布局的顺序。掩码仍然可以按该顺序构建,但系统必须记住哪些干净和噪声块来自同一时间段。因此,平衡的 SP 并非手动配对掩码条目;它选择了一个工作单元,其中每个 rank 保留匹配的干净/噪声块以及平衡的目标 token 份额。
LongLive-2.0 自回归训练的常规 SP 动画图解 — 图 3a。基于 LongLive-2.0 生成的动画图解。在传统 SP 中,VAE 准备是集中式的,并且在拼接的干净/噪声序列上进行分片可能导致承载损失的 target token 仅集中在少数 rank 上。来源:LongLive-2.0[2]。
LongLive-2.0 自回归训练的平衡 SP 动画图解 — 图 3b。基于 LongLive-2.0 生成的动画图解。平衡 SP 将每个 GPU 分配一个时间上的干净/噪声对,因此本地 VAE 编码、按 Ulysses 顺序构建的教师强制掩码以及目标 token 都分布在各个 rank 上。来源:LongLive-2.0[2]。
朴素布局:只有干净内容的 rank 和承载目标重量的 rank
高效的教师强制公式化构建的序列类似于:
[ 干净历史潜在表示 ; 噪声目标潜在表示 ]
如果普通的 SP 在不解自回归目标的情况下切割此拼接序列,某些 rank 可能主要包含干净上下文,而其他 rank 则包含承载损失的噪声目标 token。序列被分区了,但训练工作并未平衡。
平衡 SP 的答案:每个 rank 上的配对块
平衡 SP 改变了数据布局。每个 SP rank 在本地构建干净潜在表示和噪声潜在表示。
相似文章
@yukangchen_: 我们发布了一篇博客:“Why Video Gen Is an Infra Problem”。 https://research.nvidia.com/labs/eai/blogs/video-gen-is-an-i…
NVIDIA研究博客认为,长视频生成正在成为一个基础设施问题,需要在模型、内存、KV缓存、VAE解码、调度和部署基础设施上进行全栈协同设计,并以LongLive 2.0作为案例研究。
LongLive-2.0:用于长视频生成的NVFP4并行基础设施
LongLive-2.0 引入了一种基于NVFP4的并行基础设施,用于长视频生成,在训练上实现了高达2.15倍的加速,推理上实现了1.84倍的加速,5B模型达到了45.7 FPS。
实时长视频生成(GitHub仓库)
NVlabs 发布了 LongLive 2.0,这是一个采用 NVFP4 量化的实时长视频生成并行基础设施,同时支持训练和推理。它达到了 45.7 FPS,并被 ICLR 2026 接收。
PyTorch分布式:加速数据并行训练的实践经验
本文详细介绍了PyTorch分布式数据并行模块的设计与优化,重点阐述了梯度分桶(gradient bucketing)和计算-通信重叠等技术,这些技术使系统在使用256个GPU时实现了接近线性的可扩展性。
@ickma2311: Efficient AI 第19讲:分布式训练(第一部分)这一讲让我更清楚地了解了自注意力……
第19讲高效AI分布式训练总结,涵盖数据、流水线、张量和序列并行方法,并附有关内存和通信瓶颈的说明。