据 NVIDIA 技术博客介绍,Reshard 是一种新的集合通信原语,用于在强化学习(RL)训练过程中,将模型权重从训练端的分布式布局直接转换到推理端的分布式布局,只传输理论最小数据量。在 NeMo RL 框架的基准测试中,Reshard refit 相比传统的 gather-and-broadcast 方式取得了 2.7 倍到 5.7 倍的加速。

它解决什么问题

据 NVIDIA 技术博客,RL 后训练(post-training)过程中,系统需要用当前策略模型在线生成训练轨迹。为了效率,推理和训练通常运行在不同的 GPU 资源上(即 disaggregated 架构)。策略模型的权重只在训练端更新,但每个训练步都必须把最新权重同步到推理端——这个过程称为 weight refit。

NVIDIA 技术博客指出,refit 面临两个核心挑战。第一,训练端和推理端使用不同的并行策略(数据并行、张量并行、流水线并行、专家并行等),导致权重在 GPU 上的切分方式不同。第二,refit 必须更新推理端的全部模型权重,通信负载与模型总参数量同量级。以 Kimi K3(2.8 万亿参数)和 Qwen 3.8 2.4T A95B(2.4 万亿参数)为例,按 BF16 两字节计算,权重大小分别约 5.6 TB 和 4.8 TB。由于传统方法包含 all-gather 和 broadcast 两个阶段,逻辑通信负载约为权重大小的两倍,最大模型每步 refit 的通信量已达约 10 TB。

据 arXiv 上的 NCCL M2N 论文引用的数据,在 256 GPU 上运行 DeepSeek-V3 时,传统 all-gather 加 broadcast 的权重同步占已报告的 RL 单步时间的 29.4%。

它怎么做

据 NVIDIA 博客,传统 gather-and-broadcast 方法的流程是:训练端 GPU 先 all-gather 各自的本地分片,重建完整参数张量;再将完整张量 broadcast 到推理端;推理端每个 GPU 只保留自己需要的分片。这意味着推理端 GPU 接收了完整参数但只用其中一部分,gather 和 broadcast 两个阶段都产生了冗余通信。

NVIDIA 博客介绍,Reshard 的核心思路是将 refit 重新表述为 DTensor 到 DTensor 的转换问题。DTensor(分布式张量)是 PyTorch 中用于描述跨 GPU 分片或复制的张量的抽象,由全局形状、设备网格(GPU 的逻辑排列)和 placement(指定每个维度上的分片或复制方式)三部分组成。给定训练端和推理端各自的 DTensor 描述,Reshard 可以计算出源分片和目标分片之间的精确交集区域,只传输目标 GPU 实际需要的数据。

据 NVIDIA 博客,NCCL M2N Reshard 是这一原语的开源参考实现,构建在 NCCL 之上,将 M 个源 GPU 上的张量转移到 N 个目标 GPU 所需的布局。在物理拓扑层面,它按 NVLink 域对目标端的副本(replica)进行分组:每个 NVLink 域内,各副本 GPU 分别从网络接收不重复的数据子集,再通过 NVLink 互相交换,使每个副本都能拼出完整分片,避免同一份数据在网络上重复传输。网络传输和 NVLink 本地复制是流水线化的,可以互相隐藏延迟。

和以前的做法有何不同

NVIDIA 博客描述的机制差异在于:gather-and-broadcast 使用完整张量作为中间表示,不管目标 GPU 需要多少数据都传输完整参数;Reshard 则根据源和目标的 DTensor 描述直接计算交集,只传输理论最小数据量。

在网络带宽利用上,博客用一个从 TP4 到 TP2×DP2 的例子说明:直接点对点传输时,每个源分片要发送给两个 DP 副本,同一份数据在网络上传输两次,每个分片只能获得大约一半的网络带宽。NCCL M2N Reshard 让每个源分片只通过网络传输一次,目标 GPU 之间通过 NVLink 交换缺失部分,每个分片可获得全部网络带宽。

据 arXiv 论文,在 256 个 GB200 GPU 的 NVL72 集群上,单个 FFN-MoE 层的传输相比 flat direct sends(直接逐点发送)取得了最高 7.9 倍加速(9.8 ms 对 77.3 ms)。据 arXiv 论文,在 256 GPU 的 DeepSeek-V3 NeMo-RL 实验中,NCCL M2N 将权重同步时间从 5.78 秒降至 2.77 秒,加速 2.09 倍,单步总时间减少 12.7%。

目前的边界

NVIDIA 博客说明,NeMo RL 中采用的是混合方案:Transformer 块中的前馈投影权重(feed-forward projection weights)占模型参数量的约 95%,走 Reshard 路径;其余较小的权重(如 QKV 投影、Mamba 权重等)仍使用传统 gather-and-broadcast 路径,以保持功能覆盖的完整性。

关于动态场景,该博客提到当节点因故障恢复而增减时,分片布局可能在运行时变化。NeMo RL 目前的做法是销毁并重建通信组;使用 NCCL shrink 和 grow API 来调整现有通信组的方案计划在未来更新中支持。

NCCL M2N Reshard 的开源代码通过 NVIDIA/nccl-extensions GitHub 仓库提供。

主题分类:AI基础设施

参考资料

  1. Accelerating Reinforcement Learning Weight Refit with the Reshard Collective — NVIDIA Developer Blog, 2026-11-06
  2. NCCL M2N: A Layout- and Topology-Aware Collective for Distributed Tensor Resharding — arXiv, 2026-10-05